From c4f4701ef1242101215fe996589d7c0125bf4fef Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Mon, 22 May 2017 11:24:21 +0200 Subject: [PATCH] Imported Upstream version 3.2.0 --- admin.php | 46 + admin/administration.php | 43 + admin/alarming.php | 77 + admin/cgicfg.php | 153 + admin/checkcommands.php | 152 + admin/commandline.php | 86 + admin/commands.php | 59 + admin/configtargets.php | 287 ++ admin/contactgroups.php | 182 + admin/contacts.php | 342 ++ admin/contacttemplates.php | 334 ++ admin/datadomain.php | 160 + admin/delbackup.php | 149 + admin/delconfig.php | 164 + admin/download.php | 68 + admin/group.php | 165 + admin/groupusers.php | 159 + admin/helpedit.php | 153 + admin/hostdependencies.php | 229 + admin/hostescalations.php | 226 + admin/hostextinfo.php | 159 + admin/hostgroups.php | 182 + admin/hosts.php | 494 ++ admin/hosttemplates.php | 382 ++ admin/import.php | 220 + admin/index.html | 0 admin/info.php | 95 + admin/logbook.php | 124 + admin/menuaccess.php | 99 + admin/monitoring.php | 90 + admin/mutdialog.php | 59 + admin/nagioscfg.php | 153 + admin/password.php | 102 + admin/servicedependencies.php | 388 ++ admin/serviceescalations.php | 326 ++ admin/serviceextinfo.php | 203 + admin/servicegroups.php | 183 + admin/services.php | 499 +++ admin/servicetemplates.php | 396 ++ admin/settings.php | 261 ++ admin/specials.php | 89 + admin/support.php | 630 +++ admin/templatedefinitions.php | 249 ++ admin/timedefinitions.php | 183 + admin/timeperiods.php | 201 + admin/tools.php | 43 + admin/user.php | 175 + admin/variabledefinitions.php | 150 + admin/verify.php | 492 ++ admin/versioncheck.php | 173 + config/content.css | 473 ++ config/fieldvars.php | 296 ++ config/locale/da_DK/LC_MESSAGES/da_DK.mo | Bin 0 -> 76807 bytes config/locale/da_DK/LC_MESSAGES/da_DK.po | 3700 +++++++++++++++ config/locale/da_DK/LC_MESSAGES/index.html | 0 config/locale/da_DK/index.html | 0 config/locale/de_DE/LC_MESSAGES/de_DE.mo | Bin 0 -> 76576 bytes config/locale/de_DE/LC_MESSAGES/de_DE.po | 3700 +++++++++++++++ config/locale/de_DE/LC_MESSAGES/index.html | 0 config/locale/de_DE/index.html | 0 config/locale/en_GB/LC_MESSAGES/en_GB.mo | Bin 0 -> 71347 bytes config/locale/en_GB/LC_MESSAGES/en_GB.po | 3705 +++++++++++++++ config/locale/en_GB/LC_MESSAGES/index.html | 0 config/locale/en_GB/index.html | 0 config/locale/es_AR/LC_MESSAGES/es_AR.mo | Bin 0 -> 29904 bytes config/locale/es_AR/LC_MESSAGES/es_AR.po | 3972 +++++++++++++++++ config/locale/es_AR/LC_MESSAGES/index.html | 0 config/locale/es_AR/index.html | 0 config/locale/es_ES/LC_MESSAGES/es_ES.mo | Bin 0 -> 59320 bytes config/locale/es_ES/LC_MESSAGES/es_ES.po | 3700 +++++++++++++++ config/locale/es_ES/LC_MESSAGES/index.html | 0 config/locale/es_ES/index.html | 0 config/locale/fr_FR/LC_MESSAGES/fr_FR.mo | Bin 0 -> 80029 bytes config/locale/fr_FR/LC_MESSAGES/fr_FR.po | 3699 +++++++++++++++ config/locale/fr_FR/LC_MESSAGES/index.html | 0 config/locale/fr_FR/index.html | 0 config/locale/it_IT/LC_MESSAGES/index.html | 0 config/locale/it_IT/LC_MESSAGES/it_IT.mo | Bin 0 -> 56815 bytes config/locale/it_IT/LC_MESSAGES/it_IT.po | 3699 +++++++++++++++ config/locale/it_IT/index.html | 0 config/locale/ja_JP/LC_MESSAGES/index.html | 0 config/locale/ja_JP/LC_MESSAGES/ja_JP.mo | Bin 0 -> 47189 bytes config/locale/ja_JP/LC_MESSAGES/ja_JP.po | 3699 +++++++++++++++ config/locale/ja_JP/index.html | 0 config/locale/nl_NL/LC_MESSAGES/index.html | 0 config/locale/nl_NL/LC_MESSAGES/nl_NL.mo | Bin 0 -> 55694 bytes config/locale/nl_NL/LC_MESSAGES/nl_NL.po | 3699 +++++++++++++++ config/locale/nl_NL/index.html | 0 config/locale/pl_PL/LC_MESSAGES/index.html | 0 config/locale/pl_PL/LC_MESSAGES/pl_PL.mo | Bin 0 -> 42483 bytes config/locale/pl_PL/LC_MESSAGES/pl_PL.po | 3699 +++++++++++++++ config/locale/pl_PL/index.html | 0 config/locale/pt_BR/LC_MESSAGES/index.html | 0 config/locale/pt_BR/LC_MESSAGES/pt_BR.mo | Bin 0 -> 76485 bytes config/locale/pt_BR/LC_MESSAGES/pt_BR.po | 3701 +++++++++++++++ config/locale/pt_BR/index.html | 0 config/locale/ru_RU/LC_MESSAGES/index.html | 0 config/locale/ru_RU/LC_MESSAGES/ru_RU.mo | Bin 0 -> 73141 bytes config/locale/ru_RU/LC_MESSAGES/ru_RU.po | 3699 +++++++++++++++ config/locale/ru_RU/index.html | 0 config/locale/zh_CN/LC_MESSAGES/index.html | 0 config/locale/zh_CN/LC_MESSAGES/zh_CN.mo | Bin 0 -> 50206 bytes config/locale/zh_CN/LC_MESSAGES/zh_CN.po | 3699 +++++++++++++++ config/locale/zh_CN/index.html | 0 config/main.css | 226 + doc/CHANGELOG | 23 + doc/INSTALLATION_deDE.txt | 110 + doc/INSTALLATION_enGB.txt | 110 + doc/LICENSE | 36 + doc/LIZENZ | 38 + doc/README_SSH_KEY | 52 + favicon.ico | Bin 0 -> 1150 bytes functions/common.js | 435 ++ functions/config_class.php | 1887 ++++++++ functions/content_class.php | 509 +++ functions/data_class.php | 1290 ++++++ functions/import_class.php | 1459 ++++++ functions/mysql_class.php | 331 ++ functions/nag_class.php | 1048 +++++ functions/prepend_adm.php | 581 +++ functions/prepend_content.php | 518 +++ functions/prepend_scripting.php | 111 + .../tinyMCE/jscripts/tiny_mce/langs/en.js | 223 + .../tinyMCE/jscripts/tiny_mce/license.txt | 504 +++ .../plugins/contextmenu/editor_plugin.js | 1 + .../searchreplace/css/searchreplace.css | 6 + .../plugins/searchreplace/editor_plugin.js | 1 + .../plugins/searchreplace/js/searchreplace.js | 142 + .../plugins/searchreplace/langs/en_dlg.js | 16 + .../plugins/searchreplace/searchreplace.htm | 100 + .../jscripts/tiny_mce/plugins/table/cell.htm | 178 + .../tiny_mce/plugins/table/css/cell.css | 17 + .../tiny_mce/plugins/table/css/row.css | 25 + .../tiny_mce/plugins/table/css/table.css | 13 + .../tiny_mce/plugins/table/editor_plugin.js | 1 + .../tiny_mce/plugins/table/js/cell.js | 284 ++ .../tiny_mce/plugins/table/js/merge_cells.js | 27 + .../jscripts/tiny_mce/plugins/table/js/row.js | 232 + .../tiny_mce/plugins/table/js/table.js | 450 ++ .../tiny_mce/plugins/table/langs/en_dlg.js | 74 + .../tiny_mce/plugins/table/merge_cells.htm | 32 + .../jscripts/tiny_mce/plugins/table/row.htm | 157 + .../jscripts/tiny_mce/plugins/table/table.htm | 188 + .../tiny_mce/themes/advanced/about.htm | 52 + .../tiny_mce/themes/advanced/anchor.htm | 26 + .../tiny_mce/themes/advanced/charmap.htm | 51 + .../tiny_mce/themes/advanced/color_picker.htm | 74 + .../themes/advanced/editor_template.js | 1 + .../tiny_mce/themes/advanced/image.htm | 80 + .../themes/advanced/img/colorpicker.jpg | Bin 0 -> 3189 bytes .../tiny_mce/themes/advanced/img/flash.gif | Bin 0 -> 241 bytes .../tiny_mce/themes/advanced/img/icons.gif | Bin 0 -> 11794 bytes .../tiny_mce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../themes/advanced/img/quicktime.gif | Bin 0 -> 303 bytes .../themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../themes/advanced/img/shockwave.gif | Bin 0 -> 387 bytes .../tiny_mce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../tiny_mce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tiny_mce/themes/advanced/js/about.js | 73 + .../tiny_mce/themes/advanced/js/anchor.js | 42 + .../tiny_mce/themes/advanced/js/charmap.js | 355 ++ .../themes/advanced/js/color_picker.js | 329 ++ .../tiny_mce/themes/advanced/js/image.js | 247 + .../tiny_mce/themes/advanced/js/link.js | 153 + .../themes/advanced/js/source_editor.js | 56 + .../tiny_mce/themes/advanced/langs/en.js | 68 + .../tiny_mce/themes/advanced/langs/en_dlg.js | 54 + .../tiny_mce/themes/advanced/link.htm | 57 + .../tiny_mce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 47 + .../themes/advanced/skins/default/dialog.css | 117 + .../advanced/skins/default/img/buttons.png | Bin 0 -> 3274 bytes .../advanced/skins/default/img/items.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../advanced/skins/default/img/tabs.gif | Bin 0 -> 1326 bytes .../themes/advanced/skins/default/ui.css | 213 + .../advanced/skins/highcontrast/content.css | 23 + .../advanced/skins/highcontrast/dialog.css | 105 + .../themes/advanced/skins/highcontrast/ui.css | 101 + .../themes/advanced/skins/o2k7/content.css | 46 + .../themes/advanced/skins/o2k7/dialog.css | 117 + .../advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 5859 bytes .../skins/o2k7/img/button_bg_black.png | Bin 0 -> 3736 bytes .../skins/o2k7/img/button_bg_silver.png | Bin 0 -> 5358 bytes .../themes/advanced/skins/o2k7/ui.css | 216 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../themes/advanced/source_editor.htm | 25 + .../tinyMCE/jscripts/tiny_mce/tiny_mce.js | 1 + .../jscripts/tiny_mce/tiny_mce_popup.js | 5 + .../tiny_mce/utils/editable_selects.js | 70 + .../jscripts/tiny_mce/utils/form_utils.js | 210 + .../tinyMCE/jscripts/tiny_mce/utils/mctabs.js | 162 + .../jscripts/tiny_mce/utils/validate.js | 252 ++ functions/translator.php | 253 ++ .../yui/build/assets/skins/sam/sprite.png | Bin 0 -> 3745 bytes .../build/button/assets/skins/sam/button.css | 7 + .../skins/sam/menu-button-arrow-disabled.png | Bin 0 -> 173 bytes .../assets/skins/sam/menu-button-arrow.png | Bin 0 -> 173 bytes .../skins/sam/split-button-arrow-active.png | Bin 0 -> 280 bytes .../skins/sam/split-button-arrow-disabled.png | Bin 0 -> 185 bytes .../skins/sam/split-button-arrow-focus.png | Bin 0 -> 185 bytes .../skins/sam/split-button-arrow-hover.png | Bin 0 -> 185 bytes .../assets/skins/sam/split-button-arrow.png | Bin 0 -> 185 bytes functions/yui/build/button/button-min.js | 11 + .../calendar/assets/skins/sam/calendar.css | 8 + functions/yui/build/calendar/calendar-min.js | 18 + .../yui/build/connection/connection-min.js | 9 + .../yui/build/container/assets/alrt16_1.gif | Bin 0 -> 971 bytes .../yui/build/container/assets/blck16_1.gif | Bin 0 -> 591 bytes .../yui/build/container/assets/close12_1.gif | Bin 0 -> 85 bytes .../yui/build/container/assets/container.css | 324 ++ .../yui/build/container/assets/hlp16_1.gif | Bin 0 -> 928 bytes .../yui/build/container/assets/info16_1.gif | Bin 0 -> 601 bytes .../container/assets/skins/sam/container.css | 7 + .../yui/build/container/assets/tip16_1.gif | Bin 0 -> 552 bytes .../yui/build/container/assets/warn16_1.gif | Bin 0 -> 580 bytes .../yui/build/container/container-min.js | 19 + .../yui/build/datasource/datasource-min.js | 12 + .../datatable/assets/skins/sam/datatable.css | 8 + .../assets/skins/sam/dt-arrow-dn.png | Bin 0 -> 116 bytes .../assets/skins/sam/dt-arrow-up.png | Bin 0 -> 116 bytes .../yui/build/datatable/datatable-min.js | 33 + functions/yui/build/element/element-min.js | 8 + .../event-delegate/event-delegate-min.js | 7 + functions/yui/build/fonts/fonts-min.css | 7 + functions/yui/build/json/json-min.js | 7 + .../paginator/assets/skins/sam/paginator.css | 7 + .../yui/build/paginator/paginator-min.js | 11 + .../tabview/assets/skins/sam/tabview.css | 8 + functions/yui/build/tabview/tabview-min.js | 8 + functions/yui/build/utilities/utilities.js | 39 + .../build/yahoo-dom-event/yahoo-dom-event.js | 14 + images/bg_menu_aktiv.png | Bin 0 -> 220 bytes images/bg_menu_inaktiv.png | Bin 0 -> 221 bytes images/bg_submenu.png | Bin 0 -> 153 bytes images/bg_top.png | Bin 0 -> 13939 bytes images/calbtn.gif | Bin 0 -> 591 bytes images/copy.gif | Bin 0 -> 375 bytes images/del.png | Bin 0 -> 1457 bytes images/delete.gif | Bin 0 -> 1051 bytes images/donate.png | Bin 0 -> 2524 bytes images/donate_2.png | Bin 0 -> 1709 bytes images/down.gif | Bin 0 -> 588 bytes images/download.gif | Bin 0 -> 632 bytes images/edit.gif | Bin 0 -> 369 bytes images/exclude_01.gif | Bin 0 -> 1171 bytes images/info.gif | Bin 0 -> 614 bytes images/input.png | Bin 0 -> 363 bytes images/inputlock.png | Bin 0 -> 355 bytes images/inputmust.png | Bin 0 -> 358 bytes images/loader.gif | Bin 0 -> 673 bytes images/lupe.gif | Bin 0 -> 1068 bytes images/menu.gif | Bin 0 -> 101 bytes images/mut.gif | Bin 0 -> 727 bytes images/nagiosql_logo.png | Bin 0 -> 19458 bytes images/pfeil_l.gif | Bin 0 -> 1164 bytes images/pfeil_r.gif | Bin 0 -> 1145 bytes images/pixel.gif | Bin 0 -> 43 bytes images/sort_asc.png | Bin 0 -> 2905 bytes images/sort_desc.png | Bin 0 -> 2884 bytes images/tip.gif | Bin 0 -> 1080 bytes images/up.gif | Bin 0 -> 597 bytes images/write.gif | Bin 0 -> 642 bytes index.php | 66 + install/css/install.css | 453 ++ install/functions/initial_settings.php | 48 + install/functions/install_class.php | 915 ++++ install/functions/prepend_install.php | 36 + install/images/background.png | Bin 0 -> 174 bytes install/images/body_background.png | Bin 0 -> 6834 bytes install/images/favicon.ico | Bin 0 -> 41662 bytes install/images/index-install.png | Bin 0 -> 1581 bytes install/images/index-update.png | Bin 0 -> 1374 bytes install/images/index.html | 0 install/images/input.png | Bin 0 -> 363 bytes install/images/inputlock.png | Bin 0 -> 355 bytes install/images/inputmust.png | Bin 0 -> 358 bytes install/images/install.png | Bin 0 -> 2864 bytes install/images/invalid.png | Bin 0 -> 3530 bytes install/images/nagiosql.png | Bin 0 -> 7699 bytes install/images/next.png | Bin 0 -> 2787 bytes install/images/onlinehelp.png | Bin 0 -> 701 bytes install/images/pixel.gif | Bin 0 -> 67 bytes install/images/previous.png | Bin 0 -> 2769 bytes install/images/reload.png | Bin 0 -> 2991 bytes install/images/step1_active.png | Bin 0 -> 6815 bytes install/images/step1_deactive.png | Bin 0 -> 4161 bytes install/images/step2_active.png | Bin 0 -> 6600 bytes install/images/step2_deactive.png | Bin 0 -> 4132 bytes install/images/step3_active.png | Bin 0 -> 6648 bytes install/images/step3_deactive.png | Bin 0 -> 3884 bytes install/images/tip_header.gif | Bin 0 -> 1300 bytes install/images/update.png | Bin 0 -> 2741 bytes install/images/valid.png | Bin 0 -> 3504 bytes install/images/warning.png | Bin 0 -> 3379 bytes install/index.php | 194 + install/install.php | 132 + install/sql/import_nagios_sample.sql | 224 + install/sql/nagiosQL_v32_db_mysql.sql | 2800 ++++++++++++ install/sql/update_300_301.sql | 30 + install/sql/update_300_310.sql | 554 +++ install/sql/update_301_302.sql | 25 + install/sql/update_302_303.sql | 34 + install/sql/update_303_304.sql | 21 + install/sql/update_304_310.sql | 535 +++ install/sql/update_310_311.sql | 20 + install/sql/update_310_320.sql | 348 ++ install/sql/update_311_320.sql | 348 ++ install/step1.php | 271 ++ install/step2.php | 106 + install/step3.php | 226 + install/templates/index.tpl.htm | 93 + install/templates/install.tpl.htm | 37 + install/templates/step1.tpl.htm | 54 + install/templates/step2.tpl.htm | 157 + install/templates/step3.tpl.htm | 90 + libraries/pear/HTML/Template/IT.php | 1186 +++++ libraries/pear/HTML/Template/ITX.php | 889 ++++ libraries/pear/HTML/Template/IT_Error.php | 65 + libraries/pear/JSON/JSON.php | 808 ++++ libraries/pear/JSON/index.html | 4 + libraries/pear/PEAR.php | 1129 +++++ libraries/pear/PEAR5.php | 33 + libraries/pear/index.html | 4 + scripts/do_config.php | 285 ++ templates/admin/admin_master.tpl.htm | 872 ++++ templates/admin/checkcommands.tpl.htm | 121 + templates/admin/configtargets.tpl.htm | 297 ++ templates/admin/contactgroups.tpl.htm | 163 + templates/admin/contacts.tpl.htm | 574 +++ templates/admin/contacttemplates.tpl.htm | 510 +++ templates/admin/datadomain.tpl.htm | 146 + templates/admin/delbackup.tpl.htm | 66 + templates/admin/domain.tpl.htm | 309 ++ templates/admin/group.tpl.htm | 172 + templates/admin/helpedit.tpl.htm | 132 + templates/admin/hostdependencies.tpl.htm | 257 ++ templates/admin/hostescalations.tpl.htm | 241 + templates/admin/hostextinfo.tpl.htm | 134 + templates/admin/hostgroups.tpl.htm | 175 + templates/admin/hosts.tpl.htm | 944 ++++ templates/admin/hosttemplates.tpl.htm | 806 ++++ templates/admin/import.tpl.htm | 76 + templates/admin/mainpages.tpl.htm | 39 + templates/admin/mutdialog.tpl.htm | 60 + templates/admin/nagioscfg.tpl.htm | 65 + templates/admin/servicedependencies.tpl.htm | 374 ++ templates/admin/serviceescalations.tpl.htm | 304 ++ templates/admin/serviceextinfo.tpl.htm | 132 + templates/admin/servicegroups.tpl.htm | 175 + templates/admin/services.tpl.htm | 980 ++++ templates/admin/servicetemplates.tpl.htm | 905 ++++ templates/admin/settings.tpl.htm | 285 ++ templates/admin/support.tpl.htm | 140 + templates/admin/timeperiods.tpl.htm | 233 + templates/admin/user.tpl.htm | 148 + templates/admin/verify.tpl.htm | 61 + templates/files/commands.tpl.dat | 25 + templates/files/contactgroups.tpl.dat | 25 + templates/files/contacts.tpl.dat | 25 + templates/files/contacttemplates.tpl.dat | 25 + templates/files/hostdependencies.tpl.dat | 25 + templates/files/hostescalations.tpl.dat | 25 + templates/files/hostextinfo.tpl.dat | 25 + templates/files/hostgroups.tpl.dat | 25 + templates/files/hosts.tpl.dat | 25 + templates/files/hosttemplates.tpl.dat | 25 + templates/files/servicedependencies.tpl.dat | 25 + templates/files/serviceescalations.tpl.dat | 25 + templates/files/serviceextinfo.tpl.dat | 25 + templates/files/servicegroups.tpl.dat | 25 + templates/files/services.tpl.dat | 25 + templates/files/servicetemplates.tpl.dat | 25 + templates/files/timeperiods.tpl.dat | 25 + templates/index.tpl.htm | 33 + templates/main.tpl.htm | 94 + 381 files changed, 97590 insertions(+) create mode 100644 admin.php create mode 100644 admin/administration.php create mode 100644 admin/alarming.php create mode 100644 admin/cgicfg.php create mode 100644 admin/checkcommands.php create mode 100644 admin/commandline.php create mode 100644 admin/commands.php create mode 100755 admin/configtargets.php create mode 100644 admin/contactgroups.php create mode 100644 admin/contacts.php create mode 100644 admin/contacttemplates.php create mode 100755 admin/datadomain.php create mode 100644 admin/delbackup.php create mode 100644 admin/delconfig.php create mode 100644 admin/download.php create mode 100644 admin/group.php create mode 100644 admin/groupusers.php create mode 100644 admin/helpedit.php create mode 100644 admin/hostdependencies.php create mode 100644 admin/hostescalations.php create mode 100644 admin/hostextinfo.php create mode 100644 admin/hostgroups.php create mode 100644 admin/hosts.php create mode 100644 admin/hosttemplates.php create mode 100644 admin/import.php create mode 100644 admin/index.html create mode 100644 admin/info.php create mode 100644 admin/logbook.php create mode 100644 admin/menuaccess.php create mode 100644 admin/monitoring.php create mode 100644 admin/mutdialog.php create mode 100644 admin/nagioscfg.php create mode 100644 admin/password.php create mode 100644 admin/servicedependencies.php create mode 100644 admin/serviceescalations.php create mode 100644 admin/serviceextinfo.php create mode 100644 admin/servicegroups.php create mode 100644 admin/services.php create mode 100644 admin/servicetemplates.php create mode 100644 admin/settings.php create mode 100644 admin/specials.php create mode 100644 admin/support.php create mode 100644 admin/templatedefinitions.php create mode 100644 admin/timedefinitions.php create mode 100644 admin/timeperiods.php create mode 100644 admin/tools.php create mode 100644 admin/user.php create mode 100644 admin/variabledefinitions.php create mode 100644 admin/verify.php create mode 100644 admin/versioncheck.php create mode 100644 config/content.css create mode 100644 config/fieldvars.php create mode 100644 config/locale/da_DK/LC_MESSAGES/da_DK.mo create mode 100644 config/locale/da_DK/LC_MESSAGES/da_DK.po create mode 100644 config/locale/da_DK/LC_MESSAGES/index.html create mode 100644 config/locale/da_DK/index.html create mode 100644 config/locale/de_DE/LC_MESSAGES/de_DE.mo create mode 100644 config/locale/de_DE/LC_MESSAGES/de_DE.po create mode 100644 config/locale/de_DE/LC_MESSAGES/index.html create mode 100644 config/locale/de_DE/index.html create mode 100644 config/locale/en_GB/LC_MESSAGES/en_GB.mo create mode 100644 config/locale/en_GB/LC_MESSAGES/en_GB.po create mode 100644 config/locale/en_GB/LC_MESSAGES/index.html create mode 100644 config/locale/en_GB/index.html create mode 100644 config/locale/es_AR/LC_MESSAGES/es_AR.mo create mode 100644 config/locale/es_AR/LC_MESSAGES/es_AR.po create mode 100644 config/locale/es_AR/LC_MESSAGES/index.html create mode 100644 config/locale/es_AR/index.html create mode 100644 config/locale/es_ES/LC_MESSAGES/es_ES.mo create mode 100644 config/locale/es_ES/LC_MESSAGES/es_ES.po create mode 100644 config/locale/es_ES/LC_MESSAGES/index.html create mode 100644 config/locale/es_ES/index.html create mode 100644 config/locale/fr_FR/LC_MESSAGES/fr_FR.mo create mode 100644 config/locale/fr_FR/LC_MESSAGES/fr_FR.po create mode 100644 config/locale/fr_FR/LC_MESSAGES/index.html create mode 100644 config/locale/fr_FR/index.html create mode 100644 config/locale/it_IT/LC_MESSAGES/index.html create mode 100644 config/locale/it_IT/LC_MESSAGES/it_IT.mo create mode 100644 config/locale/it_IT/LC_MESSAGES/it_IT.po create mode 100644 config/locale/it_IT/index.html create mode 100644 config/locale/ja_JP/LC_MESSAGES/index.html create mode 100644 config/locale/ja_JP/LC_MESSAGES/ja_JP.mo create mode 100644 config/locale/ja_JP/LC_MESSAGES/ja_JP.po create mode 100644 config/locale/ja_JP/index.html create mode 100644 config/locale/nl_NL/LC_MESSAGES/index.html create mode 100644 config/locale/nl_NL/LC_MESSAGES/nl_NL.mo create mode 100644 config/locale/nl_NL/LC_MESSAGES/nl_NL.po create mode 100644 config/locale/nl_NL/index.html create mode 100644 config/locale/pl_PL/LC_MESSAGES/index.html create mode 100644 config/locale/pl_PL/LC_MESSAGES/pl_PL.mo create mode 100644 config/locale/pl_PL/LC_MESSAGES/pl_PL.po create mode 100644 config/locale/pl_PL/index.html create mode 100644 config/locale/pt_BR/LC_MESSAGES/index.html create mode 100644 config/locale/pt_BR/LC_MESSAGES/pt_BR.mo create mode 100644 config/locale/pt_BR/LC_MESSAGES/pt_BR.po create mode 100644 config/locale/pt_BR/index.html create mode 100644 config/locale/ru_RU/LC_MESSAGES/index.html create mode 100644 config/locale/ru_RU/LC_MESSAGES/ru_RU.mo create mode 100644 config/locale/ru_RU/LC_MESSAGES/ru_RU.po create mode 100644 config/locale/ru_RU/index.html create mode 100644 config/locale/zh_CN/LC_MESSAGES/index.html create mode 100644 config/locale/zh_CN/LC_MESSAGES/zh_CN.mo create mode 100644 config/locale/zh_CN/LC_MESSAGES/zh_CN.po create mode 100644 config/locale/zh_CN/index.html create mode 100644 config/main.css create mode 100755 doc/CHANGELOG create mode 100644 doc/INSTALLATION_deDE.txt create mode 100644 doc/INSTALLATION_enGB.txt create mode 100644 doc/LICENSE create mode 100644 doc/LIZENZ create mode 100644 doc/README_SSH_KEY create mode 100644 favicon.ico create mode 100644 functions/common.js create mode 100644 functions/config_class.php create mode 100755 functions/content_class.php create mode 100644 functions/data_class.php create mode 100644 functions/import_class.php create mode 100644 functions/mysql_class.php create mode 100644 functions/nag_class.php create mode 100644 functions/prepend_adm.php create mode 100755 functions/prepend_content.php create mode 100644 functions/prepend_scripting.php create mode 100644 functions/tinyMCE/jscripts/tiny_mce/langs/en.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/license.txt create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/cell.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/cell.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/row.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/table.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/editor_plugin.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/cell.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/merge_cells.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/row.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/table.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/langs/en_dlg.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/merge_cells.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/row.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/plugins/table/table.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/about.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/anchor.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/charmap.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/color_picker.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/editor_template.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/image.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/flash.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/icons.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/iframe.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/quicktime.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/realmedia.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/shockwave.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/trans.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/video.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/windowsmedia.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/about.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/anchor.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/charmap.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/color_picker.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/image.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/link.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/source_editor.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/link.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/shortcuts.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/content.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/items.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/progress.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/ui.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 functions/tinyMCE/jscripts/tiny_mce/themes/advanced/source_editor.htm create mode 100644 functions/tinyMCE/jscripts/tiny_mce/tiny_mce.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/tiny_mce_popup.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/utils/editable_selects.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/utils/form_utils.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/utils/mctabs.js create mode 100644 functions/tinyMCE/jscripts/tiny_mce/utils/validate.js create mode 100644 functions/translator.php create mode 100644 functions/yui/build/assets/skins/sam/sprite.png create mode 100644 functions/yui/build/button/assets/skins/sam/button.css create mode 100644 functions/yui/build/button/assets/skins/sam/menu-button-arrow-disabled.png create mode 100644 functions/yui/build/button/assets/skins/sam/menu-button-arrow.png create mode 100644 functions/yui/build/button/assets/skins/sam/split-button-arrow-active.png create mode 100644 functions/yui/build/button/assets/skins/sam/split-button-arrow-disabled.png create mode 100644 functions/yui/build/button/assets/skins/sam/split-button-arrow-focus.png create mode 100644 functions/yui/build/button/assets/skins/sam/split-button-arrow-hover.png create mode 100644 functions/yui/build/button/assets/skins/sam/split-button-arrow.png create mode 100644 functions/yui/build/button/button-min.js create mode 100644 functions/yui/build/calendar/assets/skins/sam/calendar.css create mode 100644 functions/yui/build/calendar/calendar-min.js create mode 100644 functions/yui/build/connection/connection-min.js create mode 100644 functions/yui/build/container/assets/alrt16_1.gif create mode 100644 functions/yui/build/container/assets/blck16_1.gif create mode 100644 functions/yui/build/container/assets/close12_1.gif create mode 100644 functions/yui/build/container/assets/container.css create mode 100644 functions/yui/build/container/assets/hlp16_1.gif create mode 100644 functions/yui/build/container/assets/info16_1.gif create mode 100644 functions/yui/build/container/assets/skins/sam/container.css create mode 100644 functions/yui/build/container/assets/tip16_1.gif create mode 100644 functions/yui/build/container/assets/warn16_1.gif create mode 100644 functions/yui/build/container/container-min.js create mode 100644 functions/yui/build/datasource/datasource-min.js create mode 100644 functions/yui/build/datatable/assets/skins/sam/datatable.css create mode 100644 functions/yui/build/datatable/assets/skins/sam/dt-arrow-dn.png create mode 100644 functions/yui/build/datatable/assets/skins/sam/dt-arrow-up.png create mode 100644 functions/yui/build/datatable/datatable-min.js create mode 100644 functions/yui/build/element/element-min.js create mode 100644 functions/yui/build/event-delegate/event-delegate-min.js create mode 100644 functions/yui/build/fonts/fonts-min.css create mode 100644 functions/yui/build/json/json-min.js create mode 100644 functions/yui/build/paginator/assets/skins/sam/paginator.css create mode 100644 functions/yui/build/paginator/paginator-min.js create mode 100644 functions/yui/build/tabview/assets/skins/sam/tabview.css create mode 100644 functions/yui/build/tabview/tabview-min.js create mode 100644 functions/yui/build/utilities/utilities.js create mode 100644 functions/yui/build/yahoo-dom-event/yahoo-dom-event.js create mode 100644 images/bg_menu_aktiv.png create mode 100644 images/bg_menu_inaktiv.png create mode 100644 images/bg_submenu.png create mode 100644 images/bg_top.png create mode 100644 images/calbtn.gif create mode 100644 images/copy.gif create mode 100644 images/del.png create mode 100644 images/delete.gif create mode 100644 images/donate.png create mode 100644 images/donate_2.png create mode 100644 images/down.gif create mode 100644 images/download.gif create mode 100644 images/edit.gif create mode 100644 images/exclude_01.gif create mode 100644 images/info.gif create mode 100644 images/input.png create mode 100644 images/inputlock.png create mode 100644 images/inputmust.png create mode 100644 images/loader.gif create mode 100644 images/lupe.gif create mode 100644 images/menu.gif create mode 100644 images/mut.gif create mode 100644 images/nagiosql_logo.png create mode 100644 images/pfeil_l.gif create mode 100644 images/pfeil_r.gif create mode 100644 images/pixel.gif create mode 100755 images/sort_asc.png create mode 100755 images/sort_desc.png create mode 100644 images/tip.gif create mode 100644 images/up.gif create mode 100644 images/write.gif create mode 100644 index.php create mode 100644 install/css/install.css create mode 100755 install/functions/initial_settings.php create mode 100755 install/functions/install_class.php create mode 100755 install/functions/prepend_install.php create mode 100644 install/images/background.png create mode 100644 install/images/body_background.png create mode 100644 install/images/favicon.ico create mode 100644 install/images/index-install.png create mode 100644 install/images/index-update.png create mode 100644 install/images/index.html create mode 100755 install/images/input.png create mode 100644 install/images/inputlock.png create mode 100644 install/images/inputmust.png create mode 100644 install/images/install.png create mode 100644 install/images/invalid.png create mode 100644 install/images/nagiosql.png create mode 100644 install/images/next.png create mode 100644 install/images/onlinehelp.png create mode 100644 install/images/pixel.gif create mode 100644 install/images/previous.png create mode 100644 install/images/reload.png create mode 100644 install/images/step1_active.png create mode 100644 install/images/step1_deactive.png create mode 100644 install/images/step2_active.png create mode 100644 install/images/step2_deactive.png create mode 100644 install/images/step3_active.png create mode 100644 install/images/step3_deactive.png create mode 100644 install/images/tip_header.gif create mode 100644 install/images/update.png create mode 100644 install/images/valid.png create mode 100644 install/images/warning.png create mode 100644 install/index.php create mode 100644 install/install.php create mode 100644 install/sql/import_nagios_sample.sql create mode 100644 install/sql/nagiosQL_v32_db_mysql.sql create mode 100644 install/sql/update_300_301.sql create mode 100644 install/sql/update_300_310.sql create mode 100644 install/sql/update_301_302.sql create mode 100644 install/sql/update_302_303.sql create mode 100644 install/sql/update_303_304.sql create mode 100644 install/sql/update_304_310.sql create mode 100644 install/sql/update_310_311.sql create mode 100644 install/sql/update_310_320.sql create mode 100644 install/sql/update_311_320.sql create mode 100644 install/step1.php create mode 100644 install/step2.php create mode 100644 install/step3.php create mode 100755 install/templates/index.tpl.htm create mode 100755 install/templates/install.tpl.htm create mode 100755 install/templates/step1.tpl.htm create mode 100755 install/templates/step2.tpl.htm create mode 100755 install/templates/step3.tpl.htm create mode 100644 libraries/pear/HTML/Template/IT.php create mode 100644 libraries/pear/HTML/Template/ITX.php create mode 100644 libraries/pear/HTML/Template/IT_Error.php create mode 100644 libraries/pear/JSON/JSON.php create mode 100644 libraries/pear/JSON/index.html create mode 100644 libraries/pear/PEAR.php create mode 100644 libraries/pear/PEAR5.php create mode 100644 libraries/pear/index.html create mode 100644 scripts/do_config.php create mode 100644 templates/admin/admin_master.tpl.htm create mode 100644 templates/admin/checkcommands.tpl.htm create mode 100755 templates/admin/configtargets.tpl.htm create mode 100644 templates/admin/contactgroups.tpl.htm create mode 100644 templates/admin/contacts.tpl.htm create mode 100644 templates/admin/contacttemplates.tpl.htm create mode 100755 templates/admin/datadomain.tpl.htm create mode 100644 templates/admin/delbackup.tpl.htm create mode 100644 templates/admin/domain.tpl.htm create mode 100644 templates/admin/group.tpl.htm create mode 100644 templates/admin/helpedit.tpl.htm create mode 100644 templates/admin/hostdependencies.tpl.htm create mode 100644 templates/admin/hostescalations.tpl.htm create mode 100644 templates/admin/hostextinfo.tpl.htm create mode 100644 templates/admin/hostgroups.tpl.htm create mode 100644 templates/admin/hosts.tpl.htm create mode 100644 templates/admin/hosttemplates.tpl.htm create mode 100644 templates/admin/import.tpl.htm create mode 100644 templates/admin/mainpages.tpl.htm create mode 100644 templates/admin/mutdialog.tpl.htm create mode 100644 templates/admin/nagioscfg.tpl.htm create mode 100644 templates/admin/servicedependencies.tpl.htm create mode 100644 templates/admin/serviceescalations.tpl.htm create mode 100644 templates/admin/serviceextinfo.tpl.htm create mode 100644 templates/admin/servicegroups.tpl.htm create mode 100644 templates/admin/services.tpl.htm create mode 100644 templates/admin/servicetemplates.tpl.htm create mode 100644 templates/admin/settings.tpl.htm create mode 100644 templates/admin/support.tpl.htm create mode 100644 templates/admin/timeperiods.tpl.htm create mode 100644 templates/admin/user.tpl.htm create mode 100644 templates/admin/verify.tpl.htm create mode 100644 templates/files/commands.tpl.dat create mode 100644 templates/files/contactgroups.tpl.dat create mode 100644 templates/files/contacts.tpl.dat create mode 100644 templates/files/contacttemplates.tpl.dat create mode 100644 templates/files/hostdependencies.tpl.dat create mode 100644 templates/files/hostescalations.tpl.dat create mode 100644 templates/files/hostextinfo.tpl.dat create mode 100644 templates/files/hostgroups.tpl.dat create mode 100644 templates/files/hosts.tpl.dat create mode 100644 templates/files/hosttemplates.tpl.dat create mode 100644 templates/files/servicedependencies.tpl.dat create mode 100644 templates/files/serviceescalations.tpl.dat create mode 100644 templates/files/serviceextinfo.tpl.dat create mode 100644 templates/files/servicegroups.tpl.dat create mode 100644 templates/files/services.tpl.dat create mode 100644 templates/files/servicetemplates.tpl.dat create mode 100644 templates/files/timeperiods.tpl.dat create mode 100644 templates/index.tpl.htm create mode 100644 templates/main.tpl.htm diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..ba18351 --- /dev/null +++ b/admin.php @@ -0,0 +1,46 @@ +setVariable("TITLE",translate('NagiosQL Administration')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want.')); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/administration.php b/admin/administration.php new file mode 100644 index 0000000..34521ce --- /dev/null +++ b/admin/administration.php @@ -0,0 +1,43 @@ +setVariable("TITLE",translate('Administration')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('Functions to administrate NagiosQL V3')); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/alarming.php b/admin/alarming.php new file mode 100644 index 0000000..391c14d --- /dev/null +++ b/admin/alarming.php @@ -0,0 +1,77 @@ +setVariable("TITLE",translate('Alarming')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('To define contact data, contact templates and contact groups and time periods.')); +$conttp->setVariable("STATISTICS",translate('Statistical datas')); +$conttp->setVariable("TYPE",translate('Group')); +$conttp->setVariable("ACTIVE",translate('Active')); +$conttp->setVariable("INACTIVE",translate('Inactive')); +// +// Include statistical data +// ======================== +// Get read access groups +$strAccess = $myVisClass->getAccGroups('read'); +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=14")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Contact data')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contact WHERE active='1' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contact WHERE active='0' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=15")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Contact groups')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contactgroup WHERE active='1' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contactgroup WHERE active='0' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=16")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Time periods')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_timeperiod WHERE active='1' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_timeperiod WHERE active='0' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=17")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Contact templates')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contacttemplate WHERE active='1' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_contacttemplate WHERE active='0' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +$conttp->parse("statistics"); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/cgicfg.php b/admin/cgicfg.php new file mode 100644 index 0000000..1490bab --- /dev/null +++ b/admin/cgicfg.php @@ -0,0 +1,153 @@ +getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir); +$strConfigfile = str_replace("//","/",$strBaseDir."/cgi.cfg"); +$strLocalBackup = str_replace("//","/",$strBaseDir."/cgi.cfg_old_").date("YmdHis",mktime()); +// +// Convert Windows to UNIX +// ======================= +$chkTaFileText = str_replace("\r\n","\n",$chkTaFileText); +// +// Process data +// ============ +if ($chkTaFileText != "") { + if ($intMethod == 1) { + if (file_exists($strBaseDir) && (is_writable($strBaseDir) && (is_writable($strConfigfile)))) { + // Backup config file + $intReturn = $myConfigClass->moveFile("nagiosbasic","cgi.cfg",$intConfigId); + if ($intReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + // Write configuration + $resFile = fopen($strConfigfile,"w"); + fputs($resFile,$chkTaFileText); + fclose($resFile); + $myVisClass->processMessage("".translate('Configuration file successfully written!')."",$strInfoMessage); + $myDataClass->writeLog(translate('Configuration successfully written:')." ".$strConfigfile); + } else { + $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions)!'),$strErrorMessage); + $myDataClass->writeLog(translate('Configuration write failed:')." ".$strConfigfile); + } + } else if (($intMethod == 2) || ($intMethod == 3)) { + // Backup config file + $intReturn = $myConfigClass->moveFile("nagiosbasic","cgi.cfg",$intConfigId); + if ($intReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + // Write file to temporary + $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi'); + $resFile = fopen($strFileName,"w"); + fputs($resFile,$chkTaFileText); + fclose($resFile); + // Copy configuration to remoty system + $intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,1); + if ($intReturn == 0) { + $myVisClass->processMessage("".translate('Configuration file successfully written!')."",$strInfoMessage); + $myDataClass->writeLog(translate('Configuration successfully written:')." ".$strConfigfile); + unlink($strFileName); + } else { + $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions on remote system)!'),$strErrorMessage); + $myDataClass->writeLog(translate('Configuration write failed (remote):')." ".$strConfigfile); + unlink($strFileName); + } + } +} +// +// Include content +// =============== +$conttp->setVariable("TITLE",translate('CGI configuration file')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Include input form +// =================== +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("MAINSITE",$_SESSION['SETS']['path']['base_url']."admin.php"); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +// +// Open configuration +// ================== +if ($intMethod == 1) { + if (file_exists($strConfigfile) && is_readable($strConfigfile)) { + $resFile = fopen($strConfigfile,"r"); + if ($resFile) { + while(!feof($resFile)) { + $strConfig .= fgets($resFile,1024); + } + } + } else { + $myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'),$strErrorMessage); + } +} else if (($intMethod == 2) || ($intMethod == 3)) { + // Write file to temporary + $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_cgi'); + // Copy configuration from remoty system + $intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,0); + if ($intReturn == 0) { + $resFile = fopen($strFileName,"r"); + if (is_resource($resFile)) { + while(!feof($resFile)) { + $strConfig .= fgets($resFile,1024); + } + unlink($strFileName); + } else { + $myVisClass->processMessage(translate('Cannot open the temporary file'),$strErrorMessage); + } + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + $myDataClass->writeLog(translate('Configuration read failed (remote):')." ".$strErrorMessage); + if (file_exists($strFileName)) unlink($strFileName); + } +} +$conttp->setVariable("DAT_NAGIOS_CONFIG",$strConfig); +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("naginsert"); +$conttp->show("naginsert"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/checkcommands.php b/admin/checkcommands.php new file mode 100644 index 0000000..cb09ec1 --- /dev/null +++ b/admin/checkcommands.php @@ -0,0 +1,152 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New command inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Command modified:')." ".$chkTfValue1); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Command definitions')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + $conttp->setVariable("NO_TYPE",translate('unclassified')); + $conttp->setVariable("CHECK_TYPE",translate('check command')); + $conttp->setVariable("MISC_TYPE",translate('misc command')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + // Insert command type + if ($arrModifyData['command_type'] == 1) {$conttp->setVariable("CHECK_TYPE_SELECTED","selected");} + if ($arrModifyData['command_type'] == 2) {$conttp->setVariable("MISC_TYPE_SELECTED","selected");} + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Command name')); + $mastertp->setVariable("FIELD_2",translate('Command line')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `command_line` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `command_line` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `command_line`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'command_line',40); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/commandline.php b/admin/commandline.php new file mode 100644 index 0000000..c43621a --- /dev/null +++ b/admin/commandline.php @@ -0,0 +1,86 @@ +getFieldData("SELECT command_line FROM tbl_command WHERE id='".filter_var($_GET['cname'], FILTER_SANITIZE_NUMBER_INT)."'"); + if (($strResult != false) && ($strResult != "")) { + $strCommandLine = $strResult; + $intCount = substr_count($strCommandLine,"ARG"); + if (substr_count($strCommandLine,"ARG8") != 0) { + $intCount = 8; + } else if (substr_count($strCommandLine,"ARG7") != 0) { + $intCount = 7; + } else if (substr_count($strCommandLine,"ARG6") != 0) { + $intCount = 6; + } else if (substr_count($strCommandLine,"ARG5") != 0) { + $intCount = 5; + } else if (substr_count($strCommandLine,"ARG4") != 0) { + $intCount = 4; + } else if (substr_count($strCommandLine,"ARG3") != 0) { + $intCount = 3; + } else if (substr_count($strCommandLine,"ARG2") != 0) { + $intCount = 2; + } else if (substr_count($strCommandLine,"ARG1") != 0) { + $intCount = 1; + } else { + $intCount = 0; + } + + } +} +?> + + + + Commandline + + + + + + + + \ No newline at end of file diff --git a/admin/commands.php b/admin/commands.php new file mode 100644 index 0000000..7bc8d0d --- /dev/null +++ b/admin/commands.php @@ -0,0 +1,59 @@ +setVariable("TITLE",translate('Check commands')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('To define check and misc commands, notification commands and special commands.')); +$conttp->setVariable("STATISTICS",translate('Statistical datas')); +$conttp->setVariable("TYPE",translate('Group')); +$conttp->setVariable("ACTIVE",translate('Active')); +$conttp->setVariable("INACTIVE",translate('Inactive')); +// +// Include statistical data +// ======================== +// Get read access groups +$strAccess = $myVisClass->getAccGroups('read'); +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=18")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Check commands')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_command WHERE active='1' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM tbl_command WHERE active='0' AND config_id=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +$conttp->parse("statistics"); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/configtargets.php b/admin/configtargets.php new file mode 100755 index 0000000..9af9bbc --- /dev/null +++ b/admin/configtargets.php @@ -0,0 +1,287 @@ +addSlash($chkTfValue8); +$chkTfValue9 = $myVisClass->addSlash($chkTfValue9); +$chkTfValue10 = $myVisClass->addSlash($chkTfValue10); +$chkTfValue11 = $myVisClass->addSlash($chkTfValue11); +$chkTfValue12 = $myVisClass->addSlash($chkTfValue12); +$chkTfValue13 = $myVisClass->addSlash($chkTfValue13); +$chkTfValue14 = $myVisClass->addSlash($chkTfValue14); +$chkTfValue15 = $myVisClass->addSlash($chkTfValue15); +$chkTfValue16 = $myVisClass->addSlash($chkTfValue16); +// +// Check if the permissions and other parameters +// ============================================= +if (($chkModus == "modify" || $chkModus == "insert")) { + if ($chkDataId != 0) { + if ($chkSelValue1 == 1) { + $arrPaths = array($chkTfValue8,$chkTfValue9,$chkTfValue10,$chkTfValue11,$chkTfValue12,$chkTfValue13); + foreach ($arrPaths AS $elem) { + if (!$myConfigClass->dir_is_writable($elem)) { + $myVisClass->processMessage($elem." ".translate("is not writeable"),$strPathMessage); + $intIsError = 1; + } + } + // Nagios base configuration files + if (!is_writable($chkTfValue20)) { + $myVisClass->processMessage(str_replace(" "," ",translate("Nagios config file")." ".$chkTfValue20." ".translate("is not writeable")),$strPathMessage); + $intIsError = 1; + } else { + $intCheck = 0; + if (file_exists($chkTfValue20) && is_readable($chkTfValue20)) { + $resFile = fopen($chkTfValue20,'r'); + while (!feof($resFile)) { + $strLine = trim(fgets($resFile)); + if ((substr_count($strLine,'cfg_dir') != 0) || (substr_count($strLine,'cfg_file') != 0)) { + $intCheck = 1; + } + } + fclose($resFile); + } + if ($intCheck == 0) { + $myVisClass->processMessage(str_replace(" "," ",translate("Nagios config file")." ".$chkTfValue20." ".translate("is not a valid configuration file!")),$strPathMessage); + $intIsError = 1; + } + } + if (!is_writable($chkTfValue14."cgi.cfg")) { + $myVisClass->processMessage(str_replace(" "," ",translate("Cgi config file")." ".$chkTfValue14."cgi.cfg"." ".translate("is not writeable")),$strPathMessage); + $intIsError = 1; + } + + } + // Check SSH Method + if (($chkSelValue1 == 3) && !function_exists('ssh2_connect')) { + $myVisClass->processMessage(translate('SSH module not loaded!'),$strPathMessage); + $intIsError = 1; + } + // Check FTP Method + if (($chkSelValue1 == 2) && !function_exists('ftp_connect')) { + $myVisClass->processMessage(translate('FTP module not loaded!'),$strPathMessage); + $intIsError = 1; + } + if ($intIsError == 1) { + $chkModus = "add"; + $chkSelModify = "errormodify"; + } + } +} +// +// Add or modify data +// ================== +if ((($chkModus == "insert") || ($chkModus == "modify")) && ($intGlobalWriteAccess == 0)) { + $strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', `server`='$chkTfValue4', `method`='$chkSelValue1', + `user`='$chkTfValue5', `password`='$chkTfValue6', `ssh_key_path`='$chkTfValue7', `basedir`='$chkTfValue8', + `hostconfig`='$chkTfValue9', `serviceconfig`='$chkTfValue10', `backupdir`='$chkTfValue11', + `hostbackup`='$chkTfValue12', `servicebackup`='$chkTfValue13', `nagiosbasedir`='$chkTfValue14', + `importdir`='$chkTfValue15', `picturedir`='$chkTfValue16', `commandfile`='$chkTfValue17', + `binaryfile`='$chkTfValue18', `pidfile`='$chkTfValue19', `conffile`='$chkTfValue20', `version`=$chkSelValue2, + `access_group`=$chkSelAccGr, `active`='$chkActive', + `last_modified`=NOW()"; + if ($chkModus == "insert") { + $strSQL = "INSERT INTO ".$strSQLx; + } else { + $strSQL = "UPDATE ".$strSQLx." WHERE `id`=$chkDataId"; + } + if ($intWriteAccessId == 0) { + if (($chkTfValue1 != "") && ($chkTfValue2 != "") && (($chkTfValue4 != "") || ($chkDataId == 0))) { + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New Domain inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Domain modified:')." ".$chkTfValue1); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Configuration domain administration')); +if ($intIsError == 1) $conttp->setVariable("PATHMESSAGE","

".translate("Warning, at least one error occured, please check!")."

".$strPathMessage); +$conttp->parse("header"); +$conttp->show("header"); +// +// Single view +// =========== +if ($chkModus == "add") { + // Process acces group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + $conttp->setVariable("CLASS_NAME_1","elementHide"); + $conttp->setVariable("CLASS_NAME_2","elementHide"); + $conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *')); + $conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted characters:')); + // Insert data from database in "modify" mode + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,0,''); + // Connection method + if ($arrModifyData['method'] == 1) $conttp->setVariable("FILE_SELECTED","selected"); + if ($arrModifyData['method'] == 2) { + $conttp->setVariable("FTP_SELECTED","selected"); + $conttp->setVariable("CLASS_NAME_1","elementShow"); + } + if ($arrModifyData['method'] == 3) { + $conttp->setVariable("SFTP_SELECTED","selected"); + $conttp->setVariable("CLASS_NAME_1","elementShow"); + $conttp->setVariable("CLASS_NAME_2","elementShow"); + } + // Nagios version + if ($arrModifyData['version'] == 1) $conttp->setVariable("VER_SELECTED_1","selected"); + if ($arrModifyData['version'] == 2) $conttp->setVariable("VER_SELECTED_2","selected"); + if ($arrModifyData['version'] == 3) $conttp->setVariable("VER_SELECTED_3","selected"); + // Domain localhost cant' be renamed + if ($arrModifyData[$preKeyField] == "localhost") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("LOCKCLASS","inputlock"); + } else if ($arrModifyData[$preKeyField] == "common") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("COMMON_INVISIBLE","class=\"elementHide\""); + $conttp->setVariable("LOCKCLASS","inputlock"); + } + } + if ($chkSelModify == "errormodify") { + $conttp->setVariable("DAT_TARGET",$chkTfValue1); + // Domain localhost cant' be renamed + if ($chkTfValue1 == "localhost") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("LOCKCLASS","inputlock"); + } else if ($chkTfValue1 == "common") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("COMMON_INVISIBLE","class=\"elementHide\""); + $conttp->setVariable("LOCKCLASS","inputlock"); + } else { + $conttp->setVariable("LOCKCLASS","inpmust"); + } + $conttp->setVariable("DAT_ALIAS",$chkTfValue2); + $conttp->setVariable("DAT_SERVER",$chkTfValue4); + // Connection method + if ($chkSelValue1 == 1) $conttp->setVariable("FILE_SELECTED","selected"); + if ($chkSelValue1 == 2) { + $conttp->setVariable("FTP_SELECTED","selected"); + $conttp->setVariable("CLASS_NAME_1","elementShow"); + } + if ($chkSelValue1 == 3) { + $conttp->setVariable("SFTP_SELECTED","selected"); + $conttp->setVariable("CLASS_NAME_1","elementShow"); + $conttp->setVariable("CLASS_NAME_2","elementShow"); + } + $conttp->setVariable("DAT_USER",$chkTfValue5); + $conttp->setVariable("DAT_SSH_KEY_PATH",$chkTfValue7); + $conttp->setVariable("DAT_BASEDIR",$chkTfValue8); + $conttp->setVariable("DAT_HOSTCONFIG",$chkTfValue9); + $conttp->setVariable("DAT_SERVICECONFIG",$chkTfValue10); + $conttp->setVariable("DAT_BACKUPDIR",$chkTfValue11); + $conttp->setVariable("DAT_HOSTBACKUP",$chkTfValue12); + $conttp->setVariable("DAT_SERVICEBACKUP",$chkTfValue13); + $conttp->setVariable("DAT_NAGIOSBASEDIR",$chkTfValue14); + $conttp->setVariable("DAT_IMPORTDIR",$chkTfValue15); + $conttp->setVariable("DAT_COMMANDFILE",$chkTfValue17); + $conttp->setVariable("DAT_BINARYFILE",$chkTfValue18); + $conttp->setVariable("DAT_PIDFILE",$chkTfValue19); + $conttp->setVariable("DAT_CONFFILE",$chkTfValue20); + $conttp->setVariable("DAT_PICTUREDIR",$chkTfValue16); + // NagiosQL version + if ($chkSelValue2 == 1) $conttp->setVariable("VER_SELECTED_1","selected"); + if ($chkSelValue2 == 2) $conttp->setVariable("VER_SELECTED_2","selected"); + if ($chkSelValue2 == 3) $conttp->setVariable("VER_SELECTED_3","selected"); + // Hidden variables + $conttp->setVariable("MODUS",$_POST['modus']); + $conttp->setVariable("DAT_ID",$_POST['hidId']); + $conttp->setVariable("LIMIT",$_POST['hidLimit']); + // Active + if (isset ($_POST['chbActive'])) { + $conttp->setVariable("ACT_CHECKED","checked"); + } else { + $conttp->setVariable("ACT_CHECKED",""); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Configuration target')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Row sorting + $strOrderString = "ORDER BY `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `nodelete`, `access_group` FROM `$preTableName` WHERE `access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/contactgroups.php b/admin/contactgroups.php new file mode 100644 index 0000000..e73f304 --- /dev/null +++ b/admin/contactgroups.php @@ -0,0 +1,182 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New contact group inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Contact group modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkContactgroupToContact",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkContactgroupToContactgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkContactgroupToContact",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkContactgroupToContact",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkContactgroupToContactgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkContactgroupToContactgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2) != 0) $strInfoMessage = ""; + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define contact groups (contactgroups.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process contact member selection fields + $intReturn = 0; + if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','contacts','tbl_lnkContactgroupToContact',2,$intFieldId); + if ($intReturn != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no contacts defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process contactgroup member selection fields + if (isset($arrModifyData['contactgroup_members'])) {$intFieldId = $arrModifyData['contactgroup_members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'contactgroups','tbl_lnkContactgroupToContactgroup',0,$intFieldId,$chkListId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process acces group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Contact group')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/contacts.php b/admin/contacts.php new file mode 100644 index 0000000..5caeb0e --- /dev/null +++ b/admin/contacts.php @@ -0,0 +1,342 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New contact inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Contact modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkContactToContactgroup",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkContactToCommandHost",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkContactToCommandService",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkContactToContactgroup",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkContactToContactgroup",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkContactToCommandHost",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkContactToCommandHost",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkContactToCommandService",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkContactToCommandService",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3) != 0) $strInfoMessage = ""; + // + // Insert/update templates from session data + // ========================================= + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkContactToContacttemplate` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkContactToContacttemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update variables from session data + // ========================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkContactToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkContactToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkContactToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate("Define contacts (contacts.cfg)")); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template selection fields (Spezial) + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_contacttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['template_name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process timeperiod selection fields + $intReturn = 0; + if (isset($arrModifyData['host_notification_period'])) {$intFieldId = $arrModifyData['host_notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','host_time',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['service_notification_period'])) {$intFieldId = $arrModifyData['service_notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','service_time',1,$intFieldId); + if ($intReturn != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no time periods defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process command selection fields + if (isset($arrModifyData['host_notification_commands'])) {$intFieldId = $arrModifyData['host_notification_commands'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','host_command','tbl_lnkContactToCommandHost',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['service_notification_commands'])) {$intFieldId = $arrModifyData['service_notification_commands'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','service_command','tbl_lnkContactToCommandService',0,$intFieldId); + if ($intReturn != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no commands defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process contactgroup selection field + if (isset($arrModifyData['contactgroups'])) {$intFieldId = $arrModifyData['contactgroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkContactToContactgroup',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "HNE,SNE,RSI,CSC,RNS,TPL,SEC,HOC,COG"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion == 3) { + $conttp->setVariable("HOST_OPTION_FIELDS","chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1e,chbGr1f"); + $conttp->setVariable("SERVICE_OPTION_FIELDS","chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2f,chbGr2g"); + } else { + $conttp->setVariable("HOST_OPTION_FIELDS","chbGr1a,chbGr1b,chbGr1c,chbGr1d,chbGr1f"); + $conttp->setVariable("SERVICE_OPTION_FIELDS","chbGr2a,chbGr2b,chbGr2c,chbGr2d,chbGr2e,chbGr2g"); + $conttp->setVariable("VERSION_20_VALUE_MUST",",tfValue2"); + } + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + // Process radio fields + $conttp->setVariable("DAT_HNE".$arrModifyData['host_notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_SNE".$arrModifyData['service_notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_RSI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_CSC".$arrModifyData['can_submit_commands']."_CHECKED","checked"); + $conttp->setVariable("DAT_RNS".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_SEC".$arrModifyData['service_notification_commands_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOC".$arrModifyData['host_notification_commands_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contactgroups_tploptions']."_CHECKED","checked"); + // Process option fields + foreach(explode(",",$arrModifyData['host_notification_options']) AS $elem) { + $conttp->setVariable("DAT_HO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['service_notification_options']) AS $elem) { + $conttp->setVariable("DAT_SO".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Contact name')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR + `email` LIKE '%".$strSearchTxt."%' OR `pager` LIKE '%".$strSearchTxt."%' OR + `address1` LIKE '%".$strSearchTxt."%' OR `address2` LIKE '%".$strSearchTxt."%' OR + `address3` LIKE '%".$strSearchTxt."%' OR `address4` LIKE '%".$strSearchTxt."%' OR + `address5` LIKE '%".$strSearchTxt."%' OR `address6` LIKE '%".$strSearchTxt."%' OR + `name` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `register`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/contacttemplates.php b/admin/contacttemplates.php new file mode 100644 index 0000000..d380c23 --- /dev/null +++ b/admin/contacttemplates.php @@ -0,0 +1,334 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New contact template inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Contact template modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkContacttemplateToContactgroup",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkContacttemplateToCommandHost",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkContacttemplateToCommandService",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkContacttemplateToContactgroup",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkContacttemplateToContactgroup",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkContacttemplateToCommandHost",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkContacttemplateToCommandHost",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkContacttemplateToCommandService",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkContacttemplateToCommandService",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3) != 0) $strInfoMessage = ""; + // + // Insert/update templates from session data + // ========================================= + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkContacttemplateToContacttemplate` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkContacttemplateToContacttemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update variables from session data + // ========================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkContacttemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkContacttemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkContacttemplateToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate("Define contact templates (contacttemplates.cfg)")); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template selection fields (Spezial) + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem[$preKeyField],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `tbl_contact` WHERE `name` <> '' AND $strDomainWhere2 ORDER BY name"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process timeperiod selection fields + $intReturn = 0; + if (isset($arrModifyData['host_notification_period'])) {$intFieldId = $arrModifyData['host_notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','host_time',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['service_notification_period'])) {$intFieldId = $arrModifyData['service_notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','service_time',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process command selection fields + if (isset($arrModifyData['host_notification_commands'])) {$intFieldId = $arrModifyData['host_notification_commands'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','host_command','tbl_lnkContacttemplateToCommandHost',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['service_notification_commands'])) {$intFieldId = $arrModifyData['service_notification_commands'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_command','command_name','service_command','tbl_lnkContacttemplateToCommandService',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contactgroup selection field + if (isset($arrModifyData['contactgroups'])) {$intFieldId = $arrModifyData['contactgroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkContacttemplateToContactgroup',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process acces group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "HNE,SNE,RSI,CSC,RNS,TPL,SEC,HOC,COG"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion == 3) { + $conttp->setVariable("HOST_OPTION_FIELDS","chbHOd3,chbHOu3,chbHOr3,chbHOf3,chbHOs3,chbHOn3"); + $conttp->setVariable("SERVICE_OPTION_FIELDS","chbSOw3,chbSOu3,chbSOc3,chbSOr3,chbSOf3,chbSOs3,chbSOn3"); + } else { + $conttp->setVariable("HOST_OPTION_FIELDS","chbHOd2,chbHOu2,chbHOr2,chbHOf2,chbHOn2"); + $conttp->setVariable("SERVICE_OPTION_FIELDS","chbSOw2,chbSOu2,chbSOc2,chbSOr2,chbSOf2,chbSOn2"); + $conttp->setVariable("VERSION_20_VALUE_MUST",",tfFriendly"); + } + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + // Process radio fields + $conttp->setVariable("DAT_HNE".$arrModifyData['host_notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_SNE".$arrModifyData['service_notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_RSI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_CSC".$arrModifyData['can_submit_commands']."_CHECKED","checked"); + $conttp->setVariable("DAT_RNS".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_SEC".$arrModifyData['service_notification_commands_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOC".$arrModifyData['host_notification_commands_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contactgroups_tploptions']."_CHECKED","checked"); + // Process option fields + foreach(explode(",",$arrModifyData['host_notification_options']) AS $elem) { + $conttp->setVariable("DAT_HO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['service_notification_options']) AS $elem) { + $conttp->setVariable("DAT_SO".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Contact name')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR + `email` LIKE '%".$strSearchTxt."%' OR `pager` LIKE '%".$strSearchTxt."%' OR + `address1` LIKE '%".$strSearchTxt."%' OR `address2` LIKE '%".$strSearchTxt."%' OR + `address3` LIKE '%".$strSearchTxt."%' OR `address4` LIKE '%".$strSearchTxt."%' OR + `address5` LIKE '%".$strSearchTxt."%' OR `address6` LIKE '%".$strSearchTxt."%')"; + + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `register`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/datadomain.php b/admin/datadomain.php new file mode 100755 index 0000000..8e19db3 --- /dev/null +++ b/admin/datadomain.php @@ -0,0 +1,160 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New Domain inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Domain modified:')." ".$chkTfValue1); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Data domain administration')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Single view +// =========== +if ($chkModus == "add") { + // Process configuration target selection fields + $intReturn = 0; + if (isset($arrModifyData['targets'])) {$intFieldId = $arrModifyData['targets'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_configtarget','target','target',0,$intFieldId); + if ($intReturn != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no configuration targets defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process acces group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + $conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *')); + $conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted characters:')); + $conttp->setVariable("ENABLE",translate('Enable')); + $conttp->setVariable("DISABLE",translate('Disable')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,0,''); + // Nagios version + if ($arrModifyData['version'] == 1) $conttp->setVariable("VER_SELECTED_1","selected"); + if ($arrModifyData['version'] == 2) $conttp->setVariable("VER_SELECTED_2","selected"); + if ($arrModifyData['version'] == 3) $conttp->setVariable("VER_SELECTED_3","selected"); + // Enable common domain + if ($arrModifyData['enable_common'] == 0) $conttp->setVariable("ENA_COMMON_SELECTED_0","selected"); + if ($arrModifyData['enable_common'] == 1) $conttp->setVariable("ENA_COMMON_SELECTED_1","selected"); + // Domain localhost cant' be renamed + if ($arrModifyData['domain'] == "localhost") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("LOCKCLASS","inputlock"); + } else if ($arrModifyData['domain'] == "common") { + $conttp->setVariable("DOMAIN_DISABLE","readonly"); + $conttp->setVariable("COMMON_INVISIBLE","class=\"elementHide\""); + $conttp->setVariable("LOCKCLASS","inputlock"); + } else { + $conttp->setVariable("CHECK_TARGETS",",selValue1"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Data domain')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Row sorting + $strOrderString = "ORDER BY `domain` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `domain`, `alias`, `active`, `nodelete`, `access_group` FROM `$preTableName` WHERE `access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/delbackup.php b/admin/delbackup.php new file mode 100644 index 0000000..506c605 --- /dev/null +++ b/admin/delbackup.php @@ -0,0 +1,149 @@ +getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +$myConfigClass->getConfigData($intConfigId,"backupdir",$strBackupDir); +$myConfigClass->getConfigData($intConfigId,"hostbackup",$strHostBackupDir); +$myConfigClass->getConfigData($intConfigId,"servicebackup",$strServiceBackupDir); +// +// Process form inputs +// =================== +if (($chkMselValue1[0] != "") && ($chkStatus == 1)) { + foreach($chkMselValue1 AS $elem) { + $intCheck = $myConfigClass->removeFile(trim($elem),$intConfigId); + $strFile = str_replace($strServiceBackupDir,"",$elem); + $strFile = str_replace($strHostBackupDir,"",$strFile); + $strFile = str_replace($strBackupDir,"",$strFile); + if ($intCheck == 0) { + $myDataClass->writeLog(translate("File deleted").": ".trim($strFile)); + $myVisClass->processMessage($strFile." ".translate("successfully deleted")."!",$strInfoMessage); + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } +} +// +// Include content +// =============== +$conttp->setVariable("TITLE",translate("Delete backup files")); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("LANG_SEARCH_STRING",translate('Filter string')); +$conttp->setVariable("LANG_SEARCH",translate('Search')); +$conttp->setVariable("LANG_DELETE",translate('Delete')); +$conttp->setVariable("LANG_DELETE_SEARCH",translate("Reset filter")); +$conttp->setVariable("DAT_SEARCH",$chkTfSearch); +$conttp->setVariable("BACKUPFILE",translate("Backup file")); +$conttp->setVariable("LANG_REQUIRED",translate("required")); +$conttp->setVariable("MAKE",translate("Delete")); +$conttp->setVariable("ABORT",translate("Abort")); +$conttp->setVariable("CTRL_INFO",translate("Hold CTRL to select
more than one entry")); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +// Build a local file list +if ($intMethod == 1) { + $output = array(); + $temp=$myConfigClass->DirToArray($strBackupDir, "\.cfg_", "",$output,$strErrorMessage); + if (is_array($output) && (count($output) != 0)) { + foreach ($output AS $elem) { + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",$elem); + $conttp->parse("filelist"); + } + } + } +} else if ($intMethod == 2) { + // Set up basic connection + if ($myConfigClass->getFTPConnection($intConfigId) == "0") { + $arrFiles = array(); + $arrFiles1 = ftp_nlist($myConfigClass->resConnectId,$strBackupDir); + if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + $arrFiles2 = ftp_nlist($myConfigClass->resConnectId,$strHostBackupDir); + if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2); + $arrFiles1 = ftp_nlist($myConfigClass->resConnectId,$strServiceBackupDir); + if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + if (is_array($arrFiles) && (count($arrFiles) != 0)) { + foreach ($arrFiles AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",$elem); + $conttp->parse("filelist"); + } + } + } else { + $myVisClass->processMessage(translate("No backup files or no permission to read the backup files"),$strErrorMessage); + } + ftp_close($myConfigClass->resConnectId); + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} else if ($intMethod == 3) { + // Set up basic connection + if ($myConfigClass->getSSHConnection($intConfigId) == "0") { + $arrFiles = array(); + $arrFiles1 = $myConfigClass->sendSSHCommand("ls ".$strBackupDir."*.cfg_old*"); + if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + $arrFiles2 = $myConfigClass->sendSSHCommand("ls ".$strHostBackupDir."*.cfg_old*"); + if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2); + $arrFiles3 = $myConfigClass->sendSSHCommand("ls ".$strServiceBackupDir."*.cfg_old*"); + if (is_array($arrFiles3)) $arrFiles = array_merge($arrFiles,$arrFiles3); + if (is_array($arrFiles) && (count($arrFiles) != 0)) { + foreach ($arrFiles AS $elem) { + if (!substr_count($elem,"cfg_old")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",str_replace("//","/",$elem)); + $conttp->parse("filelist"); + } + } + } else { + $myVisClass->processMessage(translate("No backup files or no permission to read the backup files"),$strErrorMessage); + } + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("main"); +$conttp->show("main"); +// +// Footer ausgeben +// =============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/delconfig.php b/admin/delconfig.php new file mode 100644 index 0000000..c745a52 --- /dev/null +++ b/admin/delconfig.php @@ -0,0 +1,164 @@ +getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +$myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir); +$myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostDir); +$myConfigClass->getConfigData($intConfigId,"serviceconfig",$strServiceDir); +// +// Process form inputs +// =================== +if (($chkMselValue1[0] != "") && ($chkStatus == 1)) { + foreach($chkMselValue1 AS $elem) { + $intCheck = $myConfigClass->removeFile(trim($elem),$intConfigId); + $strFile = str_replace($strServiceDir,"",$elem); + $strFile = str_replace($strHostDir,"",$strFile); + $strFile = str_replace($strBaseDir,"",$strFile); + if ($intCheck == 0) { + $myDataClass->writeLog(translate("File deleted").": ".trim($strFile)); + $myVisClass->processMessage($strFile." ".translate("successfully deleted")."!",$strInfoMessage); + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } +} +// +// Include content +// =============== +$conttp->setVariable("TITLE",translate("Delete config files")); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("LANG_SEARCH_STRING",translate('Filter string')); +$conttp->setVariable("LANG_SEARCH",translate('Search')); +$conttp->setVariable("LANG_DELETE",translate('Delete')); +$conttp->setVariable("LANG_DELETE_SEARCH",translate("Reset filter")); +$conttp->setVariable("DAT_SEARCH",$chkTfSearch); +$conttp->setVariable("BACKUPFILE",translate("Configuration file")); +$conttp->setVariable("LANG_REQUIRED",translate("required")); +$conttp->setVariable("MAKE",translate("Delete")); +$conttp->setVariable("ABORT",translate("Abort")); +$conttp->setVariable("CTRL_INFO",translate("Hold CTRL to select
more than one entry")); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +// Build a local file list +if ($intMethod == 1) { + $output = array(); + $temp=$myConfigClass->DirToArray($strBaseDir, "\.cfg", "",$output,$strErrorMessage); + if (is_array($output) && (count($output) != 0)) { + foreach ($output AS $elem2) { + if (($chkTfSearch == "") || (substr_count($elem2,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",$elem2); + $conttp->parse("filelist"); + } + } + } +} else if ($intMethod == 2) { + // Open ftp connection + if ($myConfigClass->getFTPConnection($intConfigId) == "0") { + $arrFiles = array(); + $arrFiles1 = ftp_nlist($myConfigClass->resConnectId,$strBaseDir); + if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + $arrFiles2 = ftp_nlist($myConfigClass->resConnectId,$strHostDir); + if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2); + $arrFiles3 = ftp_nlist($myConfigClass->resConnectId,$strServiceDir); + if (is_array($arrFiles3)) $arrFiles = array_merge($arrFiles,$arrFiles3); + if (is_array($arrFiles) && (count($arrFiles) != 0)) { + foreach ($arrFiles AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",str_replace("//","/",$elem)); + $conttp->parse("filelist"); + } + } + } + ftp_close($myConfigClass->resConnectId); + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} else if ($intMethod == 3) { + // Open ssh connection + if ($myConfigClass->getSSHConnection($intConfigId) == "0") { + $arrFiles1 = $myConfigClass->sendSSHCommand('ls '.$strBaseDir); + if (is_array($arrFiles1) && (count($arrFiles1) != 0)) { + foreach ($arrFiles1 AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (substr_count($elem,"cgi.cfg") != 0) continue; + if (substr_count($elem,"nagios.cfg") != 0) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",str_replace("//","/",$strBaseDir."/".$elem)); + $conttp->setVariable("DAT_BACKUPFILE_FULL",str_replace("//","/",$strBaseDir."/".$elem)); + $conttp->parse("filelist"); + } + } + } + $arrFiles2 = $myConfigClass->sendSSHCommand('ls '.$strHostDir); + if (is_array($arrFiles2) && (count($arrFiles2) != 0)) { + foreach ($arrFiles2 AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",str_replace("//","/",$strHostDir."/".$elem)); + $conttp->setVariable("DAT_BACKUPFILE_FULL",str_replace("//","/",$strHostDir."/".$elem)); + $conttp->parse("filelist"); + } + } + } + $arrFiles3 = $myConfigClass->sendSSHCommand('ls '.$strServiceDir); + if (is_array($arrFiles3) && (count($arrFiles3) != 0)) { + foreach ($arrFiles3 AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_BACKUPFILE",str_replace("//","/",$strServiceDir."/".$elem)); + $conttp->setVariable("DAT_BACKUPFILE_FULL",str_replace("//","/",$strServiceDir."/".$elem)); + $conttp->parse("filelist"); + } + } + } + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("main"); +$conttp->show("main"); +// +// Footer ausgeben +// =============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/download.php b/admin/download.php new file mode 100644 index 0000000..5122ab8 --- /dev/null +++ b/admin/download.php @@ -0,0 +1,68 @@ +createConfig($chkTable,1); +} else { + $myConfigClass->createConfigSingle($chkTable,$chkLine,1); +} +$myDataClass->writeLog(translate('Download')." ".$strFile); +?> \ No newline at end of file diff --git a/admin/group.php b/admin/group.php new file mode 100644 index 0000000..1d434e1 --- /dev/null +++ b/admin/group.php @@ -0,0 +1,165 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('A new group added:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('User modified:')." ".$chkTfValue1); + // + // Insert/update user/group data from session data + // =============================================== + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkGroupToUser` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser']) && (count($_SESSION['groupuser']) != 0)) { + foreach($_SESSION['groupuser'] AS $elem) { + if ($elem['status'] == 0) { + $intRead = 0; $intWrite = 0; $intLink = 0; + if (substr_count($elem['rights'],"READ") != 0) $intRead = 1; + if (substr_count($elem['rights'],"WRITE") != 0) $intWrite = 1; + if (substr_count($elem['rights'],"LINK") != 0) $intLink = 1; + if ($intWrite == 1) {$intRead = 1;$intLink = 1;} + if ($intRead == 1) {$intLink = 1;} + // if ($intLink == 1) $intRead = 1; + $strSQL = "INSERT INTO `tbl_lnkGroupToUser` (`idMaster`,`idSlave`,`read`,`write`,`link`) + VALUES ($chkDataId,".$elem['user'].",'$intRead','$intWrite','$intLink')"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Group administration')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Process data fields + $strSQL = "SELECT * FROM tbl_user WHERE id <> 1 ORDER BY username"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($booReturn && ($intDataCount != 0)) { + foreach($arrDataLines AS $elem) { + $conttp->setVariable("DAT_USER_ID",$elem['id']); + $conttp->setVariable("DAT_USER",$elem['username']); + $conttp->parse("users"); + } + } + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + $conttp->setVariable("LANG_READ",translate("Read")); + $conttp->setVariable("LANG_WRITE",translate("Write")); + $conttp->setVariable("LANG_LINK",translate("Link")); + $conttp->setVariable("DAT_ID",$chkListId); + $conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *')); + $conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted characters:')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,0,''); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Groupname')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Row sorting + $strOrderString = "ORDER BY `groupname` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `description` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName`"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `groupname`, `description`, `active` FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'description'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/groupusers.php b/admin/groupusers.php new file mode 100644 index 0000000..1709fd3 --- /dev/null +++ b/admin/groupusers.php @@ -0,0 +1,159 @@ +getDataArray($strSQL,$arrDataLines,$intDataCount); + // + // Write data to session + // ===================== + if ($chkMode == "") { + $_SESSION['groupuser'] = ""; + if ($intDataCount != 0) { + foreach ($arrDataLines AS $elem) { + $arrTemp['id'] = $elem['id']; + $arrTemp['user'] = $elem['id']; + $strRights = ""; + if ($elem['read'] == 1) $strRights .= "READ,"; + if ($elem['write'] == 1) $strRights .= "WRITE,"; + if ($elem['link'] == 1) $strRights .= "LINK,"; + if ($strRights != "") $strRights = substr($strRights,0,-1); + $arrTemp['rights'] = $strRights; + $arrTemp['status'] = 0; + $_SESSION['groupuser'][] = $arrTemp; + } + } + } +} +// +// Add mode +// ======== +if ($chkMode == "add") { + if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser'])) { + $intCheck = 0; + foreach ($_SESSION['groupuser'] AS $key => $elem) { + if (($elem['user'] == $chkUser) && ($elem['status'] == 0)) { + $_SESSION['groupuser'][$key]['user'] = $chkUser; + $_SESSION['groupuser'][$key]['rights'] = $chkRights; + $intCheck = 1; + } + } + if ($intCheck == 0) { + $arrTemp['id'] = 0; + $arrTemp['user'] = $chkUser; + $arrTemp['rights'] = $chkRights; + $arrTemp['status'] = 0; + $_SESSION['groupuser'][] = $arrTemp; + } + } else { + $arrTemp['id'] = 0; + $arrTemp['user'] = $chkUser; + $arrTemp['rights'] = $chkRights; + $arrTemp['status'] = 0; + $_SESSION['groupuser'][] = $arrTemp; + } +} +// +// Deletion mode +// ============= +if ($chkMode == "del") { + if (isset($_SESSION['groupuser']) && is_array($_SESSION['groupuser'])) { + foreach ($_SESSION['groupuser'] AS $key => $elem) { + if (($elem['user'] == $chkUser) && ($elem['status'] == 0)) { + $_SESSION['groupuser'][$key]['status'] = 1; + } + } + } +} +?> + + + + + None + + + + + +getFieldData("SELECT username FROM tbl_user WHERE id=".$elem['user']); +?> + + + + + + + + + + + + +
<?php echo translate('Delete'); ?>
  
+ + \ No newline at end of file diff --git a/admin/helpedit.php b/admin/helpedit.php new file mode 100644 index 0000000..a1bed32 --- /dev/null +++ b/admin/helpedit.php @@ -0,0 +1,153 @@ +getDataArray($strSQL,$arrData,$intDataCount); + if ($intDataCount == 0) { + $strSQL = "INSERT INTO `tbl_info` (`key1`,`key2`,`version`,`language`,`infotext`) + VALUES ('$chkTfValue1','$chkTfValue2','$chkHidVersion','$setSaveLangId','$chkTaValue1')"; + } else { + $strSQL = "UPDATE `tbl_info` SET `infotext` = '$chkTaValue1' + WHERE `key1` = '$chkTfValue1' AND `key2` = '$chkTfValue2' AND `version` = '$chkHidVersion' + AND `language` = '$setSaveLangId'"; + } + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + } +} +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Help text editor')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("MAINSITE",$_SESSION['SETS']['path']['base_url']."admin.php"); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("INFOKEY_1",translate('Main key')); +$conttp->setVariable("INFOKEY_2",translate('Sub key')); +$conttp->setVariable("INFO_LANG",translate('Language')); +$conttp->setVariable("INFO_VERSION",translate('Nagios version')); +$conttp->setVariable("LOAD_DEFAULT",translate('Load default text')); +if ($chkChbValue1 == "1") $conttp->setVariable("DEFAULT_CHECKED","checked"); +// +// Get Key +// ======= +$strSQL = "SELECT DISTINCT `key1` FROM `tbl_info` ORDER BY `key1`"; +$booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); +if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $conttp->setVariable("INFOKEY_1_VAL",$elem['key1']); + if ($chkKey1 == $elem['key1']) { + $conttp->setVariable("INFOKEY_1_SEL","selected"); + $conttp->setVariable("INFOKEY_1_SEL_VAL",$elem['key1']); + } + $conttp->parse("infokey1"); + } +} +if ($chkKey1 != "") { + $strSQL = "SELECT DISTINCT `key2` FROM `tbl_info` WHERE `key1` = '$chkKey1' ORDER BY `key1`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $conttp->setVariable("INFOKEY_2_VAL",$elem['key2']); + if ($chkKey2 == $elem['key2']) { + $conttp->setVariable("INFOKEY_2_SEL","selected"); + $conttp->setVariable("INFOKEY_2_SEL_VAL",$elem['key2']); + } + $conttp->parse("infokey2"); + } + } +} +if (($chkKey1 != "") && ($chkKey2 != "")) { + $strSQL = "SELECT DISTINCT `version` FROM `tbl_info` WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' ORDER BY `version`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($intDataCount != 0) { + if (($intDataCount == 1) && ($chkVersion == "")) $chkVersion = $arrData[0]['version']; + foreach ($arrData AS $elem) { + $conttp->setVariable("INFOVERSION_2_VAL",$elem['version']); + if ($chkVersion == $elem['version']) { + $conttp->setVariable("INFOVERSION_2_SEL","selected"); + $conttp->setVariable("INFOVERSION_2_SEL_VAL",$elem['version']); + } + $conttp->parse("infoversion"); + } + } +} +// +// Insert content +// ============== +if (($chkKey1 != "") && ($chkKey2 != "") && ($chkVersion != "")) { + $strSQL = "SELECT `infotext` FROM `tbl_info` + WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' AND `language` = '$setSaveLangId'"; + $strContentDB = $myDBClass->getFieldData($strSQL); + if (($chkChbValue1 == 1) || ($strContentDB == "")) { + $strSQL = "SELECT `infotext` FROM `tbl_info` + WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' AND `language` = 'default'"; + $strContentDB = $myDBClass->getFieldData($strSQL); + } + $conttp->setVariable("DAT_HELPTEXT",$strContentDB); +} +// Messages +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +if ($strInfoMessage != "") $conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("helpedit"); +$conttp->show("helpedit"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/hostdependencies.php b/admin/hostdependencies.php new file mode 100644 index 0000000..151ca53 --- /dev/null +++ b/admin/hostdependencies.php @@ -0,0 +1,229 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host dependency inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host dependency modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkHostdependencyToHost_DH",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkHostdependencyToHost_H",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkHostdependencyToHostgroup_DH",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkHostdependencyToHostgroup_H",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkHostdependencyToHost_DH",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkHostdependencyToHost_DH",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkHostdependencyToHost_H",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkHostdependencyToHost_H",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkHostdependencyToHostgroup_DH",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkHostdependencyToHostgroup_DH",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkHostdependencyToHostgroup_H",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkHostdependencyToHostgroup_H",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) $strInfoMessage = ""; + // + // Update Import HASH + // ================== + $booReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($booReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define host dependencies (hostdependencies.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process host selection field + if (isset($arrModifyData['dependent_host_name'])) {$intFieldId = $arrModifyData['dependent_host_name'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','depend_host','tbl_lnkHostdependencyToHost_DH',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','host','tbl_lnkHostdependencyToHost_H',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process time period selection field + if (isset($arrModifyData['dependency_period'])) {$intFieldId = $arrModifyData['dependency_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','timeperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process host group selection field + if (isset($arrModifyData['dependent_hostgroup_name'])) {$intFieldId = $arrModifyData['dependent_hostgroup_name'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','depend_hostgroup','tbl_lnkHostdependencyToHostgroup_DH',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHostdependencyToHostgroup_H',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + if ($arrModifyData['inherits_parent'] == 1) $conttp->setVariable("ACT_INHERIT","checked"); + foreach(explode(",",$arrModifyData['execution_failure_criteria']) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_failure_criteria']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Config name')); + $mastertp->setVariable("FIELD_2",translate('Dependent hosts')." / ".translate('Dependent hostgroups')); + $mastertp->setVariable("DISABLE_SORT_2","disable"); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + $mastertp->setVariable("DISABLE_SORT_2","disable"); + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `dependent_host_name`, `dependent_hostgroup_name`, `register`, `active`, `config_id`, `access_group` + FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'process_field',40); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/hostescalations.php b/admin/hostescalations.php new file mode 100644 index 0000000..46e9acc --- /dev/null +++ b/admin/hostescalations.php @@ -0,0 +1,226 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host escalation inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host escalation modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkHostescalationToContact",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkHostescalationToContactgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkHostescalationToHost",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkHostescalationToHostgroup",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkHostescalationToContact",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkHostescalationToContact",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkHostescalationToContactgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkHostescalationToContactgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkHostescalationToHost",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkHostescalationToHost",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkHostescalationToHostgroup",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkHostescalationToHostgroup",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) $strInfoMessage = ""; + // + // Update Import HASH + // ================== + $booReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($booReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define host escalation (hostescalations.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process host and host group selection field + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','host','tbl_lnkHostescalationToHost',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHostescalationToHostgroup',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process timeperiod selection field + if (isset($arrModifyData['escalation_period'])) {$intFieldId = $arrModifyData['escalation_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','escperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_contact','contact_name','contact','tbl_lnkHostescalationToContact',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkHostescalationToContactgroup',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no contacts and contactgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + foreach(explode(",",$arrModifyData['escalation_options']) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Config name')); + $mastertp->setVariable("FIELD_2",translate('Hosts')." / ".translate('Host groups')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + $mastertp->setVariable("DISABLE_SORT_2","disable"); + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `host_name`, `hostgroup_name`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere + $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'process_field',40); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/hostextinfo.php b/admin/hostextinfo.php new file mode 100644 index 0000000..7c18c0a --- /dev/null +++ b/admin/hostextinfo.php @@ -0,0 +1,159 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host extended information inserted:')." ".$chkSelValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host extended information modified:')." ".$chkSelValue1); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define host extended information (hostextinfo.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + if (isset($arrModifyData[$preKeyField])) {$intFieldId = $arrModifyData[$preKeyField];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectSimple('tbl_host',$preKeyField,'host',0,$intFieldId); + if ($intReturn1 != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no hosts defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Host name')); + $mastertp->setVariable("FIELD_2",translate('Notes')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`tbl_host`.`$preKeyField` LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes` LIKE '%".$strSearchTxt."%' + OR `$preTableName`.`notes_url` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `$preTableName`.`config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `$preTableName`.`config_id`, `notes` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField`=`tbl_host`.`id` + WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `$preTableName`.`id`, `tbl_host`.`$preKeyField`, `$preTableName`.`notes`, `$preTableName`.`register`, `$preTableName`.`active`, + `$preTableName`.`config_id`, `$preTableName`.`access_group` + FROM `$preTableName` LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` + WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'notes'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/hostgroups.php b/admin/hostgroups.php new file mode 100644 index 0000000..f7bb1ca --- /dev/null +++ b/admin/hostgroups.php @@ -0,0 +1,182 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host group inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host group modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkHostgroupToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkHostgroupToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkHostgroupToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkHostgroupToHost",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkHostgroupToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkHostgroupToHostgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2) != 0) $strInfoMessage = ""; + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define host groups (hostgroups.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process host selection field + if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','host_members','tbl_lnkHostgroupToHost',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn != 0) && ($intVersion != 3)) { + $myVisClass->processMessage(translate('Attention, no hosts defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process host group selection field + if (isset($arrModifyData['hostgroup_members'])) {$intFieldId = $arrModifyData['hostgroup_members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'hostgroups','tbl_lnkHostgroupToHostgroup',0,$intFieldId,$chkListId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Host group')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR `notes` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/hosts.php b/admin/hosts.php new file mode 100644 index 0000000..78a79cf --- /dev/null +++ b/admin/hosts.php @@ -0,0 +1,494 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkHostToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkHostToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkHostToContact",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkHostToContactgroup",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkHostToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkHostToHost",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkHostToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkHostToHostgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkHostToContact",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkHostToContact",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkHostToContactgroup",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkHostToContactgroup",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) $strInfoMessage = ""; + // + // Removing the config file if an entry was deleted or renamed + // =========================================================== + if (($chkModus == "modify") && ($chkTfValue2 != $chkTfValue1) && ($chkDomainId != 0)) { + $arrConfigID = $myConfigClass->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("host",$chkTfValue2.".cfg",$intConfigID); + } + if ($intReturn == 0) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!'),$strInfoMessage); + $myDataClass->writeLog(translate('Host file deleted:')." ".$chkTfValue2.".cfg"); + } else { + if ($chkDomainId == 0) { + $myVisClass->processMessage(translate('Common files cannot be removed from target systems - please check manually'),$strErrorMessage); + } else { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } + } + } + // + // Removing the config file if an entry was dectivated + // =================================================== + if (($chkModus == "modify") && ($chkActive == 0)) { + $arrConfigID = $myConfigClass->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("host",$chkTfValue2.".cfg",$intConfigID); + } + if ($intReturn == 0) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!'),$strInfoMessage); + $myDataClass->writeLog(translate('Host file deleted:')." ".$chkTfValue1.".cfg"); + } else { + if ($chkDomainId == 0) { + $myVisClass->processMessage(translate('Common files cannot be removed from target systems - please check manually'),$strErrorMessage); + } else { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } + } + } + // + // Insert/update session data for templates + // ======================================== + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkHostToHosttemplate` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkHostToHosttemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update session data for free variables + // ============================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkHostToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkHostToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "UPDATE `tbl_host` SET `use_variables`=0 WHERE `id`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + $intCountVariable = 0; + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $intReturn1 = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkHostToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $intReturn2 = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 == 0) && ($intReturn2 == 0)) $intCountVariable++; + } + } + if ($intCountVariable != 0) { + $strSQL = "UPDATE `tbl_host` SET `use_variables`=1 WHERE `id`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + // + // Insert/Update service <-> host relations + // ======================================== + // Update service table last modified date + $strSQL = "SELECT `idMaster` FROM `tbl_lnkServiceToHost` WHERE `idSlave`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "UPDATE `tbl_service` SET `last_modified` = NOW() WHERE `id`=".$elem['idMaster']; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + // Remove any link data from host to service + $strSQL = "DELETE FROM `tbl_lnkServiceToHost` WHERE `idSlave`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + foreach ($chkMselValue5 AS $elem) { + if ($elem != "") { + $intExclude = 0; + if (substr($elem,0,1) == "e") { + $intExclude = 1; + $elem = substr_replace($elem,"",0,1); + } + $strSQL = "INSERT INTO `tbl_lnkServiceToHost` (`idMaster`,`idSlave`,`exclude`) + VALUES ($elem,$chkDataId,$intExclude)"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + // Update service table last modified date + $strSQL = "UPDATE `tbl_service` SET `last_modified` = NOW() WHERE `id`=".$elem; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + // Check if Service ID is not 0 + $strSQL = "SELECT `$preKeyField` FROM `tbl_service` WHERE `id`=$elem"; + $strResult = $myDBClass->getFieldData($strSQL); + if ($strResult == 0) { + $strSQL = "UPDATE `tbl_service` SET `$preKeyField`=1 WHERE `id`=$elem"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define hosts (hosts.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template fields + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_hosttemplate` WHERE $strDomainWhere2 ORDER BY `template_name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['template_name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process host selection field + if (isset($arrModifyData['parents'])) {$intFieldId = $arrModifyData['parents'];} else {$intFieldId = 0;} + if (isset($arrModifyData['id'])) {$intKeyId = $arrModifyData['id'];} else {$intKeyId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'host_parents','tbl_lnkHostToHost',0,$intFieldId,$intKeyId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process hostgroup selection field + if (isset($arrModifyData['hostgroups'])) {$intFieldId = $arrModifyData['hostgroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHostToHostgroup',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check command selection field + if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != "")) { + $arrCommand = explode("!",$arrModifyData['check_command']); + $intFieldId = $arrCommand[0]; + } else { + $intFieldId = 0; + } + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','hostcommand',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check period selection field + if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId); + if ($intReturn != 0) { + $myVisClass->processMessage(translate('Attention, no time periods defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process event handler selection field + if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_contact','contact_name','host_contacts','tbl_lnkHostToContact',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','host_contactgroups','tbl_lnkHostToContactgroup',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no contact groups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process service selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['id'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','host_services','tbl_lnkServiceToHost',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "ACE,PCE,FRE,OBS,EVH,FLE,STI,NSI,PED,NOE,PAR,HOG,COT,COG,TPL"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + $conttp->setVariable("DAT_ACE".$arrModifyData['active_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PCE".$arrModifyData['passive_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FRE".$arrModifyData['check_freshness']."_CHECKED","checked"); + $conttp->setVariable("DAT_OBS".$arrModifyData['obsess_over_host']."_CHECKED","checked"); + $conttp->setVariable("DAT_EVH".$arrModifyData['event_handler_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FLE".$arrModifyData['flap_detection_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_STI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_NSI".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_PED".$arrModifyData['process_perf_data']."_CHECKED","checked"); + $conttp->setVariable("DAT_NOE".$arrModifyData['notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PAR".$arrModifyData['parents_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOG".$arrModifyData['hostgroups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COT".$arrModifyData['contacts_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contact_groups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + // Special processing for -1 values - write 'null' to integer fields + $strIntegerfelder = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,high_flap_threshold,"; + $strIntegerfelder .= "notification_interval,first_notification_delay"; + foreach(explode(",",$strIntegerfelder) AS $elem) { + if ($arrModifyData[$elem] == -1) { + $conttp->setVariable("DAT_".strtoupper($elem),"null"); + } + } + if ($arrModifyData['check_command'] != "") { + $arrArgument = explode("!",$arrModifyData['check_command']); + foreach ($arrArgument AS $key => $value) { + if ($key == 0) { + $conttp->setVariable("IFRAME_SRC",$_SESSION['SETS']['path']['base_url']."admin/commandline.php?cname=".$value); + } else { + $value = str_replace("::bang::","!",$value); + $value = str_replace("::back::","\\",$value); + $conttp->setVariable("DAT_ARG".$key,htmlentities($value,ENT_QUOTES,'UTF-8')); + } + } + } + // Process option fields + foreach(explode(",",$arrModifyData['initial_state']) AS $elem) { + $conttp->setVariable("DAT_IS".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['flap_detection_options']) AS $elem) { + $conttp->setVariable("DAT_FL".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_options']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['stalking_options']) AS $elem) { + $conttp->setVariable("DAT_ST".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Host name')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR + `display_name` LIKE '%".$strSearchTxt."%' OR `address` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `last_modified`, `config_id`, `access_group` FROM `$preTableName` + WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias',0); + if ($myContentClass->strErrorMessage != "") $myVisClass->processMessage($myContentClass->strErrorMessage,$strErrorMessage); +} +// Show messages +$arrTimeData = array(); +$strTimeInfoString = ""; +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/hosttemplates.php b/admin/hosttemplates.php new file mode 100644 index 0000000..b35ed16 --- /dev/null +++ b/admin/hosttemplates.php @@ -0,0 +1,382 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New host template inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Host template modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkHosttemplateToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkHosttemplateToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkHosttemplateToContact",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkHosttemplateToContactgroup",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkHosttemplateToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkHosttemplateToHost",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkHosttemplateToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkHosttemplateToHostgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkHosttemplateToContact",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkHosttemplateToContact",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkHosttemplateToContactgroup",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkHosttemplateToContactgroup",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4) != 0) $strInfoMessage = ""; + // + // Insert/update session data for templates + // ======================================== + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkHosttemplateToHosttemplate` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkHosttemplateToHosttemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update session data for free variables + // ============================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkHosttemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkHosttemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkHosttemplateToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Host template definition (hosttemplates.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template fields + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`,`$preKeyField`, `active` FROM `$preTableName` WHERE `config_id` = $chkDomainId $strWhere ORDER BY `$preKeyField`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem[$preKeyField],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `tbl_host` WHERE `name` <> '' AND `config_id` = $chkDomainId ORDER BY `name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process host selection field + if (isset($arrModifyData['parents'])) {$intFieldId = $arrModifyData['parents'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','host_parents','tbl_lnkHosttemplateToHost',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process hostgroup selection field + if (isset($arrModifyData['hostgroups'])) {$intFieldId = $arrModifyData['hostgroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkHosttemplateToHostgroup',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check command selection field + if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != "")) { + $arrCommand = explode("!",$arrModifyData['check_command']); + $intFieldId = $arrCommand[0]; + } else { + $intFieldId = 0; + } + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','hostcommand',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check period selection field + $intReturn = 0; + if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process event handler selection field + if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','host_contacts','tbl_lnkHosttemplateToContact',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','host_contactgroups','tbl_lnkHosttemplateToContactgroup',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "ACE,PCE,FRE,OBS,EVH,FLE,STI,NSI,PED,NOE,PAR,HOG,COT,COG,TPL"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + $conttp->setVariable("DAT_ACE".$arrModifyData['active_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PCE".$arrModifyData['passive_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FRE".$arrModifyData['check_freshness']."_CHECKED","checked"); + $conttp->setVariable("DAT_OBS".$arrModifyData['obsess_over_host']."_CHECKED","checked"); + $conttp->setVariable("DAT_EVH".$arrModifyData['event_handler_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FLE".$arrModifyData['flap_detection_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_STI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_NSI".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_PED".$arrModifyData['process_perf_data']."_CHECKED","checked"); + $conttp->setVariable("DAT_NOE".$arrModifyData['notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PAR".$arrModifyData['parents_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOG".$arrModifyData['hostgroups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COT".$arrModifyData['contacts_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contact_groups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + // Special processing for -1 values - write 'null' to integer fields + $strIntegerfelder = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,high_flap_threshold,"; + $strIntegerfelder .= "notification_interval,first_notification_delay"; + foreach(explode(",",$strIntegerfelder) AS $elem) { + if ($arrModifyData[$elem] == -1) { + $conttp->setVariable("DAT_".strtoupper($elem),"null"); + } + } + if ($arrModifyData['check_command'] != "") { + $arrArgument = explode("!",$arrModifyData['check_command']); + foreach ($arrArgument AS $key => $value) { + if ($key == 0) { + $conttp->setVariable("IFRAME_SRC",$_SESSION['SETS']['path']['base_url']."admin/commandline.php?cname=".$value); + } else { + $conttp->setVariable("DAT_ARG".$key,htmlentities($value,ENT_QUOTES,'UTF-8')); + } + } + } + // Process option fields + foreach(explode(",",$arrModifyData['initial_state']) AS $elem) { + $conttp->setVariable("DAT_IS".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['flap_detection_options']) AS $elem) { + $conttp->setVariable("DAT_FL".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_options']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['stalking_options']) AS $elem) { + $conttp->setVariable("DAT_ST".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Host template name')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `last_modified`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere + $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/import.php b/admin/import.php new file mode 100644 index 0000000..770a88a --- /dev/null +++ b/admin/import.php @@ -0,0 +1,220 @@ +myDataClass =& $myDataClass; +$myImportClass->myDBClass =& $myDBClass; +$myImportClass->myConfigClass =& $myConfigClass; +// +// Get configuration set ID +// ======================== +$arrConfigSet = $myConfigClass->getConfigSets(); +$intConfigId = $arrConfigSet[0]; +// +// Process form variables +// ====================== +if (isset($_FILES['datValue1']) && ($_FILES['datValue1']['name'] != "") && ($chkStatus == 1)) { + // Upload Error + if ($_FILES['datValue1']['error'] !== UPLOAD_ERR_OK) { + $myVisClass->processMessage(translate('File upload error:')." ".$_FILES['filMedia']['error'],$strErrorMessage); + } else { + $intModus = 1; + $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_local_imp'); + move_uploaded_file($_FILES['datValue1']['tmp_name'], $strFileName); + $intReturn = $myImportClass->fileImport($strFileName,$intConfigId,$chkChbValue1); + if ($intReturn != 0) { + $myVisClass->processMessage($myImportClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myImportClass->strInfoMessage,$strInfoMessage); + $myDataClass->writeLog(translate('File imported - File [overwite flag]:')." ".$_FILES['datValue1']['name']." [".$chkChbValue1."]"); + } + } +} +if (($chkMselValue1[0] != "") && ($chkStatus == 1)) { + foreach($chkMselValue1 AS $elem) { + $intModus = 1; + $myImportClass->strErrorMessage = ""; + $myImportClass->strInfoMessage = ""; + $intReturn = $myImportClass->fileImport($elem,$intConfigId,$chkChbValue1); + if ($intReturn != 0) { + $myVisClass->processMessage($myImportClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myImportClass->strInfoMessage,$strInfoMessage); + $myDataClass->writeLog(translate('File imported - File [overwite flag]:')." ".$elem." [".$chkChbValue1."]"); + } + } +} +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Configuration import')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("LANG_SEARCH_STRING",translate('Filter string')); +$conttp->setVariable("LANG_SEARCH",translate('Search')); +$conttp->setVariable("LANG_DELETE",translate('Delete')); +$conttp->setVariable("LANG_DELETE_SEARCH",translate("Reset filter")); +$conttp->setVariable("DAT_SEARCH",$chkTfSearch); +$conttp->setVariable("TEMPLATE",translate('Template definition')); +$conttp->setVariable("IMPORTFILE",translate('Import file')); +$conttp->setVariable("LOCAL_FILE",translate('Local import file')); +$conttp->setVariable("OVERWRITE",translate('Overwrite database')); +$conttp->setVariable("MAKE",translate('Import')); +$conttp->setVariable("ABORT",translate('Abort')); +$conttp->setVariable("CTRL_INFO",translate('Hold CTRL to select
more than one')); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("DAT_IMPORTFILE_1",""); +$conttp->setVariable("IMPORT_INFO_1",translate("To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

")); +$conttp->setVariable("IMPORT_INFO_2","".translate("Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem.")."
"); +$conttp->parse("filelist1"); +// Get settings +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +$myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir); +$myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostDir); +$myConfigClass->getConfigData($intConfigId,"serviceconfig",$strServiceDir); +$myConfigClass->getConfigData($intConfigId,"backupdir",$strBackupDir); +$myConfigClass->getConfigData($intConfigId,"hostbackup",$strHostBackupDir); +$myConfigClass->getConfigData($intConfigId,"servicebackup",$strServiceBackupDir); +$myConfigClass->getConfigData($intConfigId,"importdir",$strImportDir); +$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strNagiosBaseDir); +if ($intMethod == 1) { + // Building local file list + $output = array(); + $temp=$myConfigClass->DirToArray($strBaseDir, "\.cfg", "cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg",$output,$strErrorMessage); + if ($strNagiosBaseDir != $strBaseDir) { + $temp=$myConfigClass->DirToArray($strNagiosBaseDir, "\.cfg", "cgi.cfg|nagios.cfg|nrpe.cfg|nsca.cfg",$output,$strErrorMessage); + } + $temp=$myConfigClass->DirToArray($strHostDir, "\.cfg", "",$output,$strErrorMessage); + $temp=$myConfigClass->DirToArray($strServiceDir, "\.cfg", "",$output,$strErrorMessage); + $temp=$myConfigClass->DirToArray($strHostBackupDir, "\.cfg_", "",$output,$strErrorMessage); + $temp=$myConfigClass->DirToArray($strServiceBackupDir, "\.cfg_", "",$output,$strErrorMessage); + if (($strImportDir != "") && ($strImportDir != $strBaseDir) && ($strImportDir != $strNagiosBaseDir)) { + $temp=$myConfigClass->DirToArray($strImportDir, "\.cfg", "",$output,$strErrorMessage); + } + $output=array_unique($output); + if (is_array($output) && (count($output) != 0)) { + foreach ($output AS $elem) { + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_IMPORTFILE_2",$elem); + $conttp->parse("filelist2"); + } + } + } +} else if ($intMethod == 2) { + // Set up basic connection + if ($myConfigClass->getFTPConnection($intConfigId) == "0") { + $arrFiles = array(); + $arrFiles1 = ftp_nlist($myConfigClass->resConnectId,$strBaseDir); + if (is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + $arrFiles2 = ftp_nlist($myConfigClass->resConnectId,$strHostDir); + if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2); + $arrFiles3 = ftp_nlist($myConfigClass->resConnectId,$strServiceDir); + if (is_array($arrFiles3)) $arrFiles = array_merge($arrFiles,$arrFiles3); + $arrFiles4 = ftp_nlist($myConfigClass->resConnectId,$strHostBackupDir); + if (is_array($arrFiles4)) $arrFiles = array_merge($arrFiles,$arrFiles4); + $arrFiles5 = ftp_nlist($myConfigClass->resConnectId,$strServiceBackupDir); + if (is_array($arrFiles5)) $arrFiles = array_merge($arrFiles,$arrFiles5); + if ($strImportDir != "" ) { + $arrFiles6 = ftp_nlist($myConfigClass->resConnectId,$strImportDir); + if (is_array($arrFiles6)) $arrFiles = array_merge($arrFiles,$arrFiles6); + } + if (is_array($arrFiles) && (count($arrFiles) != 0)) { + foreach ($arrFiles AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (substr_count($elem,"resource.cfg")) continue; + if (substr_count($elem,"nagios.cfg")) continue; + if (substr_count($elem,"cgi.cfg")) continue; + if (substr_count($elem,"nrpe.cfg")) continue; + if (substr_count($elem,"nsca.cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_IMPORTFILE_2",str_replace("//","/",$elem)); + $conttp->parse("filelist2"); + } + } + } + ftp_close($myConfigClass->resConnectId); + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} else if ($intMethod == 3) { + // Set up basic connection + if ($myConfigClass->getSSHConnection($intConfigId) == "0") { + $arrFiles = array(); + $arrFiles1 = $myConfigClass->sendSSHCommand("ls ".$strBaseDir."*.cfg"); + if ($arrFiles1 && is_array($arrFiles1)) $arrFiles = array_merge($arrFiles,$arrFiles1); + $arrFiles2 = $myConfigClass->sendSSHCommand("ls ".$strHostDir."*.cfg"); + if (is_array($arrFiles2)) $arrFiles = array_merge($arrFiles,$arrFiles2); + $arrFiles3 = $myConfigClass->sendSSHCommand("ls ".$strServiceDir."*.cfg"); + if (is_array($arrFiles3)) $arrFiles = array_merge($arrFiles,$arrFiles3); + $arrFiles4 = $myConfigClass->sendSSHCommand("ls ".$strHostBackupDir."*.cfg*"); + if (is_array($arrFiles4)) $arrFiles = array_merge($arrFiles,$arrFiles4); + $arrFiles5 = $myConfigClass->sendSSHCommand("ls ".$strServiceBackupDir."*.cfg*"); + if (is_array($arrFiles5)) $arrFiles = array_merge($arrFiles,$arrFiles5); + if ($strImportDir != "" ) { + $arrFiles6 = $myConfigClass->sendSSHCommand("ls ".$strImportDir."*.cfg"); + if (is_array($arrFiles6)) $arrFiles = array_merge($arrFiles,$arrFiles6); + } + if (is_array($arrFiles) && (count($arrFiles) != 0)) { + foreach ($arrFiles AS $elem) { + if (!substr_count($elem,"cfg")) continue; + if (substr_count($elem,"resource.cfg")) continue; + if (substr_count($elem,"nagios.cfg")) continue; + if (substr_count($elem,"cgi.cfg")) continue; + if (substr_count($elem,"nrpe.cfg")) continue; + if (substr_count($elem,"nsca.cfg")) continue; + if (($chkTfSearch == "") || (substr_count($elem,$chkTfSearch) != 0)) { + $conttp->setVariable("DAT_IMPORTFILE_2",str_replace("//","/",$elem)); + $conttp->parse("filelist2"); + } + } + } + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } +} +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +$conttp->parse("main"); +$conttp->show("main"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..e69de29 diff --git a/admin/info.php b/admin/info.php new file mode 100644 index 0000000..83bf631 --- /dev/null +++ b/admin/info.php @@ -0,0 +1,95 @@ + translate("This is relative path of your NagiosQL Installation"), + "txtBasePath" => translate("This is the absolut path to your NagiosQL Installation"), + "selProtocol" => translate("If you need a secure connection, select HTTPS instead of HTTP"), + "txtTempdir" => translate("Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS"), + "selLanguage" => translate("Please choose your application language"), + "txtEncoding" => translate("Encoding should be set to nothing else than utf-8. Any changes at your own risk"), + "txtDBserver" => translate("IP-Address or hostname of the database server
e.g. localhost"), + "txtDBport" => translate("MySQL Server Port, default is 3306"), + "txtDBname" => translate("Name of the NagiosQL database
e.g. db_nagiosql_v3"), + "txtDBuser" => translate("User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions"), + "txtDBpass" => translate("Password for the above mentioned user"), + "txtLogoff" => translate("After the defined amount of seconds the session will terminate for security reasons"), + "selWSAuth" => translate("Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL"), + "txtLines" => translate("How many entries per side should be visibile (e.g. services or hosts)"), + "selSeldisable" => translate("Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2"), + "templatecheck" => translate("Enable or disable the warning if a required field contains no data in objects with templates"), + "updatecheck" => translate("Enable or disable the automatic online version check."), + "chkUpdProxy" => translate("If you require a Proxyserver to connect to the Internet (Port 80), please define one."), + "txtProxyServer"=> translate("Address of your Proxyserver e.g. proxy.yourdomain.com:3128"), + "txtProxyUser" => translate("Username to connect through your proxy (optional)"), + "txtProxyPasswd"=> translate("Password to connect through your proxy (optional)"), + ); + $strContentDB = $arrTrans[$chkKey2]; +} else { + // Get information from tbl_info + $strSQL = "SELECT `infotext` FROM `tbl_info` + WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' AND `language` = 'private'"; + $strContentDB = $myDBClass->getFieldData($strSQL); + if ($strContentDB == "") { + $strSQL = "SELECT `infotext` FROM `tbl_info` + WHERE `key1` = '$chkKey1' AND `key2` = '$chkKey2' AND `version` = '$chkVersion' AND `language` = 'default'"; + $strContentDB = $myDBClass->getFieldData($strSQL); + } +} +?> + + + + + <?php echo translate("Information PopUp");?> + + + + + + \ No newline at end of file diff --git a/admin/logbook.php b/admin/logbook.php new file mode 100644 index 0000000..96b0add --- /dev/null +++ b/admin/logbook.php @@ -0,0 +1,124 @@ + '$chkTfValue1 00:00:00'"; + } + if ($chkTfValue2 != "") { + $strWhere .= "AND `time` < '$chkTfValue2 23:59:59'"; + } + $strSQL = "DELETE FROM `tbl_logbook` WHERE 1=1 $strWhere"; + $booReturn = $myDBClass->insertData($strSQL); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage(translate('Dataset successfully deleted. Affected rows:')." ".$myDBClass->intAffectedRows,$strInfoMessage); + } +} +// +// Search data +// =========== +if ($chkTfSearch != "") { + $strWhere = "WHERE `user` LIKE '%$chkTfSearch%' OR `ipadress` LIKE '%$chkTfSearch%' OR `domain` LIKE '%$chkTfSearch%' OR `entry` LIKE '%$chkTfSearch%'"; +} else { + $strWhere = ""; +} +// +// Get data +// ======== +$intNumRows = $myDBClass->getFieldData("SELECT count(*) FROM `tbl_logbook` $strWhere"); +if ($intNumRows <= $chkFromLine) $chkFromLine = 0; +$strSQL = "SELECT DATE_FORMAT(time,'%Y-%m-%d %H:%i:%s') AS `time`, `user`, `ipadress`, `domain`, `entry` + FROM `tbl_logbook` $strWhere ORDER BY `time` DESC LIMIT $chkFromLine,".$SETS['common']['pagelines']; +$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); +if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); +} +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('View logbook')); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("LANG_ENTRIES_BEFORE",translate('Delete logentries between:')); +$conttp->setVariable("LOCALE",$SETS['data']['locale']); +$conttp->setVariable("LANG_SELECT_DATE",translate('Please at least fill in a start or a stop time')); +$conttp->setVariable("LANG_DELETELOG",translate('Do you really want to delete all log entries between the selected dates?')); +$conttp->setVariable("DAT_SEARCH",$chkTfSearch); +// Legende einblenden +if ($chkFromLine > 1) { + $intPrevNumber = $chkFromLine - 20; + $conttp->setVariable("LANG_PREVIOUS", "<< ".translate('previous 20 entries').""); +} else { + $conttp->setVariable("LANG_PREVIOUS", ""); +} +if ($chkFromLine < $intNumRows-20) { + $intNextNumber = $chkFromLine + 20; + $conttp->setVariable("LANG_NEXT", "".translate('next 20 entries')." >>"); +} else { + $conttp->setVariable("LANG_NEXT", ""); +} +// +// Output log data +// =============== +if ($intDataCount != 0) { + for ($i=0;$i<$intDataCount;$i++) { + // Set default values + if ($arrDataLines[$i]['ipadress'] == "") $arrDataLines[$i]['ipadress'] = " "; + // Insert data values + $conttp->setVariable("DAT_TIME", $arrDataLines[$i]['time']); + $conttp->setVariable("DAT_ACCOUNT", $arrDataLines[$i]['user']); + $conttp->setVariable("DAT_ACTION", $arrDataLines[$i]['entry']); + $conttp->setVariable("DAT_IPADRESS", $arrDataLines[$i]['ipadress']); + $conttp->setVariable("DAT_DOMAIN", $arrDataLines[$i]['domain']); + $conttp->parse("logdatacell"); + } +} +$conttp->setVariable("ERRORMESSAGE","
".$strErrorMessage); +$conttp->setVariable("INFOMESSAGE","
".$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("logbooksite"); +$conttp->show("logbooksite"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/menuaccess.php b/admin/menuaccess.php new file mode 100644 index 0000000..0887d02 --- /dev/null +++ b/admin/menuaccess.php @@ -0,0 +1,99 @@ +insertData($strSQL); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while inserting the data to the data base:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage(translate('Data were successfully inserted to the data base!'),$strInfoMessage); + $myDataClass->writeLog(translate('Access group set for menu item:')." ".$myDBClass->getFieldData("SELECT `mnuName` FROM `tbl_menu` WHERE `mnuId`=$chkSelValue1")); + } +} +// +// Include content +// =============== +$conttp->setVariable("TITLE",translate('Define Menu Accessrights')); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("LANG_ACCESSDESCRIPTION",translate('In order for a user to get access, he needs to be member of the group selected here.')); +// +// Auswahlfeld einlesen +// ==================== +$strSQL = "SELECT A.`mnuId` , B.`mnuName` AS `mainitem`, A.`mnuName` AS `subitem`, A.`mnuGrpId` + FROM `tbl_menu` AS A + LEFT JOIN `tbl_menu` AS B ON A.`mnuTopId` = B.`mnuId` + ORDER BY A.`mnuTopId`, A.`mnuOrderId`"; +$booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); +if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); +} else { + $conttp->setVariable("SUBMENU_VALUE","0"); + $conttp->setVariable("SUBMENU_NAME"," "); + $conttp->parse("submenu"); + foreach($arrDataLines AS $elem) { + $conttp->setVariable("SUBMENU_VALUE",$elem['mnuId']); + if ($elem['mainitem'] != '') { + $conttp->setVariable("SUBMENU_NAME",translate($elem['mainitem'])." - ".translate($elem['subitem'])); + } else { + $conttp->setVariable("SUBMENU_NAME",translate($elem['subitem'])); + } + if ($chkSelValue1 == $elem['mnuId']) { + $conttp->setVariable("SUBMENU_SELECTED","selected"); + $intFieldId = $elem['mnuGrpId']; + } + // Bypass main site + if ($elem['mnuId'] != 1) $conttp->parse("submenu"); + } + // Process access group selection field + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); +} +$conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($intGlobalWriteAccess == 1) $conttp->setVariable("DISABLE_SAVE","disabled=\"disabled\""); +$conttp->parse("menuaccesssite"); +$conttp->show("menuaccesssite"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/monitoring.php b/admin/monitoring.php new file mode 100644 index 0000000..ca0b923 --- /dev/null +++ b/admin/monitoring.php @@ -0,0 +1,90 @@ +setVariable("TITLE",translate('Monitoring')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('To define host and service supervisions as well as host and service groups.')); +$conttp->setVariable("STATISTICS",translate('Statistical datas')); +$conttp->setVariable("TYPE",translate('Group')); +$conttp->setVariable("ACTIVE",translate('Active')); +$conttp->setVariable("INACTIVE",translate('Inactive')); +// +// Include statistical data +// ======================== +// Get read access groups +$strAccess = $myVisClass->getAccGroups('read'); +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=8")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Hosts')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_host` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_host` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=9")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Services')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_service` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_service` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=10")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Host groups')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostgroup` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostgroup` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=11")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Service groups')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicegroup` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicegroup` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=12")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Host templates')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hosttemplate` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hosttemplate` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=13")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Service templates')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicetemplate` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicetemplate` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +$conttp->parse("statistics"); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/mutdialog.php b/admin/mutdialog.php new file mode 100644 index 0000000..443f45f --- /dev/null +++ b/admin/mutdialog.php @@ -0,0 +1,59 @@ +setVariable("BASE_PATH",$_SESSION['SETS']['path']['base_url']); +$conttp->setVariable("OPENER_FIELD",$chkObject); +$conttp->parse("header"); +$conttp->show("header"); +// +// Form +// ==== +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("OPENER_FIELD",$chkObject); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +$conttp->setVariable("AVAILABLE",translate('Available')); +$conttp->setVariable("SELECTED",translate('Selected')); +if (($intExclude == 1) || ($intVersion < 3)) { + $conttp->setVariable("DISABLE_HTML_BEGIN",""); +} +$conttp->parse("datainsert"); +$conttp->show("datainsert"); +?> \ No newline at end of file diff --git a/admin/nagioscfg.php b/admin/nagioscfg.php new file mode 100644 index 0000000..7d5951e --- /dev/null +++ b/admin/nagioscfg.php @@ -0,0 +1,153 @@ +getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +$myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strBaseDir); +$myConfigClass->getConfigData($intConfigId,"conffile",$strConfigfile); +$strLocalBackup = $strConfigfile."_old_".date("YmdHis",mktime()); +// +// Convert Windows to UNIX +// ======================= +$chkTaFileText = str_replace("\r\n","\n",$chkTaFileText); +// +// Process data +// ============ +if ($chkTaFileText != "") { + if ($intMethod == 1) { + if (file_exists($strBaseDir) && (is_writable($strBaseDir) && (is_writable($strConfigfile)))) { + // Backup config file + $intReturn = $myConfigClass->moveFile("nagiosbasic",basename($strConfigfile),$intConfigId); + if ($intReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + // Write configuration + $resFile = fopen($strConfigfile,"w"); + fputs($resFile,$chkTaFileText); + fclose($resFile); + $myVisClass->processMessage("".translate('Configuration file successfully written!')."",$strInfoMessage); + $myDataClass->writeLog(translate('Configuration successfully written:')." ".$strConfigfile); + } else { + $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions)!'),$strErrorMessage); + $myDataClass->writeLog(translate('Configuration write failed:')." ".$strConfigfile); + } + } else if (($intMethod == 2) || ($intMethod == 3)) { + // Backup config file + $intReturn = $myConfigClass->moveFile("nagiosbasic",basename($strConfigfile),$intConfigId); + if ($intReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + // Write file to temporary + $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf'); + $resFile = fopen($strFileName,"w"); + fputs($resFile,$chkTaFileText); + fclose($resFile); + // Copy configuration to remoty system + $intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,1); + if ($intReturn == 0) { + $myVisClass->processMessage("".translate('Configuration file successfully written!')."",$strInfoMessage); + $myDataClass->writeLog(translate('Configuration successfully written:')." ".$strConfigfile); + unlink($strFileName); + } else { + $myVisClass->processMessage(translate('Cannot open/overwrite the configuration file (check the permissions on remote system)!'),$strErrorMessage); + $myDataClass->writeLog(translate('Configuration write failed (remote):')." ".$strConfigfile); + unlink($strFileName); + } + } +} +// +// Include content +// =============== +$conttp->setVariable("TITLE",translate('Nagios main configuration file')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Include input form +// =================== +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("MAINSITE",$_SESSION['SETS']['path']['base_url']."admin.php"); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +// +// Open configuration +// ================== +if ($intMethod == 1) { + if (file_exists($strConfigfile) && is_readable($strConfigfile)) { + $resFile = fopen($strConfigfile,"r"); + if ($resFile) { + while(!feof($resFile)) { + $strConfig .= fgets($resFile,1024); + } + } + } else { + $myVisClass->processMessage(translate('Cannot open the data file (check the permissions)!'),$strErrorMessage); + } +} else if (($intMethod == 2) || ($intMethod == 3)) { + // Write file to temporary + $strFileName = tempnam($_SESSION['SETS']['path']['tempdir'], 'nagiosql_conf'); + // Copy configuration from remoty system + $intReturn = $myConfigClass->configCopy($strConfigfile,$intConfigId,$strFileName,0); + if ($intReturn == 0) { + $resFile = fopen($strFileName,"r"); + if (is_resource($resFile)) { + while(!feof($resFile)) { + $strConfig .= fgets($resFile,1024); + } + unlink($strFileName); + } else { + $myVisClass->processMessage(translate('Cannot open the temporary file'),$strErrorMessage); + } + } else { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + $myDataClass->writeLog(translate('Configuration read failed (remote):')." ".$strErrorMessage); + if (file_exists($strFileName)) unlink($strFileName); + } +} +$conttp->setVariable("DAT_NAGIOS_CONFIG",$strConfig); +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("naginsert"); +$conttp->show("naginsert"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/password.php b/admin/password.php new file mode 100644 index 0000000..903a56f --- /dev/null +++ b/admin/password.php @@ -0,0 +1,102 @@ +getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else if ($intDataCount == 1) { + // Check equality and password length + if (($chkTfValue2 === $chkTfValue3) && (strlen($chkTfValue2) >=5)) { + // Update database + $strSQLUpdate = "UPDATE `tbl_user` SET `password`=MD5('$chkTfValue2'), + `last_login`=NOW() WHERE `username`='".$_SESSION['username']."'"; + $booReturn = $myDBClass->insertData($strSQLUpdate); + if ($booReturn == true) { + $myDataClass->writeLog(translate('Password successfully modified')); + // Force new login + $_SESSION['logged_in'] = 0; + $_SESSION['username'] = ""; + $_SESSION['userid'] = 0; + $_SESSION['groupadm'] = 0; + $_SESSION['domain'] = 0; + header("Location: ".$SETS['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); + } else { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + } else { + // New password wrong + $myVisClass->processMessage(translate('Password too short or password fields unequally!'),$strErrorMessage); + } + } else { + // Old password wrong + $myVisClass->processMessage(translate('Old password is wrong'),$strErrorMessage); + } +} else if (isset($_POST['submit'])) { + // Wrong data + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); +} +// +// Output header variable +// ====================== +echo $tplHeaderVar; +// +// Include content +// =============== +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("LANG_SAVE",translate('Save')); +$conttp->setVariable("LANG_ABORT",translate('Abort')); +$conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *')); +$conttp->setVariable("FILL_NEW_PASSWD_NOT_EQUAL",translate('The new passwords are not equal!')); +$conttp->setVariable("FILL_NEW_PWDSHORT",translate('The new password is too short - use at least 6 characters!')); +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("passwordsite"); +$conttp->show("passwordsite"); +// +// Include footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/servicedependencies.php b/admin/servicedependencies.php new file mode 100644 index 0000000..7c9c3f6 --- /dev/null +++ b/admin/servicedependencies.php @@ -0,0 +1,388 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service dependency inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service dependency modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToHost_H",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToHost_DH",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToHostgroup_H",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToHostgroup_DH",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) $intRet5 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToService_S",$chkDataId,$chkMselValue5); + if (isset($intRet5) && ($intRet5 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue6 != 0) $intRet6 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToService_DS",$chkDataId,$chkMselValue6); + if (isset($intRet6) && ($intRet6 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue7 != 0) $intRet7 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToServicegroup_S",$chkDataId,$chkMselValue7); + if (isset($intRet7) && ($intRet7 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue8 != 0) $intRet8 = $myDataClass->dataInsertRelation("tbl_lnkServicedependencyToServicegroup_DS",$chkDataId,$chkMselValue8); + if (isset($intRet8) && ($intRet8 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToHost_H",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToHost_H",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToHost_DH",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToHost_DH",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToHostgroup_H",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToHostgroup_H",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToHostgroup_DH",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToHostgroup_DH",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) { + $intRet5 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToService_S",$chkDataId,$chkMselValue5); + } else { + $intRet5 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToService_S",$chkDataId); + } + if ($intRet5 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue6 != 0) { + $intRet6 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToService_DS",$chkDataId,$chkMselValue6); + } else { + $intRet6 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToService_DS",$chkDataId); + } + if ($intRet6 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue7 != 0) { + $intRet7 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToServicegroup_S",$chkDataId,$chkMselValue7); + } else { + $intRet7 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToServicegroup_S",$chkDataId); + } + if ($intRet7 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue8 != 0) { + $intRet8 = $myDataClass->dataUpdateRelation("tbl_lnkServicedependencyToServicegroup_DS",$chkDataId,$chkMselValue8); + } else { + $intRet8 = $myDataClass->dataDeleteRelation("tbl_lnkServicedependencyToServicegroup_DS",$chkDataId); + } + if ($intRet8 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6 + $intRet7 + $intRet8) != 0) $strInfoMessage = ""; + // + // Update Import HASH + // ================== + $booReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($booReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if (($chkModus != "add") && ($chkModus != "refresh")) $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define service dependencies (servicedependencies.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if (($chkModus == "add") || ($chkModus == "refresh")) { + if ($chkModus == "refresh") { + $_SESSION['refresh']['sd_host'] = $chkMselValue1; + $_SESSION['refresh']['sd_dependent_host'] = $chkMselValue2; + $_SESSION['refresh']['sd_hostgroup'] = $chkMselValue3; + $_SESSION['refresh']['sd_dependent_hostgroup'] = $chkMselValue4; + $_SESSION['refresh']['sd_service'] = $chkMselValue5; + $_SESSION['refresh']['sd_dependent_service'] = $chkMselValue6; + $_SESSION['refresh']['sd_servicegroup'] = $chkMselValue7; + $_SESSION['refresh']['sd_dependent_servicegroup'] = $chkMselValue8; + } else { + $_SESSION['refresh']['sd_host'] = $chkMselValue1; + $_SESSION['refresh']['sd_dependent_host'] = $chkMselValue2; + $_SESSION['refresh']['sd_hostgroup'] = $chkMselValue3; + $_SESSION['refresh']['sd_dependent_hostgroup'] = $chkMselValue4; + $_SESSION['refresh']['sd_service'] = $chkMselValue5; + $_SESSION['refresh']['sd_dependent_service'] = $chkMselValue6; + $_SESSION['refresh']['sd_servicegroup'] = $chkMselValue7; + $_SESSION['refresh']['sd_dependent_servicegroup'] = $chkMselValue8; + if (isset($arrModifyData['dependent_host_name']) && ($arrModifyData['dependent_host_name'] > 0 )) { + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHost_DH` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($booReturn && ($intDC != 0)) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['dependent_host_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['sd_dependent_host'] = $arrTemp; + } + if (isset($arrModifyData['host_name']) && ($arrModifyData['host_name'] > 0 )){ + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHost_H` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDC != 0) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['host_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['sd_host'] = $arrTemp; + } + if (isset($arrModifyData['dependent_hostgroup_name']) && ($arrModifyData['dependent_hostgroup_name'] > 0 )){ + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHostgroup_DH` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDC != 0) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['dependent_hostgroup_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['sd_dependent_hostgroup'] = $arrTemp; + } + if (isset($arrModifyData['hostgroup_name']) && ($arrModifyData['hostgroup_name'] > 0 )){ + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServicedependencyToHostgroup_H` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDC != 0) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['hostgroup_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['sd_hostgroup'] = $arrTemp; + } + } + // Do not show modified time list + $intNoTime = 1; + // Process host selection field + if (isset($arrModifyData['dependent_host_name'])) {$intFieldId = $arrModifyData['dependent_host_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue2) != 0)) {$strRefresh = 'sd_dependent_host';} else {$strRefresh = '';} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','dependent_host','tbl_lnkServicedependencyToHost_DH',0,$intFieldId,-9,$strRefresh); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue1) != 0)) {$strRefresh = 'sd_host';} else {$strRefresh = '';} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','host','tbl_lnkServicedependencyToHost_H',0,$intFieldId,-9,$strRefresh); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process time period selection field + if (isset($arrModifyData['dependency_period'])) {$intFieldId = $arrModifyData['dependency_period'];} else {$intFieldId = 0;} + if ($chkModus == "refresh") {$intFieldId = $chkSelValue1;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','timeperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process host group selection field + if (isset($arrModifyData['dependent_hostgroup_name'])) {$intFieldId = $arrModifyData['dependent_hostgroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue4) != 0)) {$strRefresh = 'sd_dependent_hostgroup';} else {$strRefresh = '';} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','dependent_hostgroup','tbl_lnkServicedependencyToHostgroup_DH',0,$intFieldId,-9,$strRefresh); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue3) != 0)) {$strRefresh = 'sd_hostgroup';} else {$strRefresh = '';} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkServicedependencyToHostgroup_H',0,$intFieldId,-9,$strRefresh); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process services selection field + if (isset($arrModifyData['dependent_service_description'])) {$intFieldId = $arrModifyData['dependent_service_description'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue6) != 0)) {$strRefresh = 'sd_dependent_service';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','dependent_service','tbl_lnkServicedependencyToService_DS',2,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['service_description'])) {$intFieldId = $arrModifyData['service_description'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue5) != 0)) {$strRefresh = 'sd_service';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','service','tbl_lnkServicedependencyToService_S',2,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process servicegroup selection field + if (isset($arrModifyData['dependent_servicegroup_name'])) {$intFieldId = $arrModifyData['dependent_servicegroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue8) != 0)) {$strRefresh = 'sd_dependent_servicegroup';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','dependent_servicegroup','tbl_lnkServicedependencyToServicegroup_DS',0,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['servicegroup_name'])) {$intFieldId = $arrModifyData['servicegroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue7) != 0)) {$strRefresh = 'sd_servicegroup';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServicedependencyToServicegroup_S',0,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + if ($chkModus == "refresh") {$intFieldId = $chkSelAccGr;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + if ($chkModus == "refresh") { + if ($chkTfValue1 != "") $conttp->setVariable("DAT_CONFIG_NAME",$chkTfValue1); + foreach(explode(",",$strEO) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$strNO) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + if ($chkActive != 1) $conttp->setVariable("ACT_CHECKED",""); + if ($chkRegister != 1) $conttp->setVariable("REG_CHECKED",""); + if ($chkChbValue1 == 1) $conttp->setVariable("ACT_INHERIT","checked"); + if ($chkDataId != 0) { + $conttp->setVariable("DAT_ID",$chkDataId); + $conttp->setVariable("MODUS","modify"); + } + // Insert data from database in "modify" mode + } else if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + // Setting special data + if ($arrModifyData['inherits_parent'] == 1) $conttp->setVariable("ACT_INHERIT","checked"); + foreach(explode(",",$arrModifyData['execution_failure_criteria']) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_failure_criteria']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Config name')); + $mastertp->setVariable("FIELD_2",translate('Dependent services')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + $mastertp->setVariable("DISABLE_SORT_2","disable"); + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `dependent_service_description`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName`WHERE $strDomainWhere + $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'process_field',40); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/serviceescalations.php b/admin/serviceescalations.php new file mode 100644 index 0000000..bc1a9b2 --- /dev/null +++ b/admin/serviceescalations.php @@ -0,0 +1,326 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service escalation inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service escalation modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToService",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToContact",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) $intRet5 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToContactgroup",$chkDataId,$chkMselValue5); + if (isset($intRet5) && ($intRet5 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue6 != 0) $intRet6 = $myDataClass->dataInsertRelation("tbl_lnkServiceescalationToServicegroup",$chkDataId,$chkMselValue6); + if (isset($intRet6) && ($intRet6 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToHost",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToHostgroup",$chkDataId); + } + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToService",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToService",$chkDataId); + } + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToContact",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToContact",$chkDataId); + } + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) { + $intRet5 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToContactgroup",$chkDataId,$chkMselValue5); + } else { + $intRet5 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToContactgroup",$chkDataId); + } + if (isset($intRet5) && ($intRet5 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue6 != 0) { + $intRet6 = $myDataClass->dataUpdateRelation("tbl_lnkServiceescalationToServicegroup",$chkDataId,$chkMselValue6); + } else { + $intRet6 = $myDataClass->dataDeleteRelation("tbl_lnkServiceescalationToServicegroup",$chkDataId); + } + if (isset($intRet6) && ($intRet6 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5 + $intRet6) != 0) $strInfoMessage = ""; + // + // Update Import HASH + // ================== + $booReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($booReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if (($chkModus != "add") && ($chkModus != "refresh")) $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define service escalation (serviceescalations.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if (($chkModus == "add") || ($chkModus == "refresh")) { + // Do not show modified time list + $intNoTime = 1; + // Refresh mode + if ($chkModus == "refresh") { + $_SESSION['refresh']['se_host'] = $chkMselValue1; + $_SESSION['refresh']['se_hostgroup'] = $chkMselValue2; + $_SESSION['refresh']['se_service'] = $chkMselValue3; + $_SESSION['refresh']['se_contact'] = $chkMselValue4; + $_SESSION['refresh']['se_contactgroup'] = $chkMselValue5; + $_SESSION['refresh']['se_servicegroup'] = $chkMselValue6; + } else { + $_SESSION['refresh']['se_host'] = $chkMselValue1; + $_SESSION['refresh']['se_hostgroup'] = $chkMselValue2; + $_SESSION['refresh']['se_service'] = $chkMselValue3; + $_SESSION['refresh']['se_contact'] = $chkMselValue4; + $_SESSION['refresh']['se_contactgroup'] = $chkMselValue5; + $_SESSION['refresh']['se_servicegroup'] = $chkMselValue6; + if (isset($arrModifyData['host_name']) && ($arrModifyData['host_name'] > 0 )){ + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServiceescalationToHost` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDC != 0) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['host_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['se_host'] = $arrTemp; + } + if (isset($arrModifyData['hostgroup_name']) && ($arrModifyData['hostgroup_name'] > 0 )){ + $arrTemp = array(); + $strSQL = "SELECT `idSlave`, `exclude` FROM `tbl_lnkServiceescalationToHostgroup` WHERE `idMaster` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDC != 0) { + + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 1) { + $arrTemp[] = "e".$elem['idSlave']; + } else { + $arrTemp[] = $elem['idSlave']; + } + } + } + if ($arrModifyData['hostgroup_name'] == 2) $arrTemp[] = '*'; + $_SESSION['refresh']['se_hostgroup'] = $arrTemp; + } + } + // Process host selection field + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue1) != 0)) {$strRefresh = 'se_host';} else {$strRefresh = '';} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','host','tbl_lnkServiceescalationToHost',2,$intFieldId,-9,$strRefresh); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue2) != 0)) {$strRefresh = 'se_hostgroup';} else {$strRefresh = '';} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkServiceescalationToHostgroup',2,$intFieldId,-9,$strRefresh); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no hosts and hostgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process time period selection field + if (isset($arrModifyData['escalation_period'])) {$intFieldId = $arrModifyData['escalation_period'];} else {$intFieldId = 0;} + if ($chkModus == "refresh") $intFieldId = $chkSelValue1; + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','timeperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue4) != 0)) {$strRefresh = 'se_contact';} else {$strRefresh = '';} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_contact','contact_name','contact','tbl_lnkServiceescalationToContact',2,$intFieldId,-9,$strRefresh); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue5) != 0)) {$strRefresh = 'se_contactgroup';} else {$strRefresh = '';} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','contactgroup','tbl_lnkServiceescalationToContactgroup',2,$intFieldId,-9,$strRefresh); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no contacts and contactgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process services selection field + if (isset($arrModifyData['service_description'])) {$intFieldId = $arrModifyData['service_description'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue3) != 0)) {$strRefresh = 'se_service';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','service','tbl_lnkServiceescalationToService',2,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process servicegroup selection field + if (isset($arrModifyData['servicegroup_name'])) {$intFieldId = $arrModifyData['servicegroup_name'];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && (count($chkMselValue6) != 0)) {$strRefresh = 'se_servicegroup';} else {$strRefresh = '';} + $intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServiceescalationToServicegroup',0,$intFieldId,-9,$strRefresh); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + if ($chkModus == "refresh") $intFieldId = $chkSelAccGr; + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + if ($chkModus == "refresh") { + if ($chkTfNullVal1 != "NULL") $conttp->setVariable("DAT_FIRST_NOTIFICATION",$chkTfNullVal1); + if ($chkTfNullVal2 != "NULL") $conttp->setVariable("DAT_LAST_NOTIFICATION",$chkTfNullVal2); + if ($chkTfNullVal3 != "NULL") $conttp->setVariable("DAT_NOTIFICATION_INTERVAL",$chkTfNullVal3); + if ($chkTfValue1 != "") $conttp->setVariable("DAT_CONFIG_NAME",$chkTfValue1); + foreach(explode(",",$strEO) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + if ($chkActive != 1) $conttp->setVariable("ACT_CHECKED",""); + if ($chkRegister != 1) $conttp->setVariable("REG_CHECKED",""); + if ($chkDataId != 0) { + $conttp->setVariable("MODUS","modify"); + $conttp->setVariable("DAT_ID",$chkDataId); + } + // Insert data from database in "modify" mode + } else if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + // Process option fields + foreach(explode(",",$arrModifyData['escalation_options']) AS $elem) { + $conttp->setVariable("DAT_EO".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Config name')); + $mastertp->setVariable("FIELD_2",translate('Services')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + $mastertp->setVariable("DISABLE_SORT_2","disable"); + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` + WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'process_field',40); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/serviceextinfo.php b/admin/serviceextinfo.php new file mode 100644 index 0000000..b6ba2e2 --- /dev/null +++ b/admin/serviceextinfo.php @@ -0,0 +1,203 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service extended information inserted:')." ".$chkSelValue1."::".$chkSelValue2); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service extended information modified:')." ".$chkSelValue1."::".$chkSelValue2); + // + // Update Import HASH + // ================== + $booReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($booReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if (($chkModus != "add") && ($chkModus != "refresh")) $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define service extended information (serviceextinfo.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if (($chkModus == "add") || ($chkModus == "refresh")) { + // Do not show modified time list + $intNoTime = 1; + // Refresh mode + if ($chkModus == "refresh") { + $_SESSION['refresh']['se_host'] = $chkSelValue1; + } else { + $_SESSION['refresh']['se_host'] = $chkSelValue1; + if (isset($arrModifyData[$preKeyField]) && ($arrModifyData[$preKeyField] != 0 )){ + $strSQL = "SELECT `$preKeyField` FROM `$preTableName` WHERE `id` = ".$arrModifyData['id']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($intDC != 0) { + $_SESSION['refresh']['se_host'] = $arrData[0][$preKeyField]; + } + } else { + $strSQL = "SELECT `id` FROM `tbl_host` WHERE `active`='1' AND `config_id`=$chkDomainId ORDER BY `$preKeyField`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($intDC != 0) { + $_SESSION['refresh']['se_host'] = $arrData[0]['id']; + } + } + } + // Process host selection field + if (isset($arrModifyData[$preKeyField])) {$intFieldId = $arrModifyData[$preKeyField];} else {$intFieldId = 0;} + if (($chkModus == "refresh") && ($chkSelValue1 != 0)) $intFieldId = $chkSelValue1; + $intReturn1 = $myVisClass->parseSelectSimple('tbl_host',$preKeyField,'host',0,$intFieldId); + if ($intReturn1 != 0) { + $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + $myVisClass->processMessage(translate('Attention, no hosts defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process service selection field + if (isset($arrModifyData['service_description'])) {$intFieldId = $arrModifyData['service_description'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectSimple('tbl_service','service_description','service_extinfo',0,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + if ($chkModus == "refresh") { + $conttp->setVariable("DAT_NOTES",$chkTfValue1); + $conttp->setVariable("DAT_NOTES_URL",$chkTfValue2); + $conttp->setVariable("DAT_ACTION_URL",$chkTfValue3); + $conttp->setVariable("DAT_ICON_IMAGE",$chkTfValue4); + $conttp->setVariable("DAT_ICON_IMAGE_ALT",$chkTfValue5); + if ($chkActive != 1) $conttp->setVariable("ACT_CHECKED",""); + if ($chkRegister != 1) $conttp->setVariable("REG_CHECKED",""); + if ($chkDataId != 0) { + $conttp->setVariable("MODUS","modify"); + $conttp->setVariable("DAT_ID",$chkDataId); + } +// Insert data from database in "modify" mode + } else if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Hostname')); + $mastertp->setVariable("FIELD_2",translate('Service')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`tbl_host`.`$preKeyField` LIKE '%".$strSearchTxt."%' OR `$preTableName`.`notes` LIKE '%".$strSearchTxt."%' + OR `$preTableName`.`notes_url` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `$preTableName`.`config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `$preTableName`.`config_id`, `tbl_service`.`service_description` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` + LEFT JOIN `tbl_service` ON `$preTableName`.`service_description` = `tbl_service`.`id` + WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intCount = (int)$arrDataLinesCount['number']; + if ($intCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `$preTableName`.`id`, `tbl_host`.`$preKeyField`, `tbl_service`.`service_description`, `$preTableName`.`notes`, `$preTableName`.`register`, + `$preTableName`.`active`, `$preTableName`.`config_id`, `$preTableName`.`access_group` FROM `$preTableName` + LEFT JOIN `tbl_host` ON `$preTableName`.`$preKeyField` = `tbl_host`.`id` + LEFT JOIN `tbl_service` ON `$preTableName`.`service_description` = `tbl_service`.`id` + WHERE $strDomainWhere $strSearchWhere AND `$preTableName`.`access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:')); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'service_description'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/servicegroups.php b/admin/servicegroups.php new file mode 100644 index 0000000..a094ef9 --- /dev/null +++ b/admin/servicegroups.php @@ -0,0 +1,183 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service group inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service group modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkServicegroupToService",$chkDataId,$chkMselValue1,1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkServicegroupToServicegroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkServicegroupToService",$chkDataId,$chkMselValue1,1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkServicegroupToService",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkServicegroupToServicegroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkServicegroupToServicegroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2) != 0) $strInfoMessage = ""; + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define service groups (servicegroups.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process service selection field + $intReturn = 0; + if (isset($arrModifyData['members'])) {$intFieldId = $arrModifyData['members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_service','service_description','service_members','tbl_lnkServicegroupToService',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn != 0) && ($intVersion != 3)) { + $myVisClass->processMessage(translate('Attention, no services defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process service group selection field + if (isset($arrModifyData['servicegroup_members'])) {$intFieldId = $arrModifyData['servicegroup_members'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,$preKeyField,'servicegroups','tbl_lnkServicegroupToServicegroup',0,$intFieldId,$chkListId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Service group')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process search string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR `notes` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/services.php b/admin/services.php new file mode 100644 index 0000000..30b89db --- /dev/null +++ b/admin/services.php @@ -0,0 +1,499 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkServiceToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkServiceToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkServiceToServicegroup",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkServiceToContact",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) $intRet5 = $myDataClass->dataInsertRelation("tbl_lnkServiceToContactgroup",$chkDataId,$chkMselValue5); + if (isset($intRet5) && ($intRet5 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkServiceToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkServiceToHost",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkServiceToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkServiceToHostgroup",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkServiceToServicegroup",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkServiceToServicegroup",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkServiceToContact",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkServiceToContact",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) { + $intRet5 = $myDataClass->dataUpdateRelation("tbl_lnkServiceToContactgroup",$chkDataId,$chkMselValue5); + } else { + $intRet5 = $myDataClass->dataDeleteRelation("tbl_lnkServiceToContactgroup",$chkDataId); + } + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5) != 0) $strInfoMessage = ""; + // + // Removing the config file if an entry was deleted or renamed + // =========================================================== + if (($chkModus == "modify") && ($chkTfValue2 != $chkTfValue1) && ($chkDomainId != 0)) { + $intServiceCount = $myDBClass->countRows("SELECT * FROM `$preTableName` + WHERE BINARY `$preKeyField`='$chkTfValue2' AND `config_id`=$chkDomainId AND `active`='1'"); + if ($intServiceCount == 0) { + $arrConfigID = $myConfigClass->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("service",$chkTfValue2.".cfg",$intConfigID); + } + if ($intReturn == 0) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!'),$strInfoMessage); + $myDataClass->writeLog(translate('Service file deleted:')." ".$chkTfValue2.".cfg"); + } else { + if ($chkDomainId == 0) { + $myVisClass->processMessage(translate('Common files cannot be removed from target systems - please check manually'),$strErrorMessage); + } else { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } + // + // Removing the config file if an entry was dectivated + // =================================================== + if (($chkModus == "modify") && ($chkActive == 0)) { + $intServiceCount = $myDBClass->countRows("SELECT * FROM `$preTableName` WHERE `$preKeyField`='$chkTfValue2' AND `config_id`=$chkDomainId AND `active`='1'"); + if ($intServiceCount == 0) { + $arrConfigID = $myConfigClass->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("service",$chkTfValue2.".cfg",$intConfigID); + } + if ($intReturn == 0) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!'),$strInfoMessage); + $myDataClass->writeLog(translate('Service file deleted:')." ".$chkTfValue2.".cfg"); + } else { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } + } + } + } + // + // Insert/update session data for templates + // ======================================== + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkServiceToServicetemplate` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkServiceToServicetemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update session data for free variables + // ============================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkServiceToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkServiceToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "UPDATE `tbl_service` SET `use_variables`=0 WHERE `id`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + $intCountVariable = 0; + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $intReturn1 = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkServiceToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $intReturn2 = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 == 0) && ($intReturn2 == 0)) $intCountVariable++; + } + } + if ($intCountVariable != 0) { + $strSQL = "UPDATE `tbl_service` SET `use_variables`=1 WHERE `id`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + // + // Update Import HASH + // ================== + $intReturn = $myDataClass->updateHash($preTableName,$chkDataId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define services (services.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template fields + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`,`template_name`, `active` FROM `tbl_servicetemplate` WHERE $strDomainWhere2 ORDER BY `template_name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['template_name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `$preTableName` WHERE `name` <> '' $strWhere AND $strDomainWhere ORDER BY `name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process host selection field + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_host','host_name','hosts','tbl_lnkServiceToHost',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkServiceToHostgroup',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn1 != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no hosts or hostgroups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process service groups selection field + if (isset($arrModifyData['servicegroups'])) {$intFieldId = $arrModifyData['servicegroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServiceToServicegroup',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check command selection field + if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != "")) { + $arrCommand = explode("!",$arrModifyData['check_command']); + $intFieldId = $arrCommand[0]; + } else { + $intFieldId = 0; + } + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','servicecommand',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if ($intReturn != 0) { + $myVisClass->processMessage(translate('Attention, no check commands defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process check period selection field + if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if ($intReturn != 0) { + $myVisClass->processMessage(translate('Attention, no time periods defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process event handler selection field + if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + $intReturn1 = $myVisClass->parseSelectMulti('tbl_contact','contact_name','service_contacts','tbl_lnkServiceToContact',2,$intFieldId); + if ($intReturn1 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + $intReturn2 = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','service_contactgroups','tbl_lnkServiceToContactgroup',2,$intFieldId); + if ($intReturn2 != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (($intReturn != 0) && ($intReturn2 != 0)) { + $myVisClass->processMessage(translate('Attention, no contacts or contact groups defined!'),$strDBWarning); + $intDataWarning = 1; + } + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "ACE,PCE,PAC,FRE,OBS,EVH,FLE,STI,NSI,PED,ISV,NOE,HOS,HOG,SEG,COT,COG,TPL"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + $conttp->setVariable("DAT_ACE".$arrModifyData['active_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PCE".$arrModifyData['passive_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PAC".$arrModifyData['parallelize_check']."_CHECKED","checked"); + $conttp->setVariable("DAT_FRE".$arrModifyData['check_freshness']."_CHECKED","checked"); + $conttp->setVariable("DAT_OBS".$arrModifyData['obsess_over_service']."_CHECKED","checked"); + $conttp->setVariable("DAT_EVH".$arrModifyData['event_handler_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FLE".$arrModifyData['flap_detection_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_STI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_NSI".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_PED".$arrModifyData['process_perf_data']."_CHECKED","checked"); + $conttp->setVariable("DAT_ISV".$arrModifyData['is_volatile']."_CHECKED","checked"); + $conttp->setVariable("DAT_NOE".$arrModifyData['notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOS".$arrModifyData['host_name_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOG".$arrModifyData['hostgroup_name_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_SEG".$arrModifyData['servicegroups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COT".$arrModifyData['contacts_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contact_groups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + // Special processing for -1 values - write 'null' to integer fields + $strIntegerfelder = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,high_flap_threshold,"; + $strIntegerfelder .= "notification_interval,first_notification_delay"; + foreach(explode(",",$strIntegerfelder) AS $elem) { + if ($arrModifyData[$elem] == -1) { + $conttp->setVariable("DAT_".strtoupper($elem),"null"); + } + } + if ($arrModifyData['check_command'] != "") { + $arrArgument = explode("!",$arrModifyData['check_command']); + foreach ($arrArgument AS $key => $value) { + if ($key == 0) { + $conttp->setVariable("IFRAME_SRC",$_SESSION['SETS']['path']['base_url']."admin/commandline.php?cname=".$value); + } else { + $value = str_replace("::bang::","!",$value); + $value = str_replace("::back::","\\",$value); + $conttp->setVariable("DAT_ARG".$key,htmlentities($value,ENT_QUOTES,'UTF-8')); + } + } + } + // Process option fields + foreach(explode(",",$arrModifyData['initial_state']) AS $elem) { + $conttp->setVariable("DAT_IS".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['flap_detection_options']) AS $elem) { + $conttp->setVariable("DAT_FL".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_options']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['stalking_options']) AS $elem) { + $conttp->setVariable("DAT_ST".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Config name')); + $mastertp->setVariable("FIELD_2",translate('Service name')); + // Configuration name selection + $mastertp->setVariable("DAT_CONFIGNAME",translate('All configs')); + $mastertp->parse("configlist"); + $strSQL = "SELECT DISTINCT `$preKeyField` FROM `$preTableName` WHERE $strDomainWhere ORDER BY `$preKeyField`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataConfig,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else if ($intDataCount != 0) { + for ($i=0;$i<$intDataCount;$i++) { + $mastertp->setVariable("DAT_CONFIGNAME",$arrDataConfig[$i][$preKeyField]); + if ($_SESSION['search']['config_selection'] == $arrDataConfig[$i][$preKeyField]) { + $mastertp->setVariable("DAT_CONFIGNAME_SEL","selected"); + } + $mastertp->parse("configlist"); + } + } + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `service_description` LIKE '%".$strSearchTxt."%' OR + `display_name` LIKE '%".$strSearchTxt."%')"; + } + if ($_SESSION['search']['config_selection'] != "") { + $strSearchTxt2 = $_SESSION['search']['config_selection']; + if ($strSearchTxt2 != translate('All configs')) { + $strSearchWhere2 = " AND `$preKeyField` = '".$strSearchTxt2."' "; + } + } + // Row sorting + $strOrderString = "ORDER BY `config_id`,`$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `service_description` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere2 $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Datensätze holen + $strSQL = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `last_modified`, `config_id`, `access_group` + FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere2 $strSearchWhere AND `access_group` IN ($strAccess) $strOrderString + LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'service_description',0); + if ($myContentClass->strErrorMessage != "") $myVisClass->processMessage($myContentClass->strErrorMessage,$strErrorMessage); +} +// Show messages +$arrTimeData = array(); +$strTimeInfoString = ""; +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/servicetemplates.php b/admin/servicetemplates.php new file mode 100644 index 0000000..7de3200 --- /dev/null +++ b/admin/servicetemplates.php @@ -0,0 +1,396 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New service template inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Service template modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkServicetemplateToHost",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkServicetemplateToHostgroup",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) $intRet3 = $myDataClass->dataInsertRelation("tbl_lnkServicetemplateToServicegroup",$chkDataId,$chkMselValue3); + if (isset($intRet3) && ($intRet3 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) $intRet4 = $myDataClass->dataInsertRelation("tbl_lnkServicetemplateToContact",$chkDataId,$chkMselValue4); + if (isset($intRet4) && ($intRet4 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) $intRet5 = $myDataClass->dataInsertRelation("tbl_lnkServicetemplateToContactgroup",$chkDataId,$chkMselValue5); + if (isset($intRet5) && ($intRet5 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkServicetemplateToHost",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkServicetemplateToHost",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkServicetemplateToHostgroup",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkServicetemplateToHostgroup",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue3 != 0) { + $intRet3 = $myDataClass->dataUpdateRelation("tbl_lnkServicetemplateToServicegroup",$chkDataId,$chkMselValue3); + } else { + $intRet3 = $myDataClass->dataDeleteRelation("tbl_lnkServicetemplateToServicegroup",$chkDataId); + } + if ($intRet3 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue4 != 0) { + $intRet4 = $myDataClass->dataUpdateRelation("tbl_lnkServicetemplateToContact",$chkDataId,$chkMselValue4); + } else { + $intRet4 = $myDataClass->dataDeleteRelation("tbl_lnkServicetemplateToContact",$chkDataId); + } + if ($intRet4 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue5 != 0) { + $intRet5 = $myDataClass->dataUpdateRelation("tbl_lnkServicetemplateToContactgroup",$chkDataId,$chkMselValue5); + } else { + $intRet5 = $myDataClass->dataDeleteRelation("tbl_lnkServicetemplateToContactgroup",$chkDataId); + } + if ($intRet5 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2 + $intRet3 + $intRet4 + $intRet5) != 0) $strInfoMessage = ""; + // + // Insert/update session data for templates + // ======================================== + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_lnkServicetemplateToServicetemplate` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intSortId = 1; + foreach($_SESSION['templatedefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_lnkServicetemplateToServicetemplate` (`idMaster`,`idSlave`,`idTable`,`idSort`) + VALUES ($chkDataId,".$elem['idSlave'].",".$elem['idTable'].",".$intSortId.")"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + $intSortId++; + } + } + // + // Insert/update session data for free variables + // ============================================= + if ($chkModus == "modify") { + $strSQL = "SELECT * FROM `tbl_lnkServicetemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCount != 0) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + $strSQL = "DELETE FROM `tbl_lnkServicetemplateToVariabledefinition` WHERE `idMaster`=$chkDataId"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + foreach($_SESSION['variabledefinition'] AS $elem) { + if ($elem['status'] == 0) { + $strSQL = "INSERT INTO `tbl_variabledefinition` (`name`,`value`,`last_modified`) + VALUES ('".$elem['definition']."','".$elem['range']."',now())"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + $strSQL = "INSERT INTO `tbl_lnkServicetemplateToVariabledefinition` (`idMaster`,`idSlave`) + VALUES ($chkDataId,$intInsertId)"; + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Define service templates (servicetemplates.cfg)')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process template fields + $strWhere = ""; + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + $strWhere = "AND `id` <> ".$arrModifyData['id']; + } + $strSQL = "SELECT `id`, `$preKeyField`, `active` FROM `$preTableName` WHERE $strDomainWhere $strWhere ORDER BY `$preKeyField`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataTpl,$intDataCountTpl); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($intDataCountTpl != 0) { + foreach ($arrDataTpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem[$preKeyField],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::1"); + $conttp->parse("template"); + } + } + $strSQL = "SELECT `id`, `name`, `active` FROM `tbl_service` WHERE `name` <> '' AND $strDomainWhere2 ORDER BY `name`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataHpl,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($arrDataHpl != 0) { + foreach ($arrDataHpl AS $elem) { + if ($elem['active'] == 0) { + $strActive = " [inactive]"; + $conttp->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + $conttp->setVariable("SPECIAL_STYLE",""); + } + $conttp->setVariable("DAT_TEMPLATE",htmlspecialchars($elem['name'],ENT_QUOTES,'UTF-8').$strActive); + $conttp->setVariable("DAT_TEMPLATE_ID",$elem['id']."::2"); + $conttp->parse("template"); + } + } + // Process host selection field + if (isset($arrModifyData['host_name'])) {$intFieldId = $arrModifyData['host_name'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_host','host_name','hosts','tbl_lnkServicetemplateToHost',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['hostgroup_name'])) {$intFieldId = $arrModifyData['hostgroup_name'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_hostgroup','hostgroup_name','hostgroup','tbl_lnkServicetemplateToHostgroup',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process service groups selection field + if (isset($arrModifyData['servicegroups'])) {$intFieldId = $arrModifyData['servicegroups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_servicegroup','servicegroup_name','servicegroup','tbl_lnkServicetemplateToServicegroup',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check command selection field + if (isset($arrModifyData['check_command']) && ($arrModifyData['check_command'] != "")) { + $arrCommand = explode("!",$arrModifyData['check_command']); + $intFieldId = $arrCommand[0]; + } else { + $intFieldId = 0; + } + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','servicecommand',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process check period selection field + if (isset($arrModifyData['check_period'])) {$intFieldId = $arrModifyData['check_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','checkperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['notification_period'])) {$intFieldId = $arrModifyData['notification_period'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_timeperiod','timeperiod_name','notifyperiod',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process event handler selection field + if (isset($arrModifyData['event_handler'])) {$intFieldId = $arrModifyData['event_handler'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_command','command_name','eventhandler',1,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process contact and contact group selection field + if (isset($arrModifyData['contacts'])) {$intFieldId = $arrModifyData['contacts'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contact','contact_name','service_contacts','tbl_lnkServicetemplateToContact',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + if (isset($arrModifyData['contact_groups'])) {$intFieldId = $arrModifyData['contact_groups'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti('tbl_contactgroup','contactgroup_name','service_contactgroups','tbl_lnkServicetemplateToContactgroup',2,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process access group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $strChbFields = "ACE,PCE,PAC,FRE,OBS,EVH,FLE,STI,NSI,PED,ISV,NOE,HOS,HOG,SEG,COT,COG,TPL"; + $myContentClass->addFormInit($conttp,$strChbFields); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo,$strChbFields); + $conttp->setVariable("DAT_ACE".$arrModifyData['active_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PCE".$arrModifyData['passive_checks_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_PAC".$arrModifyData['parallelize_check']."_CHECKED","checked"); + $conttp->setVariable("DAT_FRE".$arrModifyData['check_freshness']."_CHECKED","checked"); + $conttp->setVariable("DAT_OBS".$arrModifyData['obsess_over_service']."_CHECKED","checked"); + $conttp->setVariable("DAT_EVH".$arrModifyData['event_handler_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_FLE".$arrModifyData['flap_detection_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_STI".$arrModifyData['retain_status_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_NSI".$arrModifyData['retain_nonstatus_information']."_CHECKED","checked"); + $conttp->setVariable("DAT_PED".$arrModifyData['process_perf_data']."_CHECKED","checked"); + $conttp->setVariable("DAT_ISV".$arrModifyData['is_volatile']."_CHECKED","checked"); + $conttp->setVariable("DAT_NOE".$arrModifyData['notifications_enabled']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOS".$arrModifyData['host_name_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_HOG".$arrModifyData['hostgroup_name_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_SEG".$arrModifyData['servicegroups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COT".$arrModifyData['contacts_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_COG".$arrModifyData['contact_groups_tploptions']."_CHECKED","checked"); + $conttp->setVariable("DAT_TPL".$arrModifyData['use_template_tploptions']."_CHECKED","checked"); + // Special processing for -1 values - write 'null' to integer fields + $strIntegerfelder = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,high_flap_threshold,"; + $strIntegerfelder .= "notification_interval,first_notification_delay"; + foreach(explode(",",$strIntegerfelder) AS $elem) { + if ($arrModifyData[$elem] == -1) { + $conttp->setVariable("DAT_".strtoupper($elem),"null"); + } + } + if ($arrModifyData['check_command'] != "") { + $arrArgument = explode("!",$arrModifyData['check_command']); + foreach ($arrArgument AS $key => $value) { + if ($key == 0) { + $conttp->setVariable("IFRAME_SRC",$_SESSION['SETS']['path']['base_url']."admin/commandline.php?cname=".$value); + } else { + $conttp->setVariable("DAT_ARG".$key,htmlentities($value,ENT_QUOTES,'UTF-8')); + } + } + } + // Process option fields + foreach(explode(",",$arrModifyData['initial_state']) AS $elem) { + $conttp->setVariable("DAT_IS".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['flap_detection_options']) AS $elem) { + $conttp->setVariable("DAT_FL".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['notification_options']) AS $elem) { + $conttp->setVariable("DAT_NO".strtoupper($elem)."_CHECKED","checked"); + } + foreach(explode(",",$arrModifyData['stalking_options']) AS $elem) { + $conttp->setVariable("DAT_ST".strtoupper($elem)."_CHECKED","checked"); + } + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Template name')); + $mastertp->setVariable("FIELD_2",translate('Service description')); + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `service_description` LIKE '%".$strSearchTxt."%' OR + `display_name` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `service_description` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `service_description`, `register`, `active`, `last_modified`, `config_id`, `access_group` + FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess) + $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'service_description',0); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/settings.php b/admin/settings.php new file mode 100644 index 0000000..c783d66 --- /dev/null +++ b/admin/settings.php @@ -0,0 +1,261 @@ +getFieldData("SELECT `locale` FROM `tbl_language` WHERE `id`='".$chkSelValue2."'"); + if ($strLocale == "") $strLocale = "en_GB"; + // Check Proxy via curl + if (!function_exists('curl_init')) { + $myVisClass->processMessage(translate('Curl module not loaded, Proxy will be deactivated!'),$strErrorMessage); + $chkRadValue3 = 0; + } + // Check base paths + $strBaseURL = str_replace("admin/settings.php","",$_SERVER["PHP_SELF"]); + $strBasePath = substr(realpath('.'),0,-5); + $arrSQL = ""; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strProtocol."' WHERE `category` = 'path' AND `name`='protocol'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue1."' WHERE `category` = 'path' AND `name`='tempdir'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strBaseURL."' WHERE `category` = 'path' AND `name`='base_url'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strBasePath."' WHERE `category` = 'path' AND `name`='base_path'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$strLocale."' WHERE `category` = 'data' AND `name`='locale'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue2."' WHERE `category` = 'data' AND `name`='encoding'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue8."' WHERE `category` = 'security' AND `name`='logofftime'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkSelValue3."' WHERE `category` = 'security' AND `name`='wsauth'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue9."' WHERE `category` = 'common' AND `name`='pagelines'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkSelValue4."' WHERE `category` = 'common' AND `name`='seldisable'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue1."' WHERE `category` = 'common' AND `name`='tplcheck'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue2."' WHERE `category` = 'common' AND `name`='updcheck'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkRadValue3."' WHERE `category` = 'network' AND `name`='proxy'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue10."' WHERE `category` = 'network' AND `name`='proxyserver'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue11."' WHERE `category` = 'network' AND `name`='proxyuser'"; + $arrSQL[] = "UPDATE `tbl_settings` SET `value` = '".$chkTfValue12."' WHERE `category` = 'network' AND `name`='proxypasswd'"; + + foreach ($arrSQL AS $elem) { + $booReturn = $myDBClass->insertData($elem); + if ($booReturn == false) { + $myVisClass->processMessage(translate('An error occured while writing settings to database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + } + // Write db settings to file + if (is_writable($strBasePath."config/settings.php")) { + $filSettings = fopen($strBasePath."config/settings.php","w"); + if ($filSettings) { + fwrite($filSettings,"\n"); + fwrite($filSettings,";///////////////////////////////////////////////////////////////////////////////\n"); + fwrite($filSettings,";\n"); + fwrite($filSettings,"; NagiosQL\n"); + fwrite($filSettings,";\n"); + fwrite($filSettings,";///////////////////////////////////////////////////////////////////////////////\n"); + fwrite($filSettings,";\n"); + fwrite($filSettings,"; Project : NagiosQL\n"); + fwrite($filSettings,"; Component: Database Configuration\n"); + fwrite($filSettings,"; Website : http://www.nagiosql.org\n"); + fwrite($filSettings,"; Date : ".date("F j, Y, g:i a")."\n"); + fwrite($filSettings,"; Version : ".$setFileVersion."\n"); + fwrite($filSettings,";\n"); + fwrite($filSettings,";///////////////////////////////////////////////////////////////////////////////\n"); + fwrite($filSettings,"[db]\n"); + fwrite($filSettings,"server = ".$chkTfValue3."\n"); + fwrite($filSettings,"port = ".$chkTfValue4."\n"); + fwrite($filSettings,"database = ".$chkTfValue5."\n"); + fwrite($filSettings,"username = ".$chkTfValue6."\n"); + fwrite($filSettings,"password = ".$chkTfValue7."\n"); + fwrite($filSettings,"[path]\n"); + fwrite($filSettings,"base_url = ".$strBaseURL."\n"); + fwrite($filSettings,"base_path = ".$strBasePath."\n"); + fclose($filSettings); + // Activate new language settings + $arrLocale = explode(".",$strLocale); + $strDomain = $arrLocale[0]; + $loc = setlocale(LC_ALL, $strLocale, $strLocale.".utf-8", $strLocale.".utf-8", $strLocale.".utf8", "en_GB", "en_GB.utf-8", "en_GB.utf8"); + if (!isset($loc)) { + $myVisClass->processMessage(translate("Error in setting the correct locale, please report this error with the associated output of 'locale -a'"),$strErrorMessage); + } + putenv("LC_ALL=".$strLocale.".utf-8"); + putenv("LANG=".$strLocale.".utf-8"); + bindtextdomain($strLocale, $strBasePath."config/locale"); + bind_textdomain_codeset($strLocale, $chkTfValue2); + textdomain($strLocale); + $myVisClass->processMessage(translate("Settings were changed"),$strInfoMessage); + } else { + $myVisClass->processMessage(translate("An error occured while writing settings.php, please check permissions!"),$strErrorMessage); + } + } else { + $myVisClass->processMessage($strBasePath."config/settings.php ".translate("is not writeable, please check permissions!"),$strErrorMessage); + } +} +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Configure Settings')); +$conttp->parse("header"); +$conttp->show("header"); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$conttp->setVariable("LANG_DESCRIPTION",translate('Change your current NagiosQL settings (e.g. Database user, Language).')); +// +// Path settings +// ============= +$conttp->setVariable("PATH",translate('Path')); +$conttp->setVariable("TEMPDIR_NAME",translate('Temporary Directory')); +$conttp->setVariable("TEMPDIR_VALUE",htmlspecialchars($chkTfValue1, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("PROTOCOL_NAME",translate('Server protocol')); +$conttp->setVariable(strtoupper($SETS['path']['protocol'])."_SELECTED","selected"); +// +// Data settings +// ============= +$conttp->setVariable("DATA",translate('Language')); +$conttp->setVariable("LOCALE",translate('Language')); +// Process language selection field +$strSQL = "SELECT * FROM `tbl_language` WHERE `active`='1' ORDER BY `id`"; +$booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); +if ($booReturn && ($intDataCount != 0)) { + foreach($arrData AS $elem) { + $conttp->setVariable("LANGUAGE_ID",$elem['id']); + $conttp->setVariable("LANGUAGE_NAME",translate($elem['language'])); + if ($elem['locale'] == $SETS['data']['locale']) $conttp->setVariable("LANGUAGE_SELECTED","selected"); + $conttp->parse("language"); + } +} else { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); +} +$conttp->setVariable("ENCODING_NAME",translate('Encoding')); +$conttp->setVariable("ENCODING_VALUE",htmlspecialchars($chkTfValue2, ENT_QUOTES, 'utf-8')); +// +// Database settings +// ================= +$conttp->setVariable("DB",translate('Database')); +$conttp->setVariable("SERVER_NAME",translate('MySQL Server')); +$conttp->setVariable("SERVER_VALUE",htmlspecialchars($chkTfValue3, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("SERVER_PORT",translate('MySQL Server Port')); +$conttp->setVariable("PORT_VALUE",htmlspecialchars($chkTfValue4, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("DATABASE_NAME",translate('Database name')); +$conttp->setVariable("DATABASE_VALUE",htmlspecialchars($chkTfValue5, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("USERNAME_NAME",translate('Database user')); +$conttp->setVariable("USERNAME_VALUE",htmlspecialchars($chkTfValue6, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("PASSWORD_NAME",translate('Database password')); +$conttp->setVariable("PASSWORD_VALUE",htmlspecialchars($chkTfValue7, ENT_QUOTES, 'utf-8')); +// +// Security settings +// ================= +$conttp->setVariable("SECURITY",translate('Security')); +$conttp->setVariable("LOGOFFTIME_NAME",translate('Session auto logoff time')); +$conttp->setVariable("LOGOFFTIME_VALUE",htmlspecialchars($chkTfValue8, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("WSAUTH_NAME",translate('Authentication type')); +$conttp->setVariable("WSAUTH_".$chkSelValue3."_SELECTED","selected"); +// +// Common settings +// =============== +$conttp->setVariable("COMMON",translate('Common')); +$conttp->setVariable("PAGELINES_NAME",translate('Data lines per page')); +$conttp->setVariable("PAGELINES_VALUE",htmlspecialchars($chkTfValue9, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("SELDISABLE_NAME",translate('Selection method')); +$conttp->setVariable("SELDISABLE_".$chkSelValue4."_SELECTED","selected"); +// +// Template Check +// ============== +$conttp->setVariable("TEMPLATE_CHECK", translate('Template warn message')); +$conttp->setVariable("LANG_ENABLE", translate('Enable')); +$conttp->setVariable("LANG_DISABLE", translate('Disable')); +$conttp->setVariable("TPL_CHECK_".$chkRadValue1."_CHECKED","checked"); +// +// Online version check +// ==================== +$conttp->setVariable("CLASS_NAME_1","elementHide"); +$conttp->setVariable("CLASS_NAME_2","elementHide"); +$conttp->setVariable("UPDATE_CHECK", translate('Online version check')); +$conttp->setVariable("UPD_CHECK_".$chkRadValue2."_CHECKED","checked"); +if ($chkRadValue2 == 1) $conttp->setVariable("CLASS_NAME_1","elementShow"); +// +// Online update proxy settings +// ============================ +$conttp->setVariable("UPD_PROXY_CHECK", translate('Proxyserver')); +$conttp->setVariable("UPD_PROXY_".$chkRadValue3."_CHECKED","checked"); +if (($chkRadValue3 == 1) && ($chkRadValue2 == 1)) $conttp->setVariable("CLASS_NAME_2","elementShow"); +$conttp->setVariable("UPD_PROXY_SERVER", translate('Proxy Address')); +$conttp->setVariable("UPD_PROXY_SERVER_VALUE",htmlspecialchars($chkTfValue10, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("UPD_PROXY_USERNAME", translate('Proxy Username (optional)')); +$conttp->setVariable("UPD_PROXY_USERNAME_VALUE",htmlspecialchars($chkTfValue11, ENT_QUOTES, 'utf-8')); +$conttp->setVariable("UPD_PROXY_PASSWORD", translate('Proxy Password (optional)')); +$conttp->setVariable("UPD_PROXY_PASSWORD_VALUE",htmlspecialchars($chkTfValue12, ENT_QUOTES, 'utf-8')); +// +// Requirements of form +// ==================== +$conttp->setVariable("LANG_SAVE", translate('Save')); +$conttp->setVariable("LANG_ABORT", translate('Abort')); +$conttp->setVariable("LANG_REQUIRED", translate('required')); +$conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// +// Check access rights for adding new objects +// ========================================== +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("settingssite"); +$conttp->show("settingssite"); +// +// Footer ausgeben +// =============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/specials.php b/admin/specials.php new file mode 100644 index 0000000..3759887 --- /dev/null +++ b/admin/specials.php @@ -0,0 +1,89 @@ +setVariable("TITLE",translate('Misc commands')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('To define host and service dependencies, host and service escalations as well as host and service additional data.')); +$conttp->setVariable("STATISTICS",translate('Statistical datas')); +$conttp->setVariable("TYPE",translate('Group')); +$conttp->setVariable("ACTIVE",translate('Active')); +$conttp->setVariable("INACTIVE",translate('Inactive')); +// +// Include statistical data +// ======================== +// Get read access groups +$strAccess = $myVisClass->getAccGroups('read'); +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=19")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Host dependencies')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostdependency` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostdependency` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=20")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Host escalations')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostescalation` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostescalation` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=21")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Host ext. info')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostextinfo` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_hostextinfo` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=22")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Service dependencies')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicedependency` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_servicedependency` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=23")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Service escalations')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_serviceescalation` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_serviceescalation` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +if ($myVisClass->checkAccGroup($myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=24")+0,'read') == 0) { + $conttp->setVariable("NAME",translate('Service ext. info')); + $conttp->setVariable("ACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_serviceextinfo` WHERE `active`='1' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->setVariable("INACT_COUNT",$myDBClass->getFieldData("SELECT count(*) FROM `tbl_serviceextinfo` WHERE `active`='0' AND `config_id`=$chkDomainId AND `access_group` IN ($strAccess)")); + $conttp->parse("statisticrow"); +} +$conttp->parse("statistics"); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/support.php b/admin/support.php new file mode 100644 index 0000000..0bd3819 --- /dev/null +++ b/admin/support.php @@ -0,0 +1,630 @@ +getDataArray($strSQL,$arrData,$intDataCount); + if ($intDataCount == 0) { + $strSQL = "INSERT INTO `tbl_info` (`key1`,`key2`,`version`,`language`,`infotext`) + VALUES ('$chkTfValue1','$chkTfValue2','$chkHidVersion','$setSaveLangId','$chkTaValue1')"; + } else { + $strSQL = "UPDATE `tbl_info` SET `infotext` = '$chkTaValue1' + WHERE `key1` = '$chkTfValue1' AND `key2` = '$chkTfValue2' AND `version` = '$chkHidVersion' + AND `language` = '$setSaveLangId'"; + } + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn != 0) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + } +} +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('NagiosQL support page')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Single data form +// ================ +$conttp->setVariable("MAINSITE",$_SESSION['SETS']['path']['base_url']."admin.php"); +foreach($arrDescription AS $elem) { + $conttp->setVariable($elem['name'],$elem['string']); +} +$conttp->setVariable("SUBTITLE_1",translate('Support contact information')); +$conttp->setVariable("SUPPORT_TEXT_1",translate('For questions, the online support forum or contact information visit our website:')); +// +// Donation +// ======== +$conttp->setVariable("SUBTITLE_2",translate('Donate to support NagiosQL')); +$conttp->setVariable("SUPPORT_TEXT_2",translate('If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!')); +$conttp->setVariable("DONATE_LINK",translate('Donate for NagiosQL on sourceforge')); +// +// Translations +// ============ +$conttp->setVariable("SUBTITLE_3",translate('Translation services')); +$conttp->setVariable("SUPPORT_TEXT_3",translate('NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:')); +$conttp->setVariable("TRANSLATION_LINK",translate('Transifex translation service')); +// +// Online version check +// ==================== +$conttp->setVariable("SUBTITLE_4",translate('Version check')); +if (!isset($SETS['common']['updcheck']) || ($SETS['common']['updcheck'] == '0')) { + $conttp->setVariable("SUPPORT_TEXT_4",translate('The online version check is not enabled. You can enable it on the settings page.')); +} else if (isset($SETS['common']['updcheck']) && ($SETS['common']['updcheck'] == '1')) { + $conttp->setVariable("SUPPORT_TEXT_4",translate('The online version check connects the NagiosQL page to find out, if your version is still up to date.')); + $conttp->setVariable("LOADER_IMAGE",$_SESSION['SETS']['path']['base_url']."images/loader.gif"); + $conttp->setVariable("VERSION_IF_SRC",$_SESSION['SETS']['path']['base_url']."admin/versioncheck.php?show=0"); + $conttp->parse("versioncheck_frame"); + $conttp->setVariable("VERSION_IF_SRC_RELOAD",$_SESSION['SETS']['path']['base_url']."admin/versioncheck.php?show=1"); + $conttp->parse("versioncheck_js"); +} +// +// Environment check +// ================= +$conttp->setVariable("SUBTITLE_5",translate('Environment check')); +// Javascript check +$conttp->setVariable("FAILED",translate("failed")); +$conttp->setVariable("OK",translate("ok")); +// PHP version check +define('MIN_PHP_VERSION', '5.2.0'); +$conttp->setVariable("PHP_VERSION",translate("PHP version")); +if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) { + $conttp->setVariable("PHP_CLASS","checkgreen"); + $conttp->setVariable("PHP_RESULT",translate("ok")." (".PHP_VERSION.")"); +} else { + $conttp->setVariable("PHP_CLASS","checkred"); + $conttp->setVariable("PHP_RESULT",translate("failed")." (".PHP_VERSION." - ".translate("Required:")." ".MIN_PHP_VERSION.")"); +} +// PHP modules / extensions +$strExtPath = ini_get('extension_dir'); +$strPrefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : ''; +$conttp->setVariable("PHP_SESSION_MODULE",translate("PHP module:")." session"); +if (extension_loaded('session')) { + $conttp->setVariable("PHP_SESSION_CLASS","checkgreen"); + $conttp->setVariable("PHP_SESSION_RESULT",translate("ok")); +} else { + $conttp->setVariable("PHP_SESSION_CLASS","checkred"); + $conttp->setVariable("PHP_SESSION_RESULT",translate("failed")); +} +$conttp->setVariable("PHP_GETTEXT_MODULE",translate("PHP module:")." gettext"); +if (extension_loaded('gettext')) { + $conttp->setVariable("PHP_GETTEXT_CLASS","checkgreen"); + $conttp->setVariable("PHP_GETTEXT_RESULT",translate("ok")); +} else { + $conttp->setVariable("PHP_GETTEXT_CLASS","checkred"); + $conttp->setVariable("PHP_GETTEXT_RESULT",translate("failed")); +} +$conttp->setVariable("PHP_FTP_MODULE",translate("PHP module:")." ftp"); +if (extension_loaded('ftp')) { + $conttp->setVariable("PHP_FTP_CLASS","checkgreen"); + $conttp->setVariable("PHP_FTP_RESULT",translate("ok")); + $intFTP_ok = 1; +} else { + $conttp->setVariable("PHP_FTP_CLASS","checkorange"); + $conttp->setVariable("PHP_FTP_RESULT",translate("failed")); + $intFTP_ok = 0; +} +$conttp->setVariable("PHP_SSH2_MODULE",translate("PHP module:")." ssh"); +if (extension_loaded('ssh2')) { + $conttp->setVariable("PHP_SSH2_CLASS","checkgreen"); + $conttp->setVariable("PHP_SSH2_RESULT",translate("ok")); + $intSSH_ok = 1; +} else { + $conttp->setVariable("PHP_SSH2_CLASS","checkorange"); + $conttp->setVariable("PHP_SSH2_RESULT",translate("failed")); + $intSSH_ok = 0; +} +// Datenbankversion +if ($SETS['db']['type'] == "mysql") { + $conttp->setVariable("DB_VERSION",translate("MySQL version")); + $strSQL = "SHOW VARIABLES LIKE 'version'"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataset); + if ($booReturn && (count($arrDataset) != 0)) { + $strDBVersion = $arrDataset['Value']; + if (version_compare($strDBVersion, "5.0.0", '>=')) { + $conttp->setVariable("DB_CLASS","checkgreen"); + $conttp->setVariable("DB_RESULT",translate("ok")." (".$strDBVersion.")"); + } else { + $conttp->setVariable("DB_CLASS","checkorange"); + $conttp->setVariable("DB_RESULT",translate("failed")." (".$strDBVersion." - ".translate("Required:")." 5.0.0)"); + } + } +} +// INI settings +$conttp->setVariable("INI_FILE_UPLOADS",translate("PHP ini settings:")." file_uploads"); +$strStatus = ini_get('file_uploads'); +if (empty($strStatus) || ($strStatus == 1)) { + $conttp->setVariable("INI_FILE_UPLOADS_CLASS","checkgreen"); + $conttp->setVariable("INI_FILE_UPLOADS_RESULT",translate("ok")); +} else { + $conttp->setVariable("INI_FILE_UPLOADS_CLASS","checkred"); + $conttp->setVariable("INI_FILE_UPLOADS_RESULT",translate("failed")); +} +$conttp->setVariable("INI_AUTO_START",translate("PHP ini settings:")." session.auto_start"); +$strStatus = ini_get('session.auto_start'); +if (empty($strStatus) || ($strStatus == 0)) { + $conttp->setVariable("INI_AUTO_START_CLASS","checkgreen"); + $conttp->setVariable("INI_AUTO_START_RESULT",translate("ok")); +} else { + $conttp->setVariable("INI_AUTO_START_CLASS","checkred"); + $conttp->setVariable("INI_AUTO_START_RESULT",translate("failed")); +} +$conttp->setVariable("INI_SUHO_SESS_ENC",translate("PHP ini settings:")." suhosin.session.encrypt"); +$strStatus = ini_get('suhosin.session.encrypt'); +if (empty($strStatus) || ($strStatus == 0)) { + $conttp->setVariable("INI_SUHO_SESS_ENC_CLASS","checkgreen"); + $conttp->setVariable("INI_SUHO_SESS_ENC_RESULT",translate("ok")); +} else { + $conttp->setVariable("INI_SUHO_SESS_ENC_CLASS","checkred"); + $conttp->setVariable("INI_SUHO_SESS_ENC_RESULT",translate("failed")); +} +$conttp->setVariable("INI_DATE_TIMEZONE",translate("PHP ini settings:")." date.timezone"); +$strStatus = ini_get('date.timezone'); +if (!empty($strStatus)) { + $conttp->setVariable("INI_DATE_TIMEZONE_CLASS","checkgreen"); + $conttp->setVariable("INI_DATE_TIMEZONE_RESULT",translate("ok")." (".$strStatus.")"); +} else { + $conttp->setVariable("INI_DATE_TIMEZONE_CLASS","checkred"); + $conttp->setVariable("INI_DATE_TIMEZONE_RESULT",translate("failed")); +} +// File access checks +$conttp->setVariable("RW_CONFIG",translate("Read/Write access:")." settings.php"); +$strConfigFile = "../config/settings.php"; +if (file_exists($strConfigFile) && is_readable($strConfigFile) && is_writable($strConfigFile)) { + $conttp->setVariable("RW_CONFIG_CLASS","checkgreen"); + $conttp->setVariable("RW_CONFIG_RESULT",translate("ok")); +} else { + $conttp->setVariable("RW_CONFIG_CLASS","checkred"); + $conttp->setVariable("RW_CONFIG_RESULT",translate("failed")); +} +// +// Domain checks +// ============= +$arrConfigSet = $myConfigClass->getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +if ($intConfigId != 0) { + $conttp->setVariable("SUBTITLE_6",translate('Config domain checks')); + $conttp->setVariable("SUPPORT_TEXT_6",translate('The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value.')); + $myConfigClass->getConfigData($intConfigId,"conffile",$strConffile); + $myConfigClass->getConfigData($intConfigId,"target",$strConfName); + $conttp->setVariable("DOMAIN_NAME",translate("Config domain name")); + $conttp->setVariable("DOMAIN_NAME_VALUE",$strConfName); + $conttp->setVariable("CONNECT_TYPE",translate("Connection type")); + if ($intMethod == 1) { + $conttp->setVariable("CONNECT_TYPE_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_TYPE_RESULT","Fileaccess"); + } else if ($intMethod == 2) { + if ($intFTP_ok == 1) { + $conttp->setVariable("CONNECT_TYPE_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_TYPE_RESULT","FTP"); + } else { + $conttp->setVariable("CONNECT_TYPE_CLASS","checkred"); + $conttp->setVariable("CONNECT_TYPE_RESULT","FTP (no FTP module)"); + } + } else if ($intMethod == 3) { + if ($intSSH_ok == 1) { + $conttp->setVariable("CONNECT_TYPE_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_TYPE_RESULT","SSH/SFTP"); + } else { + $conttp->setVariable("CONNECT_TYPE_CLASS","checkred"); + $conttp->setVariable("CONNECT_TYPE_RESULT","SSH/SFTP (no SSH2 module)"); + } + } + $conttp->setVariable("CONNECT_CHECK",translate("Connection check")); + if ($intMethod == 1) { + $conttp->setVariable("CONNECT_CHECK_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_CHECK_RESULT",translate("ok")); + } else if ($intMethod == 2) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getFTPConnection($intConfigId); + } + if ($booReturn == 1) { + $conttp->setVariable("CONNECT_CHECK_CLASS","checkred"); + $conttp->setVariable("CONNECT_CHECK_RESULT",translate("failed")); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + $intConnectCheck = 0; + } else { + $conttp->setVariable("CONNECT_CHECK_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_CHECK_RESULT",translate("ok")); + $intConnectCheck = 1; + } + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intConfigId); + } + if ($booReturn == 1) { + $conttp->setVariable("CONNECT_CHECK_CLASS","checkred"); + $conttp->setVariable("CONNECT_CHECK_RESULT",translate("failed")); + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + $intConnectCheck = 0; + } else { + $conttp->setVariable("CONNECT_CHECK_CLASS","checkgreen"); + $conttp->setVariable("CONNECT_CHECK_RESULT",translate("ok")); + $intConnectCheck = 1; + } + } + $conttp->setVariable("RW_NAG_CONF",translate("Nagios config file")); + if ($intMethod == 1) { + if (file_exists($strConffile) && is_readable($strConffile) && is_writable($strConffile)) { + $conttp->setVariable("RW_NAG_CONF_CLASS","checkgreen"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok")); + } else if (file_exists($strConffile) && is_readable($strConffile)) { + $conttp->setVariable("RW_NAG_CONF_CLASS","checkorange"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok")." (".translate("readonly").")"); + } else{ + $conttp->setVariable("RW_NAG_CONF_CLASS","checkred"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("failed")); + } + } else if (($intMethod == 2) || ($intMethod == 3)) { + // Write file to temporary + $strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf'); + // Copy configuration from remote system + $intReturn = $myConfigClass->configCopy($strConffile,$intConfigId,$strFileName,0); + if ($intReturn == 0) { + $intCheck = 0; + } else { + $intCheck = 1; + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + if (file_exists($strFileName)) unlink($strFileName); + } + // Copy configuration to remote system + if ($intCheck == 0) { + $intReturn = $myConfigClass->configCopy($strConffile,$intConfigId,$strFileName,1); + if ($intReturn == 0) { + $intCheck = 0; + if (file_exists($strFileName)) unlink($strFileName); + } else { + $intCheck = 2; + if (file_exists($strFileName)) unlink($strFileName); + } + } + // Write Results + if ($intCheck == 0) { + $conttp->setVariable("RW_NAG_CONF_CLASS","checkgreen"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok")); + } else if ($intCheck == 1) { + $conttp->setVariable("RW_NAG_CONF_CLASS","checkred"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("failed")); + } else if ($intCheck == 2) { + $conttp->setVariable("RW_NAG_CONF_CLASS","checkorange"); + $conttp->setVariable("RW_NAG_CONF_RESULT",translate("ok")." (".translate("readonly").")"); + } + } + $myConfigClass->getConfigData($intConfigId,"pidfile",$strPidfile); + $myConfigClass->getConfigData($intConfigId,"binaryfile",$strBinary); + $myConfigClass->getConfigData($intConfigId,"commandfile",$strCommandfile); + $conttp->setVariable("CHECK_NAG_LOCK",translate("Nagios process file")); + if ($intMethod == 1) { + if (substr_count(PHP_OS,"Linux") != 0) { + exec('ps -ef | grep '.basename($strBinary).' | grep -v grep',$arrExec); + } else { + $arrExec[0] = 1; + } + if (file_exists($strPidfile) && isset($arrExec[0])) { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkgreen"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok")); + $intDemonOk = 0; + } else if (!file_exists($strPidfile) && isset($arrExec[0])) { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkred"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("failed")." (".translate("file is missed").")"); + $intDemonOk = 1; + } else { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkred"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("failed")); + $myVisClass->processMessage(translate('Nagios daemon is not running'),$strErrorMessage); + $intDemonOk = 1; + } + } else if ($intMethod == 2) { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkorange"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok")." (".translate("not used with FTP").")"); + $intDemonOk = 1; + } else if ($intMethod == 3) { + $arrResult1 = $myConfigClass->sendSSHCommand('ps -ef | grep '.basename($strBinary).' | grep '.basename($strConffile).' | grep -v grep'); + $arrResult2 = $myConfigClass->sendSSHCommand('ls '.$strPidfile); + if (is_array($arrResult1) && is_array($arrResult2)) { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkgreen"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("ok")); + $intDemonOk = 0; + } else if (is_array($arrResult1) && !is_array($arrResult2)) { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkred"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("failed")." (".translate("file is missed").")"); + $intDemonOk = 1; + } else { + $conttp->setVariable("CHECK_NAG_LOCK_CLASS","checkred"); + $conttp->setVariable("CHECK_NAG_LOCK_RESULT",translate("failed")." (".translate("demon dead").")"); + $myVisClass->processMessage(translate('Nagios daemon is not running'),$strErrorMessage); + $intDemonOk = 1; + } + } + // Command file + $conttp->setVariable("RW_NAG_COMMAND",translate("Nagios command file")); + if ($intMethod == 1) { + if (file_exists($strCommandfile) && is_readable($strCommandfile) && is_writable($strCommandfile) && ($intDemonOk == 0)) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkgreen"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")); + } else if (file_exists($strCommandfile) && is_readable($strCommandfile) && is_writable($strCommandfile) && ($intDemonOk == 1)) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkorange"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")." (".translate("demon dead")."?)"); + } else if (!file_exists($strCommandfile)) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("file is missed").")"); + } else if (!is_writable($strCommandfile)) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("readonly").")"); + } else { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")); + } + } else if ($intMethod == 2) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkorange"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")." (".translate("not used with FTP").")"); + } else if ($intMethod == 3) { + if (is_array($myConfigClass->sendSSHCommand('ls '.$strCommandfile)) && ($intDemonOk == 0)) { + $timeout = 3; + $old = ini_set('default_socket_timeout', $timeout); + $resCmdFile = fopen($strCommandfile,"w"); + ini_set('default_socket_timeout', $old); + stream_set_timeout($resCmdFile, $timeout); + stream_set_blocking($resCmdFile, 0); + if ($resCmdFile) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkgreen"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("ok")); + fclose($resCmdFile); + } else { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("readonly").")"); + } + } else if ($intDemonOk == 1) { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("demon dead").")"); + } else { + $conttp->setVariable("RW_NAG_COMMAND_CLASS","checkred"); + $conttp->setVariable("RW_NAG_COMMAND_RESULT",translate("failed")." (".translate("file is missed").")"); + } + + } + // Binary file + $conttp->setVariable("EXE_NAG_BINARY",translate("Nagios binary file")); + if ($intMethod == 1) { + if (file_exists($strBinary) && is_executable($strBinary)) { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkgreen"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("ok")); + } else if (!file_exists($strBinary)) { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("file is missed").")"); + } else { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("not executable").")"); + } + } else if ($intMethod == 2) { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkorange"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("ok")." (".translate("not used with FTP").")"); + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intConfigId); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + if (($strBinary != "") && ($strConffile != "") && (is_array($myConfigClass->sendSSHCommand('ls '.$strBinary)))) { + $arrResult = $myConfigClass->sendSSHCommand($strBinary.' -V'); + if (!is_array($arrResult) || ($arrResult == false)) { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("not executable").")"); + } else { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkgreen"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("ok")); + } + } else { + $conttp->setVariable("EXE_NAG_BINARY_CLASS","checkred"); + $conttp->setVariable("EXE_NAG_BINARY_RESULT",translate("failed")." (".translate("file is missed").")"); + } + } + } + // Check config files + $myConfigClass->getConfigData($intConfigId,"basedir",$strBasedir); + $myConfigClass->getConfigData($intConfigId,"hostconfig",$strHostdir); + $myConfigClass->getConfigData($intConfigId,"serviceconfig",$strServicedir); + $conttp->setVariable("SUBTITLE_7",translate('Verify configuration files and demon configuration')); + $conttp->setVariable("CONFIGURATION_NAME",translate('Configuration name')); + $conttp->setVariable("USED",translate('Used in data domain')); + $conttp->setVariable("DEMON_CONFIG",translate('Included in demon configuration')." (".basename($strConffile).")"); + $arrConfigFiles = array ( + 'Hosts' => array( 'table' => 'tbl_host', 'file' => 'directory'), + 'Services' => array( 'table' => 'tbl_service', 'file' => 'directory'), + 'Hostgroups' => array( 'table' => 'tbl_hostgroup', 'file' => 'hostgroups.cfg'), + 'Servicegroups' => array( 'table' => 'tbl_servicegroup', 'file' => 'servicegroups.cfg'), + 'Hosttemplates' => array( 'table' => 'tbl_hosttemplate', 'file' => 'hosttemplates.cfg'), + 'servicetemplates' => array( 'table' => 'tbl_servicetemplate', 'file' => 'servicetemplates.cfg'), + 'Contacts' => array( 'table' => 'tbl_contact', 'file' => 'contacts.cfg'), + 'Contactgroups' => array( 'table' => 'tbl_contactgroup', 'file' => 'contactgroups.cfg'), + 'Timeperiods' => array( 'table' => 'tbl_timeperiod', 'file' => 'timeperiods.cfg'), + 'Contacttemplates' => array( 'table' => 'tbl_contacttemplate', 'file' => 'contacttemplates.cfg'), + 'Commands' => array( 'table' => 'tbl_command', 'file' => 'commands.cfg'), + 'Hostdependencies' => array( 'table' => 'tbl_hostdependency', 'file' => 'hostdependencies.cfg'), + 'Hostescalations' => array( 'table' => 'tbl_hostescalation', 'file' => 'hostescalations.cfg'), + 'Hostextinfo' => array( 'table' => 'tbl_hostextinfo', 'file' => 'hostextinfo.cfg'), + 'Servicedependencies' => array( 'table' => 'tbl_servicedependency', 'file' => 'servicedependencies.cfg'), + 'Serviceescalations' => array( 'table' => 'tbl_serviceescalation', 'file' => 'serviceescalations.cfg'), + 'Serviceextinfo' => array( 'table' => 'tbl_serviceextinfo', 'file' => 'serviceextinfo.cfg')); + if ($intMethod == 1) { + $intCheck = 1; + if (file_exists($strConffile) && is_readable($strConffile)) { + $resFile = fopen($strConffile,'r'); + while (!feof($resFile)) { + $strLine = trim(fgets($resFile)); + if ((substr($strLine,0,1) == 'c') && ((substr_count($strLine,'cfg_dir') != 0) || (substr_count($strLine,'cfg_file') != 0))) { + $arrConfig[] = $strLine; + } + } + $intCheck = 0; + fclose($resFile); + } + } else if (($intMethod == 2) || ($intMethod == 3)) { + $intCheck = 1; + // Write file to temporary + $strFileName = tempnam($SETS['path']['tempdir'], 'nagiosql_conf'); + // Copy configuration from remote system + $intReturn = $myConfigClass->configCopy($strConffile,$intConfigId,$strFileName,0); + if ($intReturn == 0) { + $intCheck = 0; + if (file_exists($strFileName) && is_readable($strFileName)) { + $resFile = fopen($strFileName,'r'); + while (!feof($resFile)) { + $strLine = trim(fgets($resFile)); + if ((substr($strLine,0,1) == 'c') && ((substr_count($strLine,'cfg_dir') != 0) || (substr_count($strLine,'cfg_file') != 0))) { + $arrConfig[] = $strLine; + } + } + fclose($resFile); + $intCheck = 0; + } + } else { + $intCheck = 1; + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + if (file_exists($strFileName)) unlink($strFileName); + } + } + $i = 0; + foreach ($arrConfigFiles AS $key => $elem){ + // Line colours + $strClassL = "tdlb"; $strClassM = "tdmb"; + if ($i%2 == 1) {$strClassL = "tdld"; $strClassM = "tdmd";} + $conttp->setVariable("CLASS_L",$strClassL); + $conttp->setVariable("CLASS_M",$strClassM); + // Write configuiration name + $conttp->setVariable("CONFIG_NAME",$key); + // Count active datasets + $strSQL = "SELECT * FROM `".$elem['table']."` WHERE `active`='1' AND `config_id`=$chkDomainId"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + $conttp->setVariable("ACTIVE_CONFIG_COUNT","".translate("ok")." (".$intDataCount.")"); + } else if ($intDataCount == 0) { + $conttp->setVariable("ACTIVE_CONFIG_COUNT","".translate("not used").""); + } else { + $conttp->setVariable("ACTIVE_CONFIG_COUNT","".translate("failed").""); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + $conttp->setVariable("DEMON_CFG_OK","".translate("failed")." (".translate("cfg definition missed").")"); + if (($intCheck == 0) && is_array($arrConfig) && (count($arrConfig) != 0)) { + foreach ($arrConfig AS $line) { + if ($elem['file'] != 'directory') { + if ((substr_count($line,"cfg_dir=".$strBasedir) != 0) && (substr_count($line,"cfg_dir=".substr($strHostdir,0,-1)) == 0) && + (substr_count($line,"cfg_dir=".substr($strServicedir,0,-1)) == 0)) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".$line.")"); + } else if (substr_count($line,$strBasedir.$elem['file']) != 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".$line.")"); + } else if ($intDataCount == 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".translate("cfg definition missed, but actually not used").")"); + } else if (substr_count($line,$elem['file']) != 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("failed")." (".translate("wrong base path:")." ".$line.")"); + } + } else if ($elem['table'] == 'tbl_host'){ + if (substr_count($line,"cfg_dir=".substr($strHostdir,0,-1)) != 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".$line.")"); + } else if ($intDataCount == 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".translate("cfg definition missed, but actually not used").")"); + } + } else if ($elem['table'] == 'tbl_service'){ + if (substr_count($line,"cfg_dir=".substr($strServicedir,0,-1)) != 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".$line.")"); + } else if ($intDataCount == 0) { + $conttp->setVariable("DEMON_CFG_OK","".translate("ok")." (".translate("cfg definition missed, but actually not used").")"); + } + } + } + } else { + $conttp->setVariable("DEMON_CFG_OK","".translate("failed")." (".translate("cfg file not readable").")"); + } + $conttp->parse("configfileline"); + $i++; + } + // Check for unused config + if (($intCheck == 0) && is_array($arrConfig) && (count($arrConfig) != 0)) { + foreach ($arrConfig AS $line) { + $intTest=0; + foreach ($arrConfigFiles AS $elem) { + if (substr_count($line,$elem['file']) != 0) $intTest = 1; + } + if ($intTest == 0) { + if (substr_count($line,substr("cfg_dir=".$strHostdir,0,-1)) != 0) $intTest = 1; + if (substr_count($line,substr("cfg_dir=".$strServicedir,0,-1)) != 0) $intTest = 1; + //if (substr_count($line,substr("cfg_dir=".$strBasedir,0,-1)) != 0) $intTest = 1; + } + if ($intTest == 0) { + // Line colours + $strClassL = "tdlb"; $strClassM = "tdmb"; + if ($i%2 == 1) {$strClassL = "tdld"; $strClassM = "tdmd";} + $conttp->setVariable("CLASS_L",$strClassL); + $conttp->setVariable("CLASS_M",$strClassM); + $conttp->setVariable("CONFIG_NAME",translate("Not used")); + $conttp->setVariable("ACTIVE_CONFIG_COUNT","".translate("failed").""); + $conttp->setVariable("DEMON_CFG_OK","".translate("unused - please delete!")." (".$line.")"); + $conttp->parse("configfileline"); + $i++; + } + } + } + $conttp->parse("configdomain"); +} + +// Messages +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +if ($strInfoMessage != "") $conttp->setVariable("INFOMESSAGE",$strInfoMessage); +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("support"); +$conttp->show("support"); +// +// Process footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/templatedefinitions.php b/admin/templatedefinitions.php new file mode 100644 index 0000000..25641d8 --- /dev/null +++ b/admin/templatedefinitions.php @@ -0,0 +1,249 @@ +getDataArray($strSQL,$arrDataLines,$intDataCount); + // + // Store data to session + // ============================ + if ($chkMode == "") { + $_SESSION['templatedefinition'] = ""; + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrDataLines AS $elem) { + if ($elem['idTable'] == 1) { + $strSQL2 = "SELECT `template_name` FROM `tbl_".$chkPreTab."template` WHERE `id` = ".$elem['idSlave']; + $strSQL3 = "SELECT `active` FROM `tbl_".$chkPreTab."template` WHERE `id` = ".$elem['idSlave']; + } else { + $strSQL2 = "SELECT `name` FROM `tbl_".$chkPreTab."` WHERE `id` = ".$elem['idSlave']; + $strSQL3 = "SELECT `active` FROM `tbl_".$chkPreTab."` WHERE `id` = ".$elem['idSlave']; + } + $arrTemp['idSlave'] = $elem['idSlave']; + $arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2)); + $arrTemp['idTable'] = $elem['idTable']; + $arrTemp['idSort'] = $elem['idSort']; + $arrTemp['active'] = $myDBClass->getFieldData($strSQL3)+0; + $arrTemp['status'] = 0; + $_SESSION['templatedefinition'][] = $arrTemp; + } + } + } +} +// +// Add mode +// ======== +if ($chkMode == "add") { + if ($arrDefinition[1] == 1) { + $strSQL2 = "SELECT `template_name` FROM `tbl_".$chkPreTab."template` WHERE `id` = ".$arrDefinition[0]; + $strSQL3 = "SELECT `active` FROM `tbl_".$chkPreTab."template` WHERE `id` = ".$arrDefinition[0]; + } else { + $strSQL2 = "SELECT `name` FROM `tbl_".$chkPreTab."` WHERE `id` = ".$arrDefinition[0]; + $strSQL3 = "SELECT `active` FROM `tbl_".$chkPreTab."` WHERE `id` = ".$arrDefinition[0]; + } + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) { + $intCheck = 0; + foreach ($_SESSION['templatedefinition'] AS $key => $elem) { + if (($elem['idSlave'] == $arrDefinition[0]) && ($elem['idTable'] == $arrDefinition[1]) && ($elem['status'] == 0)) { + $intCheck = 1; + } + } + if ($intCheck == 0) { + $arrTemp['idSlave'] = $arrDefinition[0]; + $arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2)); + $arrTemp['idTable'] = $arrDefinition[1]; + $arrTemp['idSort'] = 0; + $arrTemp['status'] = 0; + $arrTemp['active'] = $myDBClass->getFieldData($strSQL3)+0; + $_SESSION['templatedefinition'][] = $arrTemp; + } + } else { + $arrTemp['idSlave'] = $arrDefinition[0]; + $arrTemp['definition'] = addslashes($myDBClass->getFieldData($strSQL2)); + $arrTemp['idTable'] = $arrDefinition[1]; + $arrTemp['idSort'] = 0; + $arrTemp['status'] = 0; + $arrTemp['active'] = $myDBClass->getFieldData($strSQL3)+0; + $_SESSION['templatedefinition'][] = $arrTemp; + } +} +// +// Deletion mode +// ============= +if ($chkMode == "del") { + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) { + foreach ($_SESSION['templatedefinition'] AS $key => $elem) { + if (($elem['idSlave'] == $arrDefinition[0]) && ($elem['idTable'] == $arrDefinition[1]) && ($elem['status'] == 0)) { + $_SESSION['templatedefinition'][$key]['status'] = 1; + } + } + } +} +// +// Sort mode +// ========= +if ($chkMode == "sortup") { + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) { + $arrTemp = ""; + $arrWait = ""; + $intNow = 0; + foreach ($_SESSION['templatedefinition'] AS $key => $elem) { + if ($key != ($chkKey-1)) { + $arrTemp[] = $elem; + if ($intNow == 1) { + $intNow = 0; + $arrTemp[] = $arrWait; + } + } else { + $arrWait = $elem; + $intNow = 1; + } + } + $_SESSION['templatedefinition'] = $arrTemp; + } +} +if ($chkMode == "sortdown") { + if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) { + $arrTemp = ""; + $arrWait = ""; + $intNow = 0; + foreach ($_SESSION['templatedefinition'] AS $key => $elem) { + if ($key != $chkKey) { + $arrTemp[] = $elem; + if ($intNow == 1) { + $intNow = 0; + $arrTemp[] = $arrWait; + } + } else { + $arrWait = $elem; + $intNow = 1; + } + } + $_SESSION['templatedefinition'] = $arrTemp; + } +} +// +// Clean up data structure +// ======================= +if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition'])) { + $arrTemp = ""; + foreach ($_SESSION['templatedefinition'] AS $key => $elem) { + if ($elem['status'] == 0) { + $arrTemp[] = $elem; + } + } + $_SESSION['templatedefinition'] = $arrTemp; +} +?> + + + + + None + + + + + + $elem) { + if ($elem['status'] == 0) { +?> + + + + + + + + + + +
<?php echo translate('Up');?>')" style="cursor:pointer"> <?php echo translate('Down'); ?>')" style="cursor:pointer"> <?php echo translate('Delete'); ?>')" style="cursor:pointer">
 
+ + \ No newline at end of file diff --git a/admin/timedefinitions.php b/admin/timedefinitions.php new file mode 100644 index 0000000..6b0f75d --- /dev/null +++ b/admin/timedefinitions.php @@ -0,0 +1,183 @@ +getDataArray($strSQL,$arrDataLines,$intDataCount); +// +// Store data to session +// ============================ +if ($chkMode == "") { + $_SESSION['timedefinition'] = ""; + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrDataLines AS $elem) { + $arrTemp['id'] = $elem['id']; + $arrTemp['definition'] = addslashes($elem['definition']); + $arrTemp['range'] = addslashes($elem['range']); + $arrTemp['status'] = 0; + $_SESSION['timedefinition'][] = $arrTemp; + } + } +} +// +// Add mode +// ========= +if ($chkMode == "add") { + if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition'])) { + $intCheck = 0; + foreach ($_SESSION['timedefinition'] AS $key => $elem) { + if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) { + $_SESSION['timedefinition'][$key]['definition'] = $chkDef; + $_SESSION['timedefinition'][$key]['range'] = $chkRange; + $intCheck = 1; + } + } + if ($intCheck == 0) { + $arrTemp['id'] = 0; + $arrTemp['definition'] = $chkDef; + $arrTemp['range'] = $chkRange; + $arrTemp['status'] = 0; + $_SESSION['timedefinition'][] = $arrTemp; + } + } else { + $arrTemp['id'] = 0; + $arrTemp['definition'] = $chkDef; + $arrTemp['range'] = $chkRange; + $arrTemp['status'] = 0; + $_SESSION['timedefinition'][] = $arrTemp; + } +} +// +// Deletion mode +// ============= +if ($chkMode == "del") { + if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition'])) { + foreach ($_SESSION['timedefinition'] AS $key => $elem) { + if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) { + $_SESSION['timedefinition'][$key]['status'] = 1; + } + } + } +} +?> + + + + + None + + + + + + + + + + + + + + + + + + + +
<?php echo translate('Modify');?> <?php echo translate('Delete');?>
  
+ + \ No newline at end of file diff --git a/admin/timeperiods.php b/admin/timeperiods.php new file mode 100644 index 0000000..9488f35 --- /dev/null +++ b/admin/timeperiods.php @@ -0,0 +1,201 @@ +dataInsert($strSQL,$intInsertId); + if ($chkModus == "insert") $chkDataId = $intInsertId; + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $myDataClass->updateStatusTable($preTableName); + if ($chkModus == "insert") $myDataClass->writeLog(translate('New time period inserted:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('Time period modified:')." ".$chkTfValue1); + // + // Insert/update relations + // ======================= + if ($chkModus == "insert") { + if ($intMselValue1 != 0) $intRet1 = $myDataClass->dataInsertRelation("tbl_lnkTimeperiodToTimeperiod",$chkDataId,$chkMselValue1); + if (isset($intRet1) && ($intRet1 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) $intRet2 = $myDataClass->dataInsertRelation("tbl_lnkTimeperiodToTimeperiodUse",$chkDataId,$chkMselValue2); + if (isset($intRet2) && ($intRet2 != 0)) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else if ($chkModus == "modify") { + if ($intMselValue1 != 0) { + $intRet1 = $myDataClass->dataUpdateRelation("tbl_lnkTimeperiodToTimeperiod",$chkDataId,$chkMselValue1); + } else { + $intRet1 = $myDataClass->dataDeleteRelation("tbl_lnkTimeperiodToTimeperiod",$chkDataId); + } + if ($intRet1 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intMselValue2 != 0) { + $intRet2 = $myDataClass->dataUpdateRelation("tbl_lnkTimeperiodToTimeperiodUse",$chkDataId,$chkMselValue2); + } else { + $intRet2 = $myDataClass->dataDeleteRelation("tbl_lnkTimeperiodToTimeperiodUse",$chkDataId); + } + if ($intRet2 != 0) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (($intRet1 + $intRet2) != 0) $strInfoMessage = ""; + // + // Insert/update time defintions + // ============================= + if ($chkModus == "modify") { + $strSQL = "DELETE FROM `tbl_timedefinition` WHERE `tipId`=$chkDataId"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + if (isset($_SESSION['timedefinition']) && is_array($_SESSION['timedefinition']) && (count($_SESSION['timedefinition']) != 0)) { + foreach($_SESSION['timedefinition'] AS $elem) { + if ($elem['status'] == 0) { + if ($elem['definition'] != "use") { + $elem['range'] = str_replace(" ","",$elem['range']); + } + $strSQL = "INSERT INTO `tbl_timedefinition` (`tipId`,`definition`,`range`,`last_modified`) + VALUES ($chkDataId,'".$elem['definition']."','".$elem['range']."',now())"; + $booReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($booReturn == false) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } + } + } + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Get date/time of last database and config file manipulation +// =========================================================== +$intReturn = $myConfigClass->lastModifiedFile($preTableName,$arrTimeData,$strTimeInfoString); +if ($intReturn != 0) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('Timeperiod definitions')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Do not show modified time list + $intNoTime = 1; + // Process exclude selection fields + if (isset($arrModifyData['exclude'])) {$intFieldId = $arrModifyData['exclude'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,'name','excludes','tbl_lnkTimeperiodToTimeperiod',0,$intFieldId,$chkListId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process include selection fields + if (isset($arrModifyData['use_template'])) {$intFieldId = $arrModifyData['use_template'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectMulti($preTableName,'name','uses','tbl_lnkTimeperiodToTimeperiodUse',0,$intFieldId,$chkListId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process acces group selection field + if (isset($arrModifyData['access_group'])) {$intFieldId = $arrModifyData['access_group'];} else {$intFieldId = 0;} + $intReturn = $myVisClass->parseSelectSimple('tbl_group','groupname','acc_group',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + if ($intDataWarning == 1) $conttp->setVariable("WARNING",$strDBWarning."
".translate('Saving not possible!')); + if ($intVersion != 3) $conttp->setVariable("VERSION_20_VALUE_MUST","mselValue1,"); + $conttp->setVariable("LANG_INSERT_ALL_TIMERANGE",translate('Please insert a time definition and a time range')); + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Check relation information to find out locked configuration datasets + $intLocked = $myDataClass->infoRelation($preTableName,$arrModifyData['id'],$preKeyField); + $myVisClass->processMessage($myDataClass->strInfoMessage,$strRelMessage); + $strInfo = "
".translate('Entry cannot be activated because it is used by another configuration').":"; + $strInfo .= "
".$strRelMessage.""; + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,$intLocked,$strInfo); + $conttp->setVariable("TIP_ID",$arrModifyData['id']); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// List view +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Time period')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Process filter string + if ($_SESSION['search'][$preSearchSession] != "") { + $strSearchTxt = $_SESSION['search'][$preSearchSession]; + $strSearchWhere = "AND (`$preKeyField` LIKE '%".$strSearchTxt."%' OR `alias` LIKE '%".$strSearchTxt."%' OR `name` LIKE '%".$strSearchTxt."%')"; + } + // Row sorting + $strOrderString = "ORDER BY `config_id`, `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `config_id`, `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere AND `access_group` IN ($strAccess)"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `register`, `active`, `config_id`, `access_group` FROM `$preTableName` WHERE $strDomainWhere $strSearchWhere + AND `access_group` IN ($strAccess) $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/tools.php b/admin/tools.php new file mode 100644 index 0000000..6c00a06 --- /dev/null +++ b/admin/tools.php @@ -0,0 +1,43 @@ +setVariable("TITLE",translate('Different tools')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("DESC",translate('Useful functions for data import, main configuration, daemon control and so on.')); +$conttp->parse("main"); +$conttp->show("main"); +// +// Include Footer +// ============== +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/user.php b/admin/user.php new file mode 100644 index 0000000..639f4a0 --- /dev/null +++ b/admin/user.php @@ -0,0 +1,175 @@ + 5)) || (($chkModus == "modify") && ($chkTfValue3 == ""))) { + if ($chkTfValue3 == "") {$strPasswd = "";} else {$strPasswd = "`password`=MD5('$chkTfValue3'),";} + // Grant admin rights + if ($chkTfValue5 == "Admin") { + $chkTfValue1 = "Admin"; + $chkActive = "1"; + $chkChbValue1 = "1"; + } + $strSQLx = "`$preTableName` SET `$preKeyField`='$chkTfValue1', `alias`='$chkTfValue2', $strPasswd `admin_enable`='$chkChbValue1', + `wsauth`='$chkChbValue2', `active`='$chkActive', `language`='$chkSelValue1', `domain`='$chkSelValue2', `last_modified`=NOW()"; + if ($chkModus == "insert") { + $strSQL = "INSERT INTO ".$strSQLx; + } else { + $strSQL = "UPDATE ".$strSQLx." WHERE `id`=$chkDataId"; + } + if ($intWriteAccessId == 0) { + if (($chkTfValue1 != "") && ($chkTfValue2 != "")) { + $intReturn = $myDataClass->dataInsert($strSQL,$intInsertId); + if ($intReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + if ($chkModus == "insert") $myDataClass->writeLog(translate('A new user added:')." ".$chkTfValue1); + if ($chkModus == "modify") $myDataClass->writeLog(translate('User modified:')." ".$chkTfValue1); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! Not all necessary data filled in!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Database entry failed! No write access!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Password too short or password fields unequally!'),$strErrorMessage); + } + $chkModus = "display"; +} +if ($chkModus != "add") $chkModus = "display"; +// +// Start content +// ============= +$conttp->setVariable("TITLE",translate('User administration')); +$conttp->parse("header"); +$conttp->show("header"); +// +// Singe data form +// =============== +if ($chkModus == "add") { + // Process domain selection field + if (isset($arrModifyData['domain'])) {$intFieldId = $arrModifyData['domain'];} else {$intFieldId = 1;} + $intReturn = $myVisClass->parseSelectSimple('tbl_datadomain','domain','std_domain',0,$intFieldId,0); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Process language selection field + if (isset($arrModifyData['language'])) {$intFieldId = $arrModifyData['language'];} else {$intFieldId = 0;} + if ($intFieldId == 0) { + $intFieldId = $myDBClass->getFieldData("SELECT `id` FROM `tbl_language` WHERE `locale`='".$_SESSION['SETS']['data']['locale']."'")+0; + } + $intReturn = $myVisClass->parseSelectSimple('tbl_language','language','language_name',0,$intFieldId); + if ($intReturn != 0) $myVisClass->processMessage($myVisClass->strErrorMessage,$strErrorMessage); + // Initial add/modify form definitions + $myContentClass->addFormInit($conttp); + $conttp->setVariable("WSAUTH_DISABLE","disabled"); + $conttp->setVariable("FILL_ALLFIELDS",translate('Please fill in all fields marked with an *')); + $conttp->setVariable("FILL_ILLEGALCHARS",translate('The following field contains not permitted characters:')); + $conttp->setVariable("FILL_PASSWD_NOT_EQUAL",translate('The passwords are not equal!')); + $conttp->setVariable("FILL_PASSWORD",translate('Please fill in the password')); + $conttp->setVariable("FILL_PWDSHORT",translate('The password is too short - use at least 6 characters!')); + $conttp->setVariable("LANG_WEBSERVER_AUTH",translate('Webserver authentification')); + $conttp->setVariable("PASSWORD_MUST","class=\"inpmust\""); + $conttp->setVariable("PASSWORD_MUST_STAR","*"); + // If webserver authetification is enabled - show option field + if (isset($SETS['security']['wsauth']) && ($SETS['security']['wsauth'] == 1)) { + $conttp->setVariable("WSAUTH_DISABLE",""); + } + // Insert data from database in "modify" mode + if (isset($arrModifyData) && ($chkSelModify == "modify")) { + // Process data + $myContentClass->addInsertData($conttp,$arrModifyData,0,''); + // Webserver authentification + $conttp->setVariable("WSAUTH_CHECKED",""); + if ($arrModifyData['wsauth'] == 1) $conttp->setVariable("WSAUTH_CHECKED","checked"); + // Object based group administration + $conttp->setVariable("ADMINENABLE_CHECKED",""); + if ($arrModifyData['admin_enable'] == 1) $conttp->setVariable("ADMINENABLE_CHECKED","checked"); + // Admin rules + if ($arrModifyData[$preKeyField] == "Admin") { + $conttp->setVariable("NAME_DISABLE","disabled"); + $conttp->setVariable("ACT_DISABLE","disabled"); + $conttp->setVariable("WSAUTH_DISABLE","disabled"); + $conttp->setVariable("ADMINENABLE_DISABLE","disabled"); + $conttp->setVariable("ADMINENABLE_CHECKED","checked"); + } + $conttp->setVariable("PASSWORD_MUST",""); + $conttp->setVariable("PASSWORD_MUST_STAR",""); + } + $conttp->parse("datainsert"); + $conttp->show("datainsert"); +} +// +// Data table +// ========== +if ($chkModus == "display") { + // Initial list view definitions + $myContentClass->listViewInit($mastertp); + $mastertp->setVariable("FIELD_1",translate('Username')); + $mastertp->setVariable("FIELD_2",translate('Description')); + // Row sorting + $strOrderString = "ORDER BY `$preKeyField` $hidSortDir"; + if ($hidSortBy == 2) $strOrderString = "ORDER BY `alias` $hidSortDir"; + // Count datasets + $strSQL = "SELECT count(*) AS `number` FROM `$preTableName`"; + $booReturn = $myDBClass->getSingleDataset($strSQL,$arrDataLinesCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intLineCount = (int)$arrDataLinesCount['number']; + if ($intLineCount < $chkLimit) $chkLimit = 0; + } + // Get datasets + $strSQL = "SELECT `id`, `$preKeyField`, `alias`, `active`, `nodelete` + FROM `$preTableName` $strOrderString LIMIT $chkLimit,".$SETS['common']['pagelines']; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } + // Process data + $myContentClass->listData($mastertp,$arrDataLines,$intDataCount,$intLineCount,$preKeyField,'alias'); +} +// Show messages +$myContentClass->showMessages($mastertp,$strErrorMessage,$strInfoMessage,$strConsistMessage,'','',1); +// +// Process footer +// ============== +$myContentClass->showFooter($maintp,$setFileVersion); +?> \ No newline at end of file diff --git a/admin/variabledefinitions.php b/admin/variabledefinitions.php new file mode 100644 index 0000000..ad0f6d0 --- /dev/null +++ b/admin/variabledefinitions.php @@ -0,0 +1,150 @@ +getDataArray($strSQL,$arrDataLines,$intDataCount); + // + // Store data to session + // ============================ + if ($chkMode == "") { + $_SESSION['variabledefinition'] = ""; + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrDataLines AS $elem) { + $arrTemp['id'] = $elem['id']; + $arrTemp['definition'] = addslashes($elem['name']); + $arrTemp['range'] = addslashes($elem['value']); + $arrTemp['status'] = 0; + $_SESSION['variabledefinition'][] = $arrTemp; + } + } + } +} +// +// Add mode +// ======== +if ($chkMode == "add") { + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition'])) { + $intCheck = 0; + foreach ($_SESSION['variabledefinition'] AS $key => $elem) { + if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) { + $_SESSION['variabledefinition'][$key]['definition'] = $chkDef; + $_SESSION['variabledefinition'][$key]['range'] = $chkRange; + $intCheck = 1; + } + } + if ($intCheck == 0) { + $arrTemp['id'] = 0; + $arrTemp['definition'] = $chkDef; + $arrTemp['range'] = $chkRange; + $arrTemp['status'] = 0; + $_SESSION['variabledefinition'][] = $arrTemp; + } + } else { + $arrTemp['id'] = 0; + $arrTemp['definition'] = $chkDef; + $arrTemp['range'] = $chkRange; + $arrTemp['status'] = 0; + $_SESSION['variabledefinition'][] = $arrTemp; + } +} +// +// Deletion mode +// ============= +if ($chkMode == "del") { + if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition'])) { + foreach ($_SESSION['variabledefinition'] AS $key => $elem) { + if (($elem['definition'] == $chkDef) && ($elem['status'] == 0)) { + $_SESSION['variabledefinition'][$key]['status'] = 1; + } + } + } +} +?> + + + + + None + + + + + + + + + + + + + + + + + + +
<?php echo translate('Modify'); ?> <?php echo translate('Delete'); ?>
  
+ + \ No newline at end of file diff --git a/admin/verify.php b/admin/verify.php new file mode 100644 index 0000000..3dba235 --- /dev/null +++ b/admin/verify.php @@ -0,0 +1,492 @@ +getConfigSets(); +$intConfigId = $arrConfigSet[0]; +$myConfigClass->getConfigData($intConfigId,"method",$intMethod); +// +// Process form variables +// ====================== +$intProcessError = 0; +// Write monitoring data +if ($chkButValue1 != "") { + $strNoData = translate('Writing of the configuration failed - no dataset or not activated dataset found')."::"; + // Write host configuration + $strSQL = "SELECT `id` FROM `tbl_host` WHERE `config_id` = $chkDomainId AND `active`='1'"; + $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + $intError = 0; + if ($intDataCount != 0) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("tbl_host",$data['id']); + $intError += $intReturn; + } + } + if (($intError == 0) && ($intDataCount != 0)) { + $myVisClass->processMessage(translate("Write host configurations")." ...",$strInfo); + $myVisClass->processMessage("Hosts: ".translate("Configuration file successfully written!"),$strInfo); + } else if ($intDataCount != 0) { + $myVisClass->processMessage("Hosts: ".translate("Cannot open/overwrite the configuration file (check the permissions)!"),$strErrorMessage); + $intProcessError = 1; + } else { + $myVisClass->processMessage("Hosts: ".translate("No configuration items defined!"),$strErrorMessage); + $intProcessError = 1; + } + // Write service configuration + $strSQL = "SELECT `id`, `config_name` FROM `tbl_service` WHERE `config_id` = $chkDomainId AND `active`='1' GROUP BY `config_name`"; + $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + $intError = 0; + if ($intDataCount != 0) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("tbl_service",$data['id']); + $intError += $intReturn; + } + } + if (($intError == 0) && ($intDataCount != 0)) { + $myVisClass->processMessage(translate("Write service configurations")." ...",$strInfo); + $myVisClass->processMessage("Services: ".translate("Configuration file successfully written!"),$strInfo); + } else if ($intDataCount != 0) { + $myVisClass->processMessage("Services: ".translate("Cannot open/overwrite the configuration file (check the permissions)!"),$strErrorMessage); + $intProcessError = 1; + } else { + $myVisClass->processMessage("Services: ".translate("No configuration items defined!"),$strErrorMessage); + $intProcessError = 1; + } + // Write hostgroup configuration + $intReturn = $myConfigClass->createConfig("tbl_hostgroup"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." hostgroups.cfg ...",$strInfo); + $myVisClass->processMessage("Hostgroups: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." hostgroups.cfg ...",$strInfo); + $myVisClass->processMessage("Hostgroups: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Hostgroups: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write servicegroup configuration + $intReturn = $myConfigClass->createConfig("tbl_servicegroup"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." servicegroups.cfg ...",$strInfo); + $myVisClass->processMessage("Servicegroups: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." servicegroups.cfg ...",$strInfo); + $myVisClass->processMessage("Servicegroups: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Servicegroups: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write hosttemplate configuration + $intReturn = $myConfigClass->createConfig("tbl_hosttemplate"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." hosttemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Hosttemplates: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." hosttemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Hosttemplates: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Hosttemplates: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write servicetemplate configuration + $intReturn = $myConfigClass->createConfig("tbl_servicetemplate"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." servicetemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Servicetemplates: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." servicetemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Servicetemplates: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Servicetemplates: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } +} +// Write additional data +if ($chkButValue2 != "") { + $strNoData = translate('Writing of the configuration failed - no dataset or not activated dataset found')."::"; + // Write timeperiod configuration + $intReturn = $myConfigClass->createConfig("tbl_timeperiod"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." timeperiods.cfg ...",$strInfo); + $myVisClass->processMessage("Timeperiods: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + $myVisClass->processMessage("Timeperiods: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + // Write command configuration + $intReturn = $myConfigClass->createConfig("tbl_command"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." commands.cfg ...",$strInfo); + $myVisClass->processMessage("Commands: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + $myVisClass->processMessage("Commands: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + // Write contact configuration + $intReturn = $myConfigClass->createConfig("tbl_contact"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." contacts.cfg ...",$strInfo); + $myVisClass->processMessage("Contacts: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + $myVisClass->processMessage("Contacts: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + // Write contactgroup configuration + $intReturn = $myConfigClass->createConfig("tbl_contactgroup"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." contactgroups.cfg ...",$strInfo); + $myVisClass->processMessage("Contactgroups: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + $myVisClass->processMessage("Contactgroups: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + // Write contacttemplate configuration + $intReturn = $myConfigClass->createConfig("tbl_contacttemplate"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." contacttemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Contacttemplates: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." contacttemplates.cfg ...",$strInfo); + $myVisClass->processMessage("Contacttemplates: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Contacttemplates: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write servicedependency configuration + $intReturn = $myConfigClass->createConfig("tbl_servicedependency"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." servicedependencies.cfg ...",$strInfo); + $myVisClass->processMessage("Servicedependencies: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." servicedependencies.cfg ...",$strInfo); + $myVisClass->processMessage("Servicedependencies: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Servicedependencies: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write hostdependency configuration + $intReturn = $myConfigClass->createConfig("tbl_hostdependency"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." hostdependencies.cfg ...",$strInfo); + $myVisClass->processMessage("Hostdependencies: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." hostdependencies.cfg ...",$strInfo); + $myVisClass->processMessage("Hostdependencies: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Hostdependencies: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write serviceescalation configuration + $intReturn = $myConfigClass->createConfig("tbl_serviceescalation"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." serviceescalations.cfg ...",$strInfo); + $myVisClass->processMessage("Serviceescalations: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." serviceescalations.cfg ...",$strInfo); + $myVisClass->processMessage("Serviceescalations: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Serviceescalations: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write hostescalation configuration + $intReturn = $myConfigClass->createConfig("tbl_hostescalation"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." hostescalations.cfg ...",$strInfo); + $myVisClass->processMessage("Hostescalations: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." hostescalations.cfg ...",$strInfo); + $myVisClass->processMessage("Hostescalations: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Hostescalations: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write serviceextinfo configuration + $intReturn = $myConfigClass->createConfig("tbl_serviceextinfo"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." serviceextinfo.cfg ...",$strInfo); + $myVisClass->processMessage("Serviceextinfo: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." serviceextinfo.cfg ...",$strInfo); + $myVisClass->processMessage("Serviceextinfo: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Serviceextinfo: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } + // Write hostextinfo configuration + $intReturn = $myConfigClass->createConfig("tbl_hostextinfo"); + if ($intReturn == 0) { + $myVisClass->processMessage(translate("Write")." hostextinfo.cfg ...",$strInfo); + $myVisClass->processMessage("Hostextinfo: ".$myConfigClass->strInfoMessage,$strInfo); + } else { + if ($myConfigClass->strErrorMessage == $strNoData) { + $myVisClass->processMessage(translate("Write")." hostextinfo.cfg ...",$strInfo); + $myVisClass->processMessage("Hostextinfo: ".translate('No dataset or no activated dataset found - empty configuration written')."::",$strInfo); + } else { + $myVisClass->processMessage("Hostextinfo: ".$myConfigClass->strErrorMessage,$strErrorMessage); + $intProcessError = 1; + } + } +} +// Check configuration +if ($chkButValue3 != "") { + $myConfigClass->getConfigData($intConfigId,"binaryfile",$strBinary); + $myConfigClass->getConfigData($intConfigId,"basedir",$strBaseDir); + $myConfigClass->getConfigData($intConfigId,"nagiosbasedir",$strNagiosBaseDir); + $myConfigClass->getConfigData($intConfigId,"conffile",$strConffile); + if ($intMethod == 1) { + if (file_exists($strBinary) && is_executable($strBinary)) { + $resFile = popen($strBinary." -v ".$strConffile,"r"); + } else { + $myVisClass->processMessage(translate('Cannot find the Nagios binary or no rights for execution!'),$strErrorMessage); + } + } else if ($intMethod == 2) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getFTPConnection($intConfigId); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!($resFile = ftp_exec($myConfigClass->resConnectId,$strBinary.' -v '.$strConffile))) { + $myVisClass->processMessage(translate('Remote execution (FTP SITE EXEC) is not supported on your system!'),$strErrorMessage); + } + ftp_close($conn_id); + error_reporting($intErrorReporting); + } + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intConfigId); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + if (($strBinary != "") && ($strConffile != "") && (is_array($myConfigClass->sendSSHCommand('ls '.$strBinary))) && + (is_array($myConfigClass->sendSSHCommand('ls '.$strConffile)))) { + $arrResult = $myConfigClass->sendSSHCommand($strBinary.' -v '.$strConffile,15000); + if (!is_array($arrResult) || ($arrResult == false)) { + $myVisClass->processMessage(translate('Remote execution of nagios verify command failed (remote SSH)!'),$strErrorMessage); + } + } else { + $myVisClass->processMessage(translate('Nagios binary or configuration file not found (remote SSH)!'),$strErrorMessage); + } + } + } +} +// Restart nagios +if ($chkButValue4 != "") { + // Read config file + $myConfigClass->getConfigData($intConfigId,"commandfile",$strCommandfile); + $myConfigClass->getConfigData($intConfigId,"binaryfile",$strBinary); + $myConfigClass->getConfigData($intConfigId,"pidfile",$strPidfile); + // Check state nagios demon + clearstatcache(); + if ($intMethod == 1) { + if (substr_count(PHP_OS,"Linux") != 0) { + exec('ps -ef | grep '.basename($strBinary).' | grep -v grep',$arrExec); + } else { + $arrExec[0] = 1; + } + if (file_exists($strPidfile) && isset($arrExec[0])) { + if (file_exists($strCommandfile) && is_writable($strCommandfile)) { + $strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); + $timeout = 3; + $old = ini_set('default_socket_timeout', $timeout); + $resCmdFile = fopen($strCommandfile,"w"); + ini_set('default_socket_timeout', $old); + stream_set_timeout($resCmdFile, $timeout); + stream_set_blocking($resCmdFile, 0); + if ($resCmdFile) { + fputs($resCmdFile,$strCommandString); + fclose($resCmdFile); + $myDataClass->writeLog(translate('Nagios daemon successfully restarted')); + $myVisClass->processMessage(translate('Restart command successfully send to Nagios'),$strInfoMessage); + } else { + $myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no rights to execute')); + $myVisClass->processMessage(translate('Nagios command file not found or no rights to write!'),$strErrorMessage); + } + } else { + + $myDataClass->writeLog(translate('Restart failed - Nagios command file not found or no rights to execute')); + $myVisClass->processMessage(translate('Restart failed - Nagios command file not found or no rights to execute'),$strErrorMessage); + } + } else { + $myDataClass->writeLog(translate('Restart failed - Nagios daemon was not running')); + $myVisClass->processMessage(translate('Nagios daemon is not running, cannot send restart command!'),$strErrorMessage); + } + } else if ($intMethod == 2) { + $myDataClass->writeLog(translate('Restart failed - FTP restrictions')); + $myVisClass->processMessage(translate('Nagios restart is not possible via FTP remote connection!'),$strErrorMessage); + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intConfigId); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + if (is_array($myConfigClass->sendSSHCommand('ls '.$strCommandfile))) { + $strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); + $arrInfo = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile); + $intFileStamp1 = $arrInfo['mtime']; + $arrResult = $myConfigClass->sendSSHCommand('echo "'.$strCommandString.'" >> '.$strCommandfile); + $arrInfo = ssh2_sftp_stat($myConfigClass->resSFTP, $strCommandfile); + $intFileStamp2 = $arrInfo['mtime']; + if ($intFileStamp2 <= $intFileStamp1) { + $myVisClass->processMessage(translate('Restart failed - Nagios command file not found or no rights to execute (remote SSH)!'),$strErrorMessage); + } else { + $myDataClass->writeLog(translate('Nagios daemon successfully restarted (remote SSH)')); + $myVisClass->processMessage(translate('Restart command successfully send to Nagios (remote SSH)'),$strInfoMessage); + } + } else { + $myVisClass->processMessage(translate('Nagios command file not found (remote SSH)!'),$strErrorMessage); + } + } + } +} +// +// include content +// =============== +$conttp->setVariable("TITLE",translate('Check written configuration files')); +$conttp->parse("header"); +$conttp->show("header"); +$conttp->setVariable("CHECK_CONFIG",translate('Check configuration files:')); +$conttp->setVariable("RESTART_NAGIOS",translate('Restart Nagios:')); +$conttp->setVariable("WRITE_MONITORING_DATA",translate('Write monitoring data')); +$conttp->setVariable("WRITE_ADDITIONAL_DATA",translate('Write additional data')); +if (($chkButValue3 == "") && ($chkButValue4 == "")) $conttp->setVariable("WARNING",translate('Warning, always check the configuration files before restart Nagios!')); +$conttp->setVariable("MAKE",translate('Do it')); +$conttp->setVariable("IMAGE_PATH",$_SESSION['SETS']['path']['base_url']."images/"); +$conttp->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); +$strOutput = ""; +if (isset($resFile) && ($resFile != false)){ + $intError = 0; + $intWarning = 0; + while(!feof($resFile)) { + $strLine = fgets($resFile,1024); + if ((substr_count($strLine,"Error:") != 0) || (substr_count($strLine,"Total Errors:") != 0)) { + $conttp->setVariable("VERIFY_CLASS","errormessage"); + $conttp->setVariable("VERIFY_LINE",$strLine); + $conttp->parse("verifyline"); + $intError++; + if (substr_count($strLine,"Total Errors:") != 0) $intError--; + } + if ((substr_count($strLine,"Warning:") != 0) || (substr_count($strLine,"Total Warnings:") != 0)) { + $conttp->setVariable("VERIFY_CLASS","warnmessage"); + $conttp->setVariable("VERIFY_LINE",$strLine); + $conttp->parse("verifyline"); + $intWarning++; + if (substr_count($strLine,"Total Warnings:") != 0) $intWarning--; + } + $strOutput .= $strLine."
"; + } + $myDataClass->writeLog(translate('Written Nagios configuration checked - Warnings/Errors:')." ".$intWarning."/".$intError); + pclose($resFile); + if (($intError == 0) && ($intWarning == 0)) { + $conttp->setVariable("VERIFY_CLASS","greenmessage"); + $conttp->setVariable("VERIFY_LINE","".translate('Written configuration files are valid, Nagios can be restarted!').""); + $conttp->parse("verifyline"); + } + $conttp->setVariable("DATA",$strOutput); + $conttp->parse("verifyline"); +} else if (isset($arrResult) && is_array($arrResult)) { + $intError = 0; + $intWarning = 0; + foreach ($arrResult AS $elem) { + if ((substr_count($elem,"Error:") != 0) || (substr_count($elem,"Total Errors:") != 0)) { + $conttp->setVariable("VERIFY_CLASS","errormessage"); + $conttp->setVariable("VERIFY_LINE",$elem); + $conttp->parse("verifyline"); + $intError++; + if (substr_count($elem,"Total Errors:") != 0) $intError--; + } + if ((substr_count($elem,"Warning:") != 0) || (substr_count($elem,"Total Warnings:") != 0)) { + $conttp->setVariable("VERIFY_CLASS","warnmessage"); + $conttp->setVariable("VERIFY_LINE",$elem); + $conttp->parse("verifyline"); + $intWarning++; + if (substr_count($elem,"Total Warnings:") != 0) $intWarning--; + } + $strOutput .= $elem."
"; + } + $myDataClass->writeLog(translate('Written Nagios configuration checked - Warnings/Errors:')." ".$intWarning."/".$intError); + if (($intError == 0) && ($intWarning == 0)) { + $conttp->setVariable("VERIFY_CLASS","greenmessage"); + $conttp->setVariable("VERIFY_LINE","".translate('Written configuration files are valid, Nagios can be restarted!').""); + $conttp->parse("verifyline"); + } + $conttp->setVariable("DATA",$strOutput); + $conttp->parse("verifyline"); + +} +if ($strErrorMessage != "") $conttp->setVariable("ERRORMESSAGE",$strErrorMessage); +$conttp->setVariable("INFOMESSAGE",$strInfoMessage); +if ($strInfo != "") { + $conttp->setVariable("VERIFY_CLASS","greenmessage"); + $conttp->setVariable("VERIFY_LINE","
".$strInfo); + $conttp->parse("verifyline"); +} +// Check access rights for adding new objects +if ($myVisClass->checkAccGroup($prePageKey,'write') != 0) $conttp->setVariable("ADD_CONTROL","disabled=\"disabled\""); +$conttp->parse("main"); +$conttp->show("main"); +// +// Insert footer +// ============= +$maintp->setVariable("VERSION_INFO","NagiosQL $setFileVersion"); +$maintp->parse("footer"); +$maintp->show("footer"); +?> \ No newline at end of file diff --git a/admin/versioncheck.php b/admin/versioncheck.php new file mode 100644 index 0000000..cfe0adb --- /dev/null +++ b/admin/versioncheck.php @@ -0,0 +1,173 @@ + array( + 'proxy' => 'tcp://'.$SETS['network']['proxyserver'], + 'request_fulluri' => true, + 'header' => "Proxy-Authorization: Basic $strProxyAuth", + 'timeout' => 1, + ), + ); + } else { + $aContext = array( + 'http' => array( + 'proxy' => 'tcp://'.$SETS['network']['proxyserver'], + 'request_fulluri' => true, + 'timeout' => 1, + ), + ); + } + $intErrorReporting = error_reporting(); + error_reporting(0); + $cxContext = stream_context_create($aContext); + $arrFile = file($versionfeed, false, $cxContext); + $arrError = error_get_last(); + error_reporting($intErrorReporting); + if ($arrError['message'] != "") $strError .= utf8_encode($arrError['message'])." (".translate("check proxy settings").")"; + } else { + $intErrorReporting = error_reporting(); + error_reporting(0); + $cxContext = stream_context_create(array('http' => array('timeout' => 1))); + $arrFile = file($versionfeed, false, $cxContext); + $arrError = error_get_last(); + error_reporting($intErrorReporting); + if ($arrError['message'] != "") $strError .= utf8_encode($arrError['message'])." (".translate("check proxy settings").")"; + + } + $strInstalled = translate('Installed'); + $strAvailable = translate('Available'); + $strInformation = translate('Information'); + $strVersion = ""; + $strRelease = ""; + $strRelInfo = ""; + if (is_array($arrFile) && (count($arrFile)) != 0) { + foreach ($arrFile AS $elem) { + if (substr_count($elem,"version") != 0) $strVersion = trim(strip_tags($elem)); + if (substr_count($elem,"release_date") != 0) $strRelease = trim(strip_tags($elem)); + if (substr_count($elem,"error") != 0) $strError = trim(strip_tags($elem)); + if (substr_count($elem,"information") != 0) $strRelInfo = trim(strip_tags($elem)); + } + } + $setFileAvailable = $strVersion; + if (version_compare($strVersion, $setFileVersion,'==')) { + $setFileInformation = "".translate('You already have the latest version installed').""; + } else if (version_compare($strVersion, $setFileVersion,'>=')) { + $setFileInformation = "".translate('You are using an old NagiosQL version. Please update to the latest stable version').": "; + $setFileInformation .= "NagiosQL on Sourceforge"; + } else if (version_compare($strVersion, $setFileVersion,'<=')) { + $setFileInformation = "".translate('You are using a newer development version without official support').""; + } + if (($strError != "none") && ($strError != "")) $setFileInformation = "".$strError.""; +?> + + + + Version check + + + + + + + + + + + + + + + + + +
+ + + + + + + + Commandline + + + + +


Loading...

+ + + \ No newline at end of file diff --git a/config/content.css b/config/content.css new file mode 100644 index 0000000..bf4a3bc --- /dev/null +++ b/config/content.css @@ -0,0 +1,473 @@ +@charset "utf-8"; +/*///////////////////////////////////////////////////////////////////////////// +// +// NagiosQL +// +/////////////////////////////////////////////////////////////////////////////// +// +// (c) 2005-2012 by Martin Willisegger +// +// Project : NagiosQL +// Component : CSS content definition +// Website : http://www.nagiosql.org +// Date : $LastChangedDate: 2011-10-27 09:50:16 +0200 (Thu, 27 Oct 2011) $ +// Author : $LastChangedBy: martin $ +// Version : 3.2.0 +// Revision : $LastChangedRevision: 1111 $ +// +/////////////////////////////////////////////////////////////////////////////*/ +/* Content main div */ +#content_main { + top:-3px; + left:0px; + width:890px; + padding: 0px; + margin: 0px; + padding-left: 10px; + position:relative; + font-size: 12px; +} +/* Content title (list and single view) */ +#content_title { + color: #0c4271; + margin:0px; + padding:0px; + margin-top:0px; + margin-left:2px; + font-size:20px; + font-weight:bold; + font-family:Arial, Helvetica, sans-serif; + padding-bottom:5px; +} +/* Content special definitions */ +.elementHide { + display:none; +} +.elementShow {} +.redmessage { + color: #FF0000; +} +.greenmessage { + color: #009900; +} +.blackmessage { + color:#000000; +} +.bluemessage { + color:#0000FF; +} +.checkred { + color: #FF0000; + font-weight:bold; +} +.checkgreen { + color: #009900; + font-weight:bold; +} +.checkorange { + color: #FF9900; + font-weight:bold; +} +.env_table { + padding-top:10px; +} +.env_table td { + font-size: 12px; + padding:2px; +} +#content_main .warnmessage { + font-size: 12px; + color: #FF9900; + font-weight: bold; +} +#content_main .errormessage { + font-size: 12px; + color: #FF0000; + font-weight: bold; +} +#content_main .pagelinks { + font-size: 12px; + color: #006600; + margin: 0 auto; + width: 25%; +} +/* Content tags */ +#content_main h2 { + font-size: 14px; + margin-bottom:0px; +} +/* Version string */ +.version { + font-size: 9px; + color: #999999; + text-align: center; +} +.version a { + text-decoration:none; + color:#999999; +} +.version a:hover { + text-decoration:none; + color:#333333; +} +/* Content forms */ +#content_main form { + margin:0px; + padding:0px; +} +/* Content form table (single view and top/bottom line of list view) */ +.content_formtable { + top:10px; + position:relative; + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; +} +.content_formtable td { + padding:0px; + margin:0px; + height:18px; + text-align:left; +} +.content_tbl_row1 { + width: 200px; +} +.content_tbl_row2 { + width: 205px; +} +.content_tbl_row3 { + width: 45px; +} +.content_tbl_row4 { + width: 30px; +} +/* Form field definitions */ +.content_formtable input[type=text] { + width:200px; + padding:0px; + margin:0px; + border: 1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + height:18px; +} +.content_formtable input[type=password] { + width:200px; + padding:0px; + margin:0px; + border: 1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + height:18px; +} +.content_formtable input[type=file] { + width:400px; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + height:25px; +} +.content_formtable input[type=text].inpmust { + width:200px; + border: 1px solid #053056; + background: #941616 url(../images/inputmust.png); + font-family:Verdana, Helvetica, sans-serif; + color: #FFFFFF; + font-weight: bold; + font-size:12px; + height:18px; +} +.content_formtable input[type=text].inputlock { + width:200px; + border: 1px solid #053056; + background: #5d5d5d url(../images/inputlock.png); + font-family:Verdana, Helvetica, sans-serif; + color: #f7f7f7; + font-weight: normal; + font-size:12px; + height:18px; +} +.content_formtable input[type=password].inpmust { + width:200px; + border: 1px solid #053056; + background: #941616 url(../images/inputmust.png); + font-family:Verdana, Helvetica, sans-serif; + color: #FFFFFF; + font-weight: bold; + font-size:12px; + height:18px; +} +.content_formtable input[type=text].short { + width:150px; + height:18px; + padding:0px; + margin:0px; + border: 1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + float:left; + display:inline-block; +} +.content_formtable input[type=text].shortmust { + width:150px; + border: 1px solid #053056; + background: #941616 url(../images/inputmust.png); + font-family:Verdana, Helvetica, sans-serif; + color: #FFFFFF; + font-weight: bold; + font-size:12px; + height:18px; + float:left; + display:inline-block; +} +.content_formtable input[type=button] { + border:1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + color:#0c4271; + height:25px; + padding-left:10px; + padding-right:10px; + margin:0px; + padding-bottom:2px; +} +.content_formtable input[type=button][disabled] { + border:1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + color:#CCC; + height:25px; + padding-left:10px; + padding-right:10px; + margin:0px; + padding-bottom:2px; +} +.content_formtable input[type=submit] { + border:1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + color:#0c4271; + height:25px; + padding-left:10px; + padding-right:10px; + margin:0px; + padding-bottom:2px; +} +.content_formtable input[type=submit][disabled] { + border:1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + color:#CCC; + height:25px; + padding-left:10px; + padding-right:10px; + margin:0px; + padding-bottom:2px; +} +.content_formtable input[type=reset] { + border:1px solid #6CF; + background: #d1e2fd url(../images/input.png); + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + color:#0c4271; + height:25px; + padding-left:10px; + padding-right:10px; + margin:0px; + padding-bottom:2px; +} +.content_formtable input[type=checkbox] { + border:none; + margin-left:0px; + margin-right:0px; + background:none; + float:left; +} +.content_formtable input[type=radio] { + border:none; + margin-left:0px; + margin-right:0px; + background:none; + float:left; +} +.content_formtable select { + background-color: #d1e2fd; + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + border: 1px solid #6CF; + padding-top:2px; +} +.content_formtable option { + height: 15px; +} +.content_formtable iframe { + border: none; +} +#versioncheck { + border: none; +} +/* Additional form table definitions */ +.content_formtable .inpmust { + background-color: #941616; + font-family: Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + font-weight: bold; +} +.content_formtable .inactive_option { + background-color:#FF8000; +} +.content_formtable .foreign_option { + background-color:#C90; +} +.content_formtable .ieselected { + background-color:#3399FF; + color:#000000; +} +.content_formtable .selectborder { + border: 1px solid #6CF; + width:202px; +} +.content_formtable .selectbordermust { + border: 1px solid #000; + width:202px; +} +.content_formtable .empty_class {} +.content_formtable .infobutton_1 { + left:3px; + position:relative; +} +.content_formtable .infobutton_2 { + left:3px; + top:10px; + position:relative; +} +.content_formtable .shorttext { + display: inline-block; + float:left; + padding-left:5px; + padding-top:3px; +} +.content_formtable .required_info { + margin-left:30px; +} +.content_formtable .radio_cell_1 { + width:20px; + height:18px; +} +.content_formtable .radio_cell_2 { + width:29px; + padding-bottom:2px; +} +/* Content list view */ +.content_listtable { + top:15px; + position:relative; + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + margin-bottom:10px; +} +.content_listtable th { + background-color: #0c4271; + font-weight: bold; + color: #FFFFFF; + text-align: left; + vertical-align: middle; + padding: 5px; +} +.content_listtable td { + text-align: left; + vertical-align: middle; + padding:0px; + padding-bottom:2px; + height:25px; +} +.content_listtable .tdlb { + padding-left:5px; +} +.content_listtable .tdld { + padding-left:5px; + background-color: #dbe6ff; +} +.content_listtable .tdmb { + text-align: center; +} +.content_listtable .tdmd { + text-align: center; + background-color: #dbe6ff; +} +/* Log table */ +.content_logtable { + top:15px; + position:relative; + font-family:Verdana, Helvetica, sans-serif; + font-size:12px; + margin-bottom:10px; +} +.content_logtable th { + background-color: #0c4271; + border: 1px solid #333333; + padding: 2px; + color: #FFFFFF; +} +.content_logtable td { + background-color: #FFFFFF; + padding: 2px; + border: 1px solid #333333; + text-align:center; +} +.content_logtable .loglegend { + border: 0px; + padding: 0px; + width:445px; +} +/* Custom */ +.tablerow { + border-bottom:1px solid #0c4271; + font-size:12px; + height:20px; + padding-top:2px; + padding-left:5px; + padding-right:5px; +} +/* Page links / site numbers */ +.sitenumber { + background-color:#4080BE; + width:25px; + height:25px; + color:#d6d6d6; + border:1px solid #FFF; + text-align:center; + cursor:pointer; +} +.sitenumber a { + color:#d6d6d6; + text-decoration:none; +} +.sitenumber a:hover { + color:#d6d6d6; + text-decoration:none; +} +.sitenumber-sel { + background-color:#CCC;; + color:#00396a; + width:25px; + height:25px; + border:1px solid #FFF; + text-align:center; + font-weight:bold; +} +#donate { + top: 550px; + left:3px; + width: 150px; + position:absolute; + text-align:center; + z-index:auto; +} +/* END */ \ No newline at end of file diff --git a/config/fieldvars.php b/config/fieldvars.php new file mode 100644 index 0000000..581179d --- /dev/null +++ b/config/fieldvars.php @@ -0,0 +1,296 @@ + "LANG_DOMAIN", "string" => translate("Domain")); +$arrDescription[] = array ("name" => "LANG_DESCRIPTION", "string" => translate("Description")); +$arrDescription[] = array ("name" => "LANG_SERVER_NAMEe", "string" => translate("Server name")); +$arrDescription[] = array ("name" => "LANG_METHOD", "string" => translate("Method")); +$arrDescription[] = array ("name" => "LANG_USERNAME", "string" => translate("Username")); +$arrDescription[] = array ("name" => "LANG_PASSWORD", "string" => translate("Password")); +$arrDescription[] = array ("name" => "LANG_SSH_KEY", "string" => translate("Directory with SSH key pair")); +$arrDescription[] = array ("name" => "LANG_SERVER_NAME", "string" => translate("Server name")); +$arrDescription[] = array ("name" => "LANG_CONFIGURATION_DIRECTORIES", "string" => translate("Configuration directories")); +$arrDescription[] = array ("name" => "LANG_BASE_DIRECTORY", "string" => translate("Base directory")); +$arrDescription[] = array ("name" => "LANG_HOST_DIRECTORY", "string" => translate("Host directory")); +$arrDescription[] = array ("name" => "LANG_SERVICE_DIRECTORY", "string" => translate("Service directory")); +$arrDescription[] = array ("name" => "LANG_BACKUP_DIRECTORY", "string" => translate("Backup directory")); +$arrDescription[] = array ("name" => "LANG_HOST_BACKUP_DIRECTORY", "string" => translate("Host backup directory")); +$arrDescription[] = array ("name" => "LANG_SERVICE_BACKUP_DIRECTORY", "string" => translate("Service backup directory")); +$arrDescription[] = array ("name" => "LANG_PICTURE_DIRECTORY", "string" => translate("Picture base directory")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_COMMAND_FILE", "string" => translate("Nagios command file")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_BINARY_FILE", "string" => translate("Nagios binary file")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_PROCESS_FILE", "string" => translate("Nagios process file")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_CONFIG_FILE", "string" => translate("Nagios config file")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_VERSION", "string" => translate("Nagios version")); +$arrDescription[] = array ("name" => "LANG_ENABLE_COMMON_DOMAIN", "string" => translate("Use common domain")); +$arrDescription[] = array ("name" => "LANG_ENABLE_UTF8_DECODE", "string" => translate("Decode UTF8 data in config files")); +$arrDescription[] = array ("name" => "LANG_ACCESS_KEY_HOLES", "string" => translate("Access key holes")); +$arrDescription[] = array ("name" => "LANG_ACCESS_KEYS", "string" => translate("Access keys")); +$arrDescription[] = array ("name" => "LANG_ACTIVE", "string" => translate("Active")); +$arrDescription[] = array ("name" => "LANG_REGISTERED", "string" => translate("Registered")); +$arrDescription[] = array ("name" => "LANG_REQUIRED", "string" => translate("required")); +$arrDescription[] = array ("name" => "LANG_SAVE", "string" => translate("Save")); +$arrDescription[] = array ("name" => "LANG_ABORT", "string" => translate("Abort")); +$arrDescription[] = array ("name" => "LANG_FUNCTION", "string" => translate("Function")); +$arrDescription[] = array ("name" => "LANG_MARKED", "string" => translate("Marked")); +$arrDescription[] = array ("name" => "LANG_DO_IT", "string" => translate("Do it")); +$arrDescription[] = array ("name" => "LANG_ADD", "string" => translate("Add")); +$arrDescription[] = array ("name" => "LANG_FORMCHECK", "string" => translate("Formcheck")); +$arrDescription[] = array ("name" => "LANG_SECURE_QUESTION", "string" => translate("Secure question")); +$arrDescription[] = array ("name" => "LANG_YES", "string" => translate("Yes")); +$arrDescription[] = array ("name" => "LANG_NO", "string" => translate("No")); +$arrDescription[] = array ("name" => "LANG_TIME", "string" => translate("Time")); +$arrDescription[] = array ("name" => "LANG_USER", "string" => translate("User")); +$arrDescription[] = array ("name" => "LANG_IP", "string" => translate("IP")); +$arrDescription[] = array ("name" => "LANG_ENTRY", "string" => translate("Entry")); +$arrDescription[] = array ("name" => "LANG_FROM", "string" => translate("From")); +$arrDescription[] = array ("name" => "LANG_TO", "string" => translate("To")); +$arrDescription[] = array ("name" => "LANG_DELETE_LOG_ENTRIES", "string" => translate("Delete log entries")); +$arrDescription[] = array ("name" => "LANG_COPY", "string" => translate("Copy")); +$arrDescription[] = array ("name" => "LANG_DELETE", "string" => translate("Delete")); +$arrDescription[] = array ("name" => "LANG_MODIFY", "string" => translate("Modify")); +$arrDescription[] = array ("name" => "LANG_CONFIRM_PASSWORD", "string" => translate("Confirm password")); +$arrDescription[] = array ("name" => "LANG_OLD_PASSWORD", "string" => translate("Old password")); +$arrDescription[] = array ("name" => "LANG_NEW_PASSWORD", "string" => translate("New password")); +$arrDescription[] = array ("name" => "LANG_CHANGE_PASSWORD", "string" => translate("Change password")); +$arrDescription[] = array ("name" => "LANG_MENU_PAGE", "string" => translate("Menu page")); +$arrDescription[] = array ("name" => "LANG_SEARCH_STRING", "string" => translate("Search string")); +$arrDescription[] = array ("name" => "LANG_SEARCH", "string" => translate("Search")); +$arrDescription[] = array ("name" => "LANG_DELETE_SEARCH", "string" => translate("Reset filter")); +$arrDescription[] = array ("name" => "LANG_WRITE_CONFIG_FILE", "string" => translate("Write config file")); +$arrDescription[] = array ("name" => "LANG_DOWNLOAD", "string" => translate("Download")); +$arrDescription[] = array ("name" => "LANG_DUPLICATE", "string" => translate("Copy")); +$arrDescription[] = array ("name" => "LANG_COMMAND", "string" => translate("Command")); +$arrDescription[] = array ("name" => "LANG_COMMAND_LINE", "string" => translate("Command line")); +$arrDescription[] = array ("name" => "LANG_COMMAND_TYPE", "string" => translate("Command type")); +$arrDescription[] = array ("name" => "LANG_TIME_PERIOD", "string" => translate("Time period")); +$arrDescription[] = array ("name" => "LANG_EXCLUDE", "string" => translate("Exclude")); +$arrDescription[] = array ("name" => "LANG_INCLUDE", "string" => translate("Include")); +$arrDescription[] = array ("name" => "LANG_TIME_DEFINITIONS", "string" => translate("Time definitions")); +$arrDescription[] = array ("name" => "LANG_WEEKDAY", "string" => translate("Weekday")); +$arrDescription[] = array ("name" => "LANG_TIME_RANGE", "string" => translate("Time range")); +$arrDescription[] = array ("name" => "LANG_TIME_DEFINITION", "string" => translate("Time definition")); +$arrDescription[] = array ("name" => "LANG_INSERT", "string" => translate("Insert")); +$arrDescription[] = array ("name" => "LANG_MODIFY_SELECTION", "string" => translate("Modify selection")); +$arrDescription[] = array ("name" => "LANG_CONTACT_NAME", "string" => translate("Contact name")); +$arrDescription[] = array ("name" => "LANG_CONTACT_GROUP", "string" => translate("Contact group")); +$arrDescription[] = array ("name" => "LANG_TIME_PERIOD_HOSTS", "string" => translate("Time period hosts")); +$arrDescription[] = array ("name" => "LANG_TIME_PERIOD_SERVICES", "string" => translate("Time period services")); +$arrDescription[] = array ("name" => "LANG_HOST_OPTIONS", "string" => translate("Host options")); +$arrDescription[] = array ("name" => "LANG_SERVICE_OPTIONS", "string" => translate("Service options")); +$arrDescription[] = array ("name" => "LANG_HOST_COMMAND", "string" => translate("Host command")); +$arrDescription[] = array ("name" => "LANG_SERVICE_COMMAND", "string" => translate("Service command")); +$arrDescription[] = array ("name" => "LANG_EMAIL_ADDRESS", "string" => translate("EMail address")); +$arrDescription[] = array ("name" => "LANG_PAGER_NUMBER", "string" => translate("Pager number")); +$arrDescription[] = array ("name" => "LANG_ADDON_ADDRESS", "string" => translate("Addon address")); +$arrDescription[] = array ("name" => "LANG_HOST_NOTIF_ENABLE", "string" => translate("Host notif. enable")); +$arrDescription[] = array ("name" => "LANG_SERVICE_NOTIF_ENABLE", "string" => translate("Service notif. enable")); +$arrDescription[] = array ("name" => "LANG_CAN_SUBMIT_COMMANDS", "string" => translate("Can submit commands")); +$arrDescription[] = array ("name" => "LANG_RETAIN_STATUS_INFO", "string" => translate("Retain status info")); +$arrDescription[] = array ("name" => "LANG_RETAIN_NONSTATUS_INFO", "string" => translate("Retain nonstatus info")); +$arrDescription[] = array ("name" => "LANG_MEMBERS", "string" => translate("Members")); +$arrDescription[] = array ("name" => "LANG_GROUP_MEMBERS", "string" => translate("Group members")); +$arrDescription[] = array ("name" => "LANG_COMMON_SETTINGS", "string" => translate("Common settings")); +$arrDescription[] = array ("name" => "LANG_SERVICE_SETTINGS", "string" => translate("Service settings")); +$arrDescription[] = array ("name" => "LANG_SERVICE_SETTINGS_DESC", "string" => translate("Add this host configuration to existing service definitions")); +$arrDescription[] = array ("name" => "LANG_TEMPLATE_NAME", "string" => translate("Template name")); +$arrDescription[] = array ("name" => "LANG_PARENTS", "string" => translate("Parents")); +$arrDescription[] = array ("name" => "LANG_HOST_GROUPS", "string" => translate("Host groups")); +$arrDescription[] = array ("name" => "LANG_CHECK_COMMAND", "string" => translate("Check command")); +$arrDescription[] = array ("name" => "LANG_COMMAND_VIEW", "string" => translate("Command view")); +$arrDescription[] = array ("name" => "LANG_ADDITIONAL_TEMPLATES", "string" => translate("Additional templates")); +$arrDescription[] = array ("name" => "LANG_CHECK_SETTINGS", "string" => translate("Check settings")); +$arrDescription[] = array ("name" => "LANG_INITIAL_STATE", "string" => translate("Initial state")); +$arrDescription[] = array ("name" => "LANG_RETRY_INTERVAL", "string" => translate("Retry interval")); +$arrDescription[] = array ("name" => "LANG_MAX_CHECK_ATTEMPTS", "string" => translate("Max check attempts")); +$arrDescription[] = array ("name" => "LANG_CHECK_INTERVAL", "string" => translate("Check interval")); +$arrDescription[] = array ("name" => "LANG_ACTIVE_CHECKS_ENABLED", "string" => translate("Active checks enabled")); +$arrDescription[] = array ("name" => "LANG_PASSIVE_CHECKS_ENABLED", "string" => translate("Passive checks enabled")); +$arrDescription[] = array ("name" => "LANG_CHECK_PERIOD", "string" => translate("Check period")); +$arrDescription[] = array ("name" => "LANG_FRESHNESS_TRESHOLD", "string" => translate("Freshness treshold")); +$arrDescription[] = array ("name" => "LANG_CHECK_FRESHNESS", "string" => translate("Check freshness")); +$arrDescription[] = array ("name" => "LANG_OBSESS_OVER_HOST", "string" => translate("Obsess over host")); +$arrDescription[] = array ("name" => "LANG_OBSESS_OVER_SERVICE", "string" => translate("Obsess over service")); +$arrDescription[] = array ("name" => "LANG_EVENT_HANDLER", "string" => translate("Event handler")); +$arrDescription[] = array ("name" => "LANG_EVENT_HANDLER_ENABLED", "string" => translate("Event handler enabled")); +$arrDescription[] = array ("name" => "LANG_LOW_FLAP_THRESHOLD", "string" => translate("Low flap threshold")); +$arrDescription[] = array ("name" => "LANG_HIGH_FLAP_THRESHOLD", "string" => translate("High flap threshold")); +$arrDescription[] = array ("name" => "LANG_FLAP_DETECTION_ENABLED", "string" => translate("Flap detection enabled")); +$arrDescription[] = array ("name" => "LANG_FLAP_DETECTION_OPTIONS", "string" => translate("Flap detection options")); +$arrDescription[] = array ("name" => "LANG_RETAIN_STATUS_INFORMATION", "string" => translate("Retain status information")); +$arrDescription[] = array ("name" => "LANG_RETAIN_NOSTATUS_INFORMATION","string" => translate("Retain nostatus information")); +$arrDescription[] = array ("name" => "LANG_PROCESS_PERF_DATA", "string" => translate("Process perf data")); +$arrDescription[] = array ("name" => "LANG_ALARM_SETTINGS", "string" => translate("Alarm settings")); +$arrDescription[] = array ("name" => "LANG_CONTACTS", "string" => translate("Contacts")); +$arrDescription[] = array ("name" => "LANG_CONTACT_GROUPS", "string" => translate("Contact groups")); +$arrDescription[] = array ("name" => "LANG_NOTIFICATION_PERIOD", "string" => translate("Notification period")); +$arrDescription[] = array ("name" => "LANG_NOTIFICATION_OPTIONS", "string" => translate("Notification options")); +$arrDescription[] = array ("name" => "LANG_NOTIFICATION_INTERVAL", "string" => translate("Notification interval")); +$arrDescription[] = array ("name" => "LANG_FIRST_NOTIFICATION_DELAY", "string" => translate("First notification delay")); +$arrDescription[] = array ("name" => "LANG_NOTIFICATION_ENABLED", "string" => translate("Notification enabled")); +$arrDescription[] = array ("name" => "LANG_STALKING_OPTIONS", "string" => translate("Stalking options")); +$arrDescription[] = array ("name" => "LANG_ADDON_SETTINGS", "string" => translate("Addon settings")); +$arrDescription[] = array ("name" => "LANG_NOTES", "string" => translate("Notes")); +$arrDescription[] = array ("name" => "LANG_VRML_IMAGE", "string" => translate("VRML image")); +$arrDescription[] = array ("name" => "LANG_NOTES_URL", "string" => translate("Notes URL")); +$arrDescription[] = array ("name" => "LANG_STATUS_IMAGE", "string" => translate("Status image")); +$arrDescription[] = array ("name" => "LANG_ICON_IMAGE", "string" => translate("Icon image")); +$arrDescription[] = array ("name" => "LANG_ACTION_URL", "string" => translate("Action URL")); +$arrDescription[] = array ("name" => "LANG_2D_COORDS", "string" => translate("2D coords")); +$arrDescription[] = array ("name" => "LANG_3D_COORDS", "string" => translate("3D coords")); +$arrDescription[] = array ("name" => "LANG_ICON_IMAGE_ALT_TEXT", "string" => translate("Icon image ALT text")); +$arrDescription[] = array ("name" => "LANG_STANDARD", "string" => translate("standard")); +$arrDescription[] = array ("name" => "LANG_ON", "string" => translate("on")); +$arrDescription[] = array ("name" => "LANG_OFF", "string" => translate("off")); +$arrDescription[] = array ("name" => "LANG_SKIP", "string" => translate("skip")); +$arrDescription[] = array ("name" => "LANG_FREE_VARIABLE_DEFINITIONS", "string" => translate("Free variable definitions")); +$arrDescription[] = array ("name" => "LANG_VARIABLE_NAME", "string" => translate("Variable name")); +$arrDescription[] = array ("name" => "LANG_VARIABLE_VALUE", "string" => translate("Variable value")); +$arrDescription[] = array ("name" => "DELETE", "string" => translate("Delete")); +$arrDescription[] = array ("name" => "DUPLICATE", "string" => translate("Copy")); +$arrDescription[] = array ("name" => "ACTIVATE", "string" => translate("Activate")); +$arrDescription[] = array ("name" => "DEACTIVATE", "string" => translate("Deactivate")); +$arrDescription[] = array ("name" => "INFO", "string" => translate("Information")); +$arrDescription[] = array ("name" => "WRITE_CONFIG", "string" => translate("Write config file")); +$arrDescription[] = array ("name" => "LANG_DELETESINGLE", "string" => translate("Do you really want to delete this database entry:")); +$arrDescription[] = array ("name" => "LANG_DELETEOK", "string" => translate("Do you really want to delete all marked entries?")); +$arrDescription[] = array ("name" => "LANG_MARKALL", "string" => translate("Mark all shown datasets")); +$arrDescription[] = array ("name" => "LANG_FILE", "string" => translate("File")); +$arrDescription[] = array ("name" => "LANG_WRITE_CONF_ALL", "string" => translate("Write all config files")); +$arrDescription[] = array ("name" => "LANG_ADDRESS", "string" => translate("Address")); +$arrDescription[] = array ("name" => "LANG_DISPLAY_NAME", "string" => translate("Display name")); +$arrDescription[] = array ("name" => "LANG_USE_THIS_AS_TEMPLATE", "string" => translate("Use this configuration as template")); +$arrDescription[] = array ("name" => "LANG_GENERIC_NAME", "string" => translate("Generic name")); +$arrDescription[] = array ("name" => "LANG_HOST_NAME", "string" => translate("Host name")); +$arrDescription[] = array ("name" => "FILL_ALLFIELDS", "string" => translate("Please fill in all fields marked with an *")); +$arrDescription[] = array ("name" => "FILL_ILLEGALCHARS", "string" => translate("The following field contains not permitted characters:")); +$arrDescription[] = array ("name" => "FILL_BOXES", "string" => translate("Please check at least one option from:")); +$arrDescription[] = array ("name" => "LANG_HOSTGROUP_NAME", "string" => translate("Host group name")); +$arrDescription[] = array ("name" => "LANG_HOSTGROUP_MEMBERS", "string" => translate("Host group members")); +$arrDescription[] = array ("name" => "LANG_HOSTS", "string" => translate("Hosts")); +$arrDescription[] = array ("name" => "LANG_SERVICE_DESCRIPTION", "string" => translate("Service description")); +$arrDescription[] = array ("name" => "LANG_SERVICEGROUPS", "string" => translate("Service groups")); +$arrDescription[] = array ("name" => "LANG_IS_VOLATILE", "string" => translate("Is volatile")); +$arrDescription[] = array ("name" => "LANG_PARALLELIZE_CHECK", "string" => translate("Parallelize checks")); +$arrDescription[] = array ("name" => "LANG_CONFIGFILTER", "string" => translate("Config name filter")); +$arrDescription[] = array ("name" => "LANG_CONFIG_NAME", "string" => translate("Config name")); +$arrDescription[] = array ("name" => "LANG_IMPORT_DIRECTORY", "string" => translate("Import directory")); +$arrDescription[] = array ("name" => "LANG_INSERT_ALL_VARIABLE", "string" => translate("Please insert a variable name and a variable definition")); +$arrDescription[] = array ("name" => "LANG_MUST_BUT_TEMPLATE", "string" => "".translate("Warning:")."<\/b> ".translate("You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!")); +$arrDescription[] = array ("name" => "LANG_TPLNAME", "string" => translate("Template name")); +$arrDescription[] = array ("name" => "LANG_NAGIOS_BASEDIR", "string" => translate("Nagios base directory")); +$arrDescription[] = array ("name" => "LANG_WRITE_CONFIG", "string" => translate("Write config")); +$arrDescription[] = array ("name" => "FILL_ARGUMENTS", "string" => "".translate("Warning:")."<\/b> ".translate("You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!")); +$arrDescription[] = array ("name" => "LANG_SERVICEGROUP_MEMBERS", "string" => translate("Service group members")); +$arrDescription[] = array ("name" => "LANG_SERVICEGROUP_NAME", "string" => translate("Service group name")); +$arrDescription[] = array ("name" => "LANG_DEPENDHOSTS", "string" => translate("Dependent hosts")); +$arrDescription[] = array ("name" => "LANG_DEPENDHOSTGRS", "string" => translate("Dependent hostgroups")); +$arrDescription[] = array ("name" => "LANG_HOSTGROUPS", "string" => translate("Hostgroups")); +$arrDescription[] = array ("name" => "LANG_INHERIT", "string" => translate("Inherit parents")); +$arrDescription[] = array ("name" => "LANG_EXECFAILCRIT", "string" => translate("Execution failure criteria")); +$arrDescription[] = array ("name" => "LANG_NOTIFFAILCRIT", "string" => translate("Nofification failure criteria")); +$arrDescription[] = array ("name" => "LANG_DEPENDENCY_PERIOD", "string" => translate("Dependency period")); +$arrDescription[] = array ("name" => "LANG_ESCALATION_PERIOD", "string" => translate("Escalation period")); +$arrDescription[] = array ("name" => "LANG_ESCALATION_OPTIONS", "string" => translate("Escalation options")); +$arrDescription[] = array ("name" => "LANG_FIRST_NOTIFICATION", "string" => translate("First notification")); +$arrDescription[] = array ("name" => "LANG_LAST_NOTIFICATION", "string" => translate("Last notification")); +$arrDescription[] = array ("name" => "LANG_DEPENDSERVICES", "string" => translate("Dependent services")); +$arrDescription[] = array ("name" => "LANG_SERVICES", "string" => translate("Services")); +$arrDescription[] = array ("name" => "LANG_DEPENDSERVICEGROUPS", "string" => translate("Dependent servicegroups")); +$arrDescription[] = array ("name" => "LANG_HELP", "string" => translate("Help")); +$arrDescription[] = array ("name" => "LANG_CALENDAR", "string" => translate("Calendar")); +$arrDescription[] = array ("name" => "LANG_GROUPNAME", "string" => translate("Group name")); +$arrDescription[] = array ("name" => "LANG_USERS", "string" => translate("Users")); +$arrDescription[] = array ("name" => "LANG_ACCESS_GROUP", "string" => translate("Access group")); +$arrDescription[] = array ("name" => "LANG_USER_DEFINITIONS", "string" => translate("User definitions")); +$arrDescription[] = array ("name" => "LANG_USER_NAME", "string" => translate("User name")); +$arrDescription[] = array ("name" => "LANG_USER_RIGHTS", "string" => translate("User rights")); +$arrDescription[] = array ("name" => "LANG_OBJECT_ACCESS_RESTRICTIONS", "string" => translate("Object access restrictions")); +$arrDescription[] = array ("name" => "LANG_ADMIN_ENABLE", "string" => translate("Enable group administration")); +$arrDescription[] = array ("name" => "LANG_SHOW_RELATION_DATA", "string" => translate("Show relation data")); +$arrDescription[] = array ("name" => "LANG_HIDE_RELATION_DATA", "string" => translate("Hide relation data")); +$arrDescription[] = array ("name" => "LANG_CONFIG_TARGET", "string" => translate("Configuration target")); +$arrDescription[] = array ("name" => "LANG_LANGUAGE", "string" => translate("User language")); +$arrDescription[] = array ("name" => "LANG_STANDARD_DOMAIN", "string" => translate("Standard domain")); +$arrDescription[] = array ("name" => "LANG_SERVICES_WARNING", "string" => "".translate("Warning:")." ".translate("The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!")); +// weekdays +$arrDescription[] = array ("name" => "LANG_MONDAY", "string" => translate("Monday")); +$arrDescription[] = array ("name" => "LANG_TUESDAY", "string" => translate("Tuesday")); +$arrDescription[] = array ("name" => "LANG_WEDNESDAY", "string" => translate("Wednesday")); +$arrDescription[] = array ("name" => "LANG_THURSDAY", "string" => translate("Thursday")); +$arrDescription[] = array ("name" => "LANG_FRIDAY", "string" => translate("Friday")); +$arrDescription[] = array ("name" => "LANG_SATURDAY", "string" => translate("Saturday")); +$arrDescription[] = array ("name" => "LANG_SUNDAY", "string" => translate("Sunday")); +if ($SETS['common']['seldisable'] == 0) { + $arrDescription[] = array ("name" => "LANG_CTRLINFO", "string" => translate("Hold CTRL to select
more than one entry")); +} else { + $arrDescription[] = array ("name" => "LANG_CTRLINFO", "string" => " "); +} +// +// Quick fix for poEdit for dynamically loaded Parameters +// ====================================================== +// +// Main menu +translate('Main page'); +translate('Supervision'); +translate('Alarming'); +translate('Alarming'); +translate('Commands'); +translate('Specialties'); +translate('Tools'); +translate('Administration'); +// Submenu +translate('Hosts'); +translate('Time periods'); +translate('Host templates'); +translate('Contact data'); +translate('Contact groups'); +translate('Services'); +translate('Host groups'); +translate('Service groups'); +translate('Service dependency'); +translate('Service escalation'); +translate('Host dependency'); +translate('Host escalation'); +translate('Extended Host'); +translate('Extended Service'); +translate('Data import'); +translate('Delete config files'); +translate('Delete backup files'); +translate('User admin'); +translate('Group admin'); +translate('Nagios control'); +translate('New password'); +translate('Logbook'); +translate('Nagios config'); +translate('Settings'); +translate('Definitions'); +translate('CGI config'); +translate('Menu access'); +translate('Domains'); +translate('Host templates'); +translate('Service templates'); +translate('Contact templates'); +translate('Help editor'); +translate('Data domains'); +translate('Config targets'); +translate('Support'); +?> \ No newline at end of file diff --git a/config/locale/da_DK/LC_MESSAGES/da_DK.mo b/config/locale/da_DK/LC_MESSAGES/da_DK.mo new file mode 100644 index 0000000000000000000000000000000000000000..3beca0dfab7862efe5113dc8e2c43a8ca6886784 GIT binary patch literal 76807 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, 2012. +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:49+0100\n" +"PO-Revision-Date: 2012-03-09 22:49+0100\n" +"Last-Translator: \n" +"Language-Team: Danish (Denmark) (http://www.transifex.net/projects/p/nagiosql/language/da_DK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da_DK\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL administration" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "Velkommen til NagiosQL, administrationsmodulet der kan bruges til nemt at oprette, ændre og slette konfigurationsfiler til Nagios. Data gemmes i en database og kan når som helst skrives direkte til standardfilerne." + +#: index.php:45 +msgid "Welcome to" +msgstr "Velkommen til" + +#: index.php:46 +msgid "Welcome" +msgstr "Velkommen" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Indtast venligst dit brugernavn og adgangskode for at tilgå NagiosQL.
Hvis du har glemt en af dem, kontakt da venligst din administrator." + +#: index.php:48 +msgid "Username" +msgstr "Brugernavn" + +#: index.php:49 +msgid "Password" +msgstr "Adgangskode" + +#: index.php:50 +msgid "Login" +msgstr "Log ind" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administration" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funktioner til at administrere NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alarmering" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Her defineres kontaktdata, kontakt-skabeloner, kontaktgrupper, og tidsrammer." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Statistiske data" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Gruppe" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Aktive" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inaktive" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Kontaktdata" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Kontaktgrupper" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Tidsrammer" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Kontakt-skabeloner" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Konfigurationsfiler blev skrevet korrekt!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Konfiguration blev skrevet korrekt:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Kan ikke åbne/overskrive konfigurationsfilen (tjek rettigheder)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Konfigurationsskrivning mislykkedes:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Kan ikke åbne/overskrive konfigurationsfilen (tjek rettighederne på fjernsystemet)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Konfigurationsskrivning mislykkedes (fjern):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI konfigurationsfil" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Kan ikke åbne datafilen (tjek rettigheder)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Kan ikke åbne den midlertidige fil" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Læsning af konfigurationen mislykkedes (fjern):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Ny kommando indsat:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Kommando ændret:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Database-skrivning mislykkedes! Ikke alle nødvendige data blev skrevet!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "Databaseskrivning mislykkedes! Ingen skriveadgang!" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Kommando-definitioner" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Kan ikke gemme!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "uklassificeret" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "tjek kommando" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "div kommando" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Emnet kan ikke aktiveres da det bruges af en anden konfiguration" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Kommandonavn" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Kommandolinje" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Fejl ved udtræk af data fra databasen:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Tjek-kommandoer" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Her defineres tjek og div. kommandoer, notifikations-kommandoer og specielle kommandoer.Her defineres tjek og div. kommandoer, notifikations-kommandoer og specielle kommandoer." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "er ikke skrivbar" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Nagios konfig. fil" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "er ikke en gyldig konfigurationsfil!" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "Cgi konfigurationsfil" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSH modulet er ikke indlæst!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTP modulet er ikke indlæst!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Nyt domæne indsat:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domæne ændret:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Konfigurationsdomæne administration" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Advarsel! Der opstod mindst én fejl. Kontrollér venligst!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Udfyld venligst alle felter markeret med en *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Det følgende felt indeholder ugyldige tegn:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Konfigurationsmål" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Beskrivelse" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Ny kontaktgruppe indsat:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Kontaktgruppe ændret:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Definér kontaktgrupper (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Bemærk! Ingen kontakter defineret!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Kontaktgruppe" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Ny kontakt indsat:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Kontakt ændret:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Definér kontakter (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Bemærk! Ingen tidsrammer defineret!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Bemærk! Ingen kommandoer defineret!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Kontaktnavn" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Ny kontaktskabelon indsat:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Kontaktskabelon ændret:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Definér kontaktskabeloner (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Datadomæne administration" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "Bemærk! Der er ikke angivet nogen konfigurationsmål!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Aktiver" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Deaktiver" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Datadomæne" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Filen er slettet" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "korrekt slettet" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Slet backupfiler" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filtrér streng" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Søg" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Slet" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Nulstil filter" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Backupfil" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "påkrævet" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Afbryd" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Hold CTRL tasten nede
for mere end et emne" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "Ingen backupfiler eller ingen rettigheder til at læse backupfilerne" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Slet konfig. filer" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Konfigurationsfil" + +#: admin/download.php:67 +msgid "Download" +msgstr "Download" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "En ny gruppe tilføjet:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Bruger ændret:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Gruppe-administration" + +#: admin/group.php:114 +msgid "Read" +msgstr "Læs" + +#: admin/group.php:115 +msgid "Write" +msgstr "Skriv" + +#: admin/group.php:116 +msgid "Link" +msgstr "Link" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Gruppenavn" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Ingen data" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Hjælpe-tekst editor" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Primær nøgle" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Under-nøgle" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Sprog" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagios version" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Indlæs standardtekst" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Ny værts-afhængighed indsat:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Værts-afhængighed ændret:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definer værts-afhængigheder (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Bemærk! Ingen værter eller værtsgrupper defineret!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Konfig. navn" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Afhængige værter" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Afhængige værtsgrupper" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Ny værts-eskalering indsat:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Værts-eskalering ændret:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Definer værts-eskalering (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Bemærk! Ingen kontakter eller kontaktgrupper defineret!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Værter" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Værtsgrupper" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Ny udvidet værts-information indsat:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Udvidet værts-information ændret:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definer udvidet værts-information (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Bemærk! Ingen værter defineret!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Værtsnavn" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Noter" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Ny værtsgruppe indsat:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Værtsgruppe ændret:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Definer værtsgrupper (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Værtsgruppe" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Ny vært indsat:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Vært ændret:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "De tilknyttede, ikke længere brugte konfigurationsfiler blev slettet korrekt!De tilknyttede, ikke længere brugte konfigurationsfiler blev slettet korrekt!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Værtsfil slettet:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Grundlæggende filer kan ikke fjernes fra destinations-systemet - kontrollér venligst manueltGrundlæggende filer kan ikke fjernes fra destinations-systemet - kontrollér venligst manuelt" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Fejl ved sletning af den gamle konfig. fil - kontrollér venligst!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Definer værter (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Bemærk! Ingen kontaktgrupper defineret!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Ny værtsskabelon indsat:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Værtsskabelon ændret:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Værtsskabelon definition (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Værtsskabelon navn" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Fil-upload fejl:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Fil importeret - Fil [overskriv flag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Konfigurationsimport" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Skabelon definition" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Importér fil" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Lokal importfil" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Overskriv database" + +#: admin/import.php:94 +msgid "Import" +msgstr "Importér" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Hold CTRL nede for at
vælge mere end én" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "For at forhindre fejl eller forkerte konfigurationer, bør du importere dine konfigurationer i en brugbar rækkefølge. Vi anbefaler at du gør således:

commands-> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "Tjek din konfiguration efter import!
I tilfælde af fejl eller en ufærdig konfiguration, kan en ny importering af den forkerte konfiguration løse problemet." + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Dette er den relative sti til din NagiosQL installation" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Dette er den absolutte sti til din NagiosQL installation" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Hvis du har behov for en sikker forbindelse, vælg HTTPS i stedet for HTTPHvis du har behov for en sikker forbindelse, vælg HTTPS i stedet for HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Vælg en midlertidigt mappe med skrive-rettigheder. Standarden er temp mappen fra dit operativsystemVælg en midlertidigt mappe med skrive-rettigheder. Standarden er temp mappen fra dit operativsystem" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Vælg venligst dit program-sprog" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Tegnkodningen bør ikke være sat til andet en utf-8. Ændringer er på egen risikoTegnkodningen bør ikke være sat til andet en utf-8. Ændringer er på egen risiko" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "IP-adresse eller værtsnavn for databaseserveren
f.eks. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQL serverport, standard er 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Navn på NagiosQL databasen
f.eks. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Bruger med nødvendige rettigheder til NagiosQL databasen
Som minimum skal denne bruger have rettigheder til SELECT, INSERT, UPDATE og DELETEBruger med nødvendige rettigheder til NagiosQL databasen
Som minimum skal denne bruger have rettigheder til SELECT, INSERT, UPDATE og DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Adgangskode for den ovennævnte bruger" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Efter det foruddefinerede antal sekunder, vil sessionen afbrydes af sikkerhedsmæssige årsagerEfter det foruddefinerede antal sekunder, vil sessionen afbrydes af sikkerhedsmæssige årsager" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Vælg godkendelsesmetode baseret på din webserver
f.eks. Apache konfiguration (konfig fil eller htaccess) eller NagiosQLVælg godkendelsesmetode baseret på din webserver
f.eks. Apache konfiguration (konfig fil eller htaccess) eller NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Hvor mange emner der skal være synlig per side (f.eks services eller værter)Hvor mange emner der skal være synlig per side (f.eks services eller værter)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Vælg flere emner ved at bruge den nye dialog, eller ved at holde CTRL + venstre klik som i NagiosQL2Vælg flere emner ved at bruge den nye dialog, eller ved at holde CTRL + venstre klik som i NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Aktiver eller deaktiver advarsel hvis et krævet fejl ikke indeholder data i objekter med skabelonerAktiver eller deaktiver advarsel hvis et krævet fejl ikke indeholder data i objekter med skabeloner" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Aktiver eller deaktiver automatisk online versionstjek." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Hvis det kræver en proxyserver for at forbinde til internettet (port 80), angiv venligst en.Hvis det kræver en proxyserver for at forbinde til internettet (port 80), angiv venligst en." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Adresse på din proxyserver f.eks. proxy.ditdomæne.dk:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Brugernavn til at forbinde via din proxy (valgfri)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Adgangskode til at forbinde via din proxy (valgfri)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Informations-popup" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Ingen information tilgængelig" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Datasæt slettet korrekt. Påvirkede rækker:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Vis logbog" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Slet log-indgange mellem:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Indtast venligst en start- eller stoptid" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Ønsker du virkelig at slette alle log-indgange mellem de valgte datoer?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "forrige 20 emner" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "næste 20 emner" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Fejl ved indsætning af data i databasen:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Data blev korrekt indsat i databasen!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Adgangsgruppe valgt for menuemnet:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Definer menu adgangsrettigheder" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "For at en bruger kan få adgang skal han være medlem af denne valgte gruppe.For at en bruger kan få adgang skal han være medlem af denne valgte gruppe." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Overvågning" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Her defineres vært og service-overvågning såvel som værts- og servicegrupper.Her defineres vært og service-overvågning såvel som værts- og servicegrupper." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Services" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Servicegrupper" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Værtsskabeloner" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Serviceskabeloner" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Tilgængelig" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Valgte" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Primær Nagios konfigurationsfil" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Adgangskode korrekt ændret" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Adgangskode er for kort eller adgangskode-felter ikke ens!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Gammel adgangskode er forkert" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Gem" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "De nye adgangskoder er ikke ens!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Den nye adgangskode er for kort - brug mindst 6 tegn!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Ny service-afhængighed indsat:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Service-afhængighed ændret:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definer service-afhængigheder (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Afhængige services" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Ny service-eskalering indsat:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Service-eskalering ændret:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definer service-eskalering (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Ny udvidet service-information indsat:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Udvidet service-information ændret:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Definer udvidet service-information (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Værtsnavn" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Service" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Ny servicegruppe indsat:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Servicegruppe ændret:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definer servicegrupper (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Bemærk! Ingen services defineret!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Servicegruppe" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Ny service indsat:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Service ændret:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Servicefil slettet:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Definer services (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Bemærk! Ingen værter eller værtsgrupper defineret!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Bemærk! Ingen tjek-kommandoer defineret!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "Bemærk. Der er ikke angivet nogen kontakter eller kontaktgrupper!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Servicenavn" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Alle konfigurationer" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Ny serviceskabelon indsat:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Serviceskabelon ændret:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Definer serviceskabeloner (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Skabelonnavn" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Servicebeskrivelse" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl modulet ikke indlæst, proxy vil være deaktiveret!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "Der opstod en fejl under skrivning af indstillinger til databasen:" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Fejl i indstilling af korrekt lokalitet, rapporter venligst denne fejl hos det tilknyttede output fra 'locale -a'Fejl i indstilling af korrekt lokalitet, rapporter venligst denne fejl hos det tilknyttede output fra 'locale -a'" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Indstillinger blev ændret" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "En fejl opstod ved skrivning af settings.php, kontroller venligst rettigheder!En fejl opstod ved skrivning af settings.php, kontroller venligst rettigheder!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "er ikke skrivbar, kontroller venligst rettigheder!" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Konfigurér indstillinger" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Tilpas dine aktuelle NagiosQL indstillinger (f.eks. databasebruger og sprog).Tilpas dine aktuelle NagiosQL indstillinger (f.eks. databasebruger og sprog)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Sti" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Midlertidig mappe" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Serverprotokol" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Tegnkodning" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Database" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQL server" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQL serverport" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Databasenavn" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Databasebruger" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Database adgangskode" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Sikkerhed" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Session auto log-af tid" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Godkendelsestype" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Fælles" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Datalinjer per side" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Markeringsmetode" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Skabelon advarselsbesked" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Online versionscheck" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Proxyserver" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Proxyadresse" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Proxy brugernavn (valgfri)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Proxy adgangskode (valgfri)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Div. kommandoer" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Her defineres værts- og service-afhængigheder, værts- og service-eskaleringer samt yderligere værts- og servicedata.Her defineres værts- og service-afhængigheder, værts- og service-eskaleringer samt yderligere værts- og servicedata." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Værts-afhængigheder" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Værts-eskaleringer" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Udv. værts-info" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Service-afhængigheder" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Service-eskaleringer" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Udv. service-info" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "NagiosQL support side" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "Support kontaktoplysninger" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "Ved spørgsmål, kontaktoplysninger eller adgang til online supportforum besøg vores hjemmeside:" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "Donér for at understøtte NagiosQL" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "Hvis du kan lide NagiosQL og den gør dit daglige arbejde nemmere, vil du måske overveje at hjælpe projektet med en donation. Dette hjælper os med at holde NagiosQL i live og dække vores udgifter. Tak for din donation!" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "Donér til NagiosQL på sourceforge" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "Oversættelsesservice" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "NagiosQL blev oversat til forskellige sprog. Da nogen oversættere ikke har været med i nyere versioner, kan der være uoversatte ord eller sætninger. Hvis du har lyst til at være med til at færdiggøre oversættelsen, rette den eller oprette et nyt sprog, så meld dig til nu! Oversættelsen foregår nemt online - vi bruger en åben oversættelsesservice hvor du kan registrere dig ganske gratis når som helst:" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "Transifex oversættelsesservice" + +#: admin/support.php:92 +msgid "Version check" +msgstr "Versionscheck" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "Onlineversionscheck er ikke aktiveret. Du kan aktiverer det på indstillingssiden." + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "Onlineversionschecket tilslutter til NagiosQL siden for at se om din version stadig er opdateret." + +#: admin/support.php:106 +msgid "Environment check" +msgstr "Miljøcheck" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "mislykkedes" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "ok" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "PHP version" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "Påkrævet:" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "PHP modul:" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "MySQL version" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "PHP ini indstillinger:" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "Læs/skriv adgang:" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "Konfigurationsdomæne tjeks" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "De nedenstående kontroller er baseret på dine datadomæne og konfigurationsdomæne indstillinger. For at ændre datadomænet skal du bruge rullemenuen i øverste højre hjørne. Gentag dette tjek for hvert datadomæne du har konfigureret. For at ændre konfigurationsdomænet, skal du bruge datadomæne menuen og vælge en anden konfiguraionsdomæne værdi." + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "Konfigurationsdomæne navn" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "Forbindelsestype" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "Forbindelsestjek" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "kun læs" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagios procesfil" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "filen mangler" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "Nagios dæmonen kører ikke" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "ikke brugt med FTP" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "død dæmon" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagios kommandofil" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagios programfil" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "ikke eksekverbar" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "Tjek konfigurationsfiler og dæmon konfiguration" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "Konfigurationsnavn" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "Brugt i datamænet" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "Inkluderet i dæmonkonfigurationen" + +#: admin/support.php:549 +msgid "not used" +msgstr "ikke brugt" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "cfg definition mangler" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "cfg definition mangler, men bruges egentligt ikke" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "forkert grundsti:" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "cfg filen er ikke læsbar" + +#: admin/support.php:606 +msgid "Not used" +msgstr "Ikke brugt" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "ubrugt - slet venligst!" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Op" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Ned" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Tilpas" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Ny tidsramme indsat:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Tidsramme ændret:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Tidsramme definitioner" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Indsæt venligst en tidsdefinition og en tidsramme" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Tidsramme" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Forskelligt værktøj" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Nyttige funktioner til dataimport, primær konfiguration, daemon kontrol osv.Nyttige funktioner til dataimport, primær konfiguration, daemon kontrol osv." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "En ny bruger er tilføjet:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Brugeradministration" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Adgangskoderne er ikke ens!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Udfyld venligst adgangskoden" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Adgangskoden er for kort - brug mindst 6 tegn!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Webserver godkendelse" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "Skrivning af konfigurationen mislykkedes - ingen datasæt eller aktiverede datasæt blev fundet" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Skriv værts-konfigurationer" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Ingen konfigurationsemner defineret!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Skriv service-konfigurationer" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "Ingen datasæt eller aktivere datasæt fundet - skrev tom konfiguration" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Kan ikke finde Nagios programfilen eller ingen rettigheder til afvikling!Kan ikke finde Nagios programfilen eller ingen rettigheder til afvikling!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Fjernafvikling (FTP SITE EXEC) er ikke understøttet på dit system!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Fjernafvikling af nagios verificeringskommando mislykkedes (fjern-SSH)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Nagios programfil eller konfigurationsfil ikke fundet (fjern- SSH)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios daemon genstartet korrekt" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Genstart-kommando er sendt korrekt til Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Genstart mislykkedes - Nagios kommandofil ikke fundet eller ingen ret til at afvikleGenstart mislykkedes - Nagios kommandofil ikke fundet eller ingen ret til at afvikle" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Nagios kommandofil ikke fundet eller ingen ret til at skrive!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Genstart mislykkedes - Nagios daemon kørte ikke" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Nagios daemon kører ikke, kan ikke sende genstart kommando!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Genstart mislykkedes - FTP begrænsninger" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Nagios genstart er ikke muligt via FTP fjern-forbindelse!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Genstart mislykkedes - Nagios kommandofil ikke fundet eller ingen ret til at afvikle (fjern-SSH)!Genstart mislykkedes - Nagios kommandofil ikke fundet eller ingen ret til at afvikle (fjern-SSH)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios daemon genstartet korrekt (fjern-SSH)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Genstart-kommando sendt korrekt til Nagios (fjern-SSH)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Nagios kommandofil ikke fundet (fjern-SSH)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Kontrollér skrevne konfigurationsfiler" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Kontrollér konfigurationsfiler:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Genstart Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Skriv overvågningsdata" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Skriv yderligere data" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Advarsel. Kontrollér altid konfigurationsfilerne før du genstarter Nagios!Advarsel. Kontrollér altid konfigurationsfilerne før du genstarter Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Gør det" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Skreven Nagios konfiguration kontrolleret - advarsler/fejl:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Skrevne konfigurationsfiler er korrekte, Nagios kan genstartes!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "kontroller proxy indstillinger" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Installeret" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Information" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Du har allerede den nyeste version installeret" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Du bruger en gammel NagiosQL version. Opdatér venligst til den nyeste stabile version" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "Du bruger en nyere udviklingsversion uden officiel support" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domæne" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Servernavn" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Metode" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Mappe med SSH nøglepar" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Konfigurationsmapper" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Rodmappe" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Værtsmappe" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Servicemappe" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Backupmappe" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Vært backupmappe" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Service backupmappe" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Rodmappe for billeder" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Brug fælles domæne" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Afkod UTF8 data i konfigurationsfiler" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Adgangs-nøglehuller" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Adgangsnøgler" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Registreret" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Funktion" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Markeret" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Tilføj" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Formkontrol" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Sikkert spørgsmål" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Ja" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Nej" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Tid" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Bruger" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Indgang" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Fra" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Til" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Slet log indgange" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Kopiér" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Bekræft adgangskode" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Gammel adgangskode" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Ny adgangskode" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Skift adgangskode" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Menuside" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Søgestreng" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Skriv konfigurationsfil" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Kommando" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Kommandotype" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Ekskludér" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Inkludér" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Tidsdefinitioner" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Ugedag" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Tidsramme" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Tidsdefinition" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Indsæt" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Tilpas markering" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Tidsperiode værter" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Tidsperiode services" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Værts indstillinger" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Service indstillinger" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Værtskommando" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Servicekommando" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "E-mail adresse" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Personsøgernummer" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Tilføjelse adresse" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Vært notif. aktiver" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Service notif. aktiver" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Kan indsende kommandoer" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Behold statusinfo" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Behold ikke-statusinfo" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Medlemmer" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Gruppemedlemmer" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Fælles indstillinger" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Service indstillinger" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Tilføj denne værtskonfiguration til eksisterende servicedefinitioner" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Overordnede" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Tjek-kommando" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Kommandovisning" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Yderligere skabeloner" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Tjek-indstillinger" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Start-tilstand" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Genforsøg interval" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Maks tjek forsøg" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Tjek interval" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Aktive tjek aktiveret" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Passive tjek aktiveret" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Tjek-periode" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Friskhedsgrænse" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Tjek friskhed" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Vær besat af vært" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Vær besat af service" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Hændelses behandler" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Hændelses behandler aktiveret" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Lav flap grænse" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Høj flap grænse" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Flap-opdagelse aktiveret" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Flap-opdagelse indstillinger" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Behold statusinformation" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Behold ikke-status information" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Behandl perf data" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Alarm indstillinger" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Kontakter" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Besked periode" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Besked indstillinger" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Besked interval" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Første besked forsinkelse" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Besked aktiveret" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Forfølger indstillinger" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Tilføjelse-indstillinger" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRML billede" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Noter URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Statusbillede" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Ikon-billede" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Hændelses URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D koordinater" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D koordinater" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Ikon-billede ALT tekst" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "til" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "fra" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "spring over" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Frie variabeldefinitioner" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Variabelnavn" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Variabelværdi" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Aktivér" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Deaktivér" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Ønsker du virkelig at slette denne database-indgang:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Ønsker du virkelig at slette alle markerede indgange?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Marker alle viste datasæt" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Fil" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Skriv alle konfig. filer" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Adresse" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Visnings-navn" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Brug denne konfiguration som skabelon" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Standardnavn" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Vælg mindst en mulighed fra:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Værtsgruppenavn" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Værtsgruppe medlemmer" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Er flygtig" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Parallelle tjeks" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Konfig. navnefilter" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Importmappe" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Indsæt venligst et variabelnavn og en variabeldefinition" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Advarsel:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Du har ikke udfyldt alle krævede felter!

Hvis disse værdier sættes af en skabelon, kan du gemme alligevel - ellers vil du få en ugyldig konfiguration!Du har ikke udfyldt alle krævede felter!

Hvis disse værdier sættes af en skabelon, kan du gemme alligevel - ellers vil du få en ugyldig konfiguration!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagios rodmappe" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Skriv konfig" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Du har ikke udfyldt alle kommando-argumenter (ARGx) for den valgte kommando!

Hvis disse argumenter er valgfrie kan du gemme alligevel - ellers vil du få en ugyldig konfiguration!Du har ikke udfyldt alle kommando-argumenter (ARGx) for den valgte kommando!

Hvis disse argumenter er valgfrie kan du gemme alligevel - ellers vil du få en ugyldig konfiguration!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Servicegruppe medlemmer" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Servicegruppenavn" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Værtsgrupper" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Nedarv overordnede" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Afviklings fejlkriterie" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Besked fejlkriterie" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Afhængigheds-periode" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Eskalerings-periode" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Eskalerings indstillinger" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Første besked" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Sidste besked" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "Afhængige servicegrupper" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Hjælp" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Kalender" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Gruppenavn" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Brugere" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Adgangsgruppe" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Bruger-definitioner" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Brugernavn" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Bruger-rettigheder" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Objekt-adgangsbegrænsninger" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Aktiver gruppeadministration" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Vis relationsdata" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Skjul relationsdata" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "Brugersprog" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Standarddomæne" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "De tilknyttede services skal derudover skrives til filerne. Det er ikke nok at nøjes med at skrive værtskonfigurationen da ændringen gemmes i servicefilerne." + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Mandag" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Tirsdag" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Onsdag" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Torsdag" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Fredag" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Lørdag" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Søndag" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Hovedside" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Overvågning" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Kommandoer" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Specialiteter" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Værktøj" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Service-afhængighed" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Service-eskalering" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Værts-afhængighed" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Værts-eskalering" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Udvidet vært" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Udvidet service" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Dataimport" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Bruger-admin" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Gruppe-admin" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagioskontrol" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logbog" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios konfig" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Indstillinger" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definitioner" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI konfig" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Menuadgang" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domæner" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Hjælpeeditor" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "Datadomæner" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "Konfigurationsmål" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "Support" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Advarsel: konfigurationsfil er for gammel!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "Advarsel: Ingen konfigurationsmål angivet!" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Kan ikke lave backup af, og slette den gamle, konfigurationsfil (tjek rettigheder)!Kan ikke lave backup af, og slette den gamle, konfigurationsfil (tjek rettigheder)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Kan ikke lave backup af den gamle konfigurationsfil da rettighederne er forkerte (fjern-FTP)!Kan ikke lave backup af den gamle konfigurationsfil da rettighederne er forkerte (fjern-FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Kan ikke lave backup af den gamle konfigurationsfil da rettighederne er forkerte (fjern-SFTP)!Kan ikke lave backup af den gamle konfigurationsfil da rettighederne er forkerte (fjern-SFTP)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "Kan ikke slette filen (forkerte rettigheder)!" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "Kan ikke slette filen (filen eksisterer ikke)!" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Kan ikke slette filen da rettighederne er forkerte (fjern-FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Kan ikke slette filen da den ikke eksisterer (fjern-FTP)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Kan ikke slette filen da rettighederne er forkerte (fjern-SFTP)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Kan ikke slette filen da den ikke eksisterer (fjern-SFTP)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Kan ikke hente konfigurationsfilen (FTP forbindelse mislykkedes)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Kan ikke skrive konfigurationsfilen (FTP forbindelse mislykkedes)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Kan ikke hente konfigurationsfilen (SSH forbindelse mislykkedes)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Kan ikke hente konfigurationsfilen (fjern-filen eksisterer ikke)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Kan ikke skrive konfigurationsfilen (SSH forbindelse mislykkedes)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Det er ikke muligt at skrive konfig. filer direkte fra fællesdomænet!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "Skrivning af konfigurationen mislykkedes - ingen datasæt eller aktiverede datasæt blev fundet eller du mangler skriverettigheder." + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Konfigurationsskrivning mislykkedes (FTP forbindelse fejlede):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Kan ikke åbne/overskrive konfigurationsfilen (FTP forbindelse fejlede)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Kan ikke åbne/overskrive konfigurationsfilen (fjern-SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Kan ikke tilslutte til fjern-systemet (SSH2 forbindelse):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "SSH offentlig nøgle eksisterer ikke eller er ikke læsbar" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "SSH privat nøgle eksisterer ikke eller er ikke læsbar" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Kan ikke tilslutte til fjern-systemet (FTP forbindelse):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Kunne ikke åbne mappen" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "ændret" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "intet mål" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "mangler" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "uændret" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Sidste database-opdatering:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "Sidste filændring af konfigurationsmålet " + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Sletning mislykkedes på grund af en databasefejl:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Ingen data slettet. Datasættet eksisterer sikker ikke, eller er beskyttet mod sletning.Ingen data slettet. Datasættet eksisterer sikker ikke, eller er beskyttet mod sletning." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Slet datasæt-id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- fra tabel:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- med påvirkede rækker:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Slet data fra tabel:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "Ingen data slettet. Sandsynligvis eksisterer datasættet ikke, det er beskyttet mod sletning, du har ikke skriverettigheder eller det har relationer til andre konfigurationer som ikke kan slettes. Brug \"Info\" funktionen for detaljerede oplysninger om relationer!" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "Ingen data slettet. Sandsynligvis eksisterer datasættet ikke, det er beskyttet mod sletning eller du har ikke skriverettigheder." + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Datasæt kopi mislykkedes- tabel [nyt navn]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Datasæt kopieret - tabel[nyt navn]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "Ingen datasæt kopieret Måske eksisterer datasættet ikke eller du har ikke skriverettigheder." + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "Ingen datasæt aktiveret. Måske eksisterer datasættet ikke, der blev ikke valgt nogen datasæt eller du har ikke skriverettigheder." + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Datasæt aktiveret korrekt. Påvirkede rækker:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Aktiver datasæt fra tabel:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Ingen datasæt aktiveret. Måske eksisterer datasættet ikke eller du har ikke skriverettigheder." + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "Ingen datasæt deaktiveret. Måske eksisterer datasættet ikke, det er beskyttet mod deaktivering, ingen datasæt var valgt eller du har ikke skriverettigheder. Brug \"Info\" funktionen for detaljerede oplysninger om relationer!" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Datasæt korrekt deaktiveret. Påvirkede rækker:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Ingen datasæt deaktiveret. Måske eksisterer datasætter ikke eller du har ikke skriverettigheder." + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "Relationsinformation for " + +#: functions/data_class.php:891 +msgid " of table " +msgstr " af tabellen " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relation til " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", indgang " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "sletning mulig" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "sletning ikke mulig" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "Kunne ikke hente konfigurationsdata:" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Kan ikke hente konfigurationsfilen (FTP forbindelse)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Kan ikke hente konfigurationsfilen (SSH forbindelse)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "Ingen gyldig konfiguration fundet:" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "Importfilen eksisterer ikke eller er ikke læsbar:" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabel til import-definition" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "er ikke tilgængelig!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "indvendig" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "eksisterer og blev ikke overskrevet" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "blev ikke skrevet" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "kunne ikke indsættes:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "korrekt indsat" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Fejl: forkert antal argumenter - kan ikke importere servicegruppe medlemmerFejl: forkert antal argumenter - kan ikke importere servicegruppe medlemmer" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Manglende server-forbindelses parameter!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Forbindelsen til database-serveren mislykkedes med årsagen:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Manglende database-forbindelses parameter!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Skjul menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Vis menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Side" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Ubegrænset adgang" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Fejl ved forbindelse til databasen:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Fejl ved indstilling af korrekt lokalitet, rapportér venligst denne fejl med det tilknyttede output fra 'locale -a' til bugs@nagiosql.orgFejl ved indstilling af korrekt lokalitet, rapportér venligst denne fejl med det tilknyttede output fra 'locale -a' til bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Korrekt webserver-login" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Korrekt login" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Login mislykkedes!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Session timeout nået - sekunder:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Begrænset websted tilgået:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Bruger ikke fundet i databasen" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Admin" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Logget ind:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Log ud" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Advarsel - skabelonfil ikke fundet eller ikke læsbar, kontrollér venligst dine filrettigheder! - Fil: Advarsel - skabelonfil ikke fundet eller ikke læsbar, kontrollér venligst dine filrettigheder! - Fil: " + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "Nogle konfigurationsfiler blev ikke skrevet. Datasæt er ikke aktiveret, ikke fundet eller du har ikke skriverettigheder!" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "Konfigurationsfilerne blev skrevet korrekt!" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin kan ikke slettes" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost kan ikke slettes" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Ingen rettigheder til at åbne konfigurationen!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Engelsk" + +#: functions/translator.php:60 +msgid "German" +msgstr "Tysk" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Kinesisk (simpelt)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiensk" + +#: functions/translator.php:72 +msgid "French" +msgstr "Fransk" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russisk" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Spansk" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugisisk (Brasilien)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Hollandsk" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Dansk" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Online dokumentation" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "Databaseforbindelse mislykkedes. Opgradering er ikke tilgængelig!" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "Indstillingstabellen er ikke tilgængelig eller ugyldig. Opgradering er ikke tilgængelig!" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "Installationen kan ikke fortsætte, sørg venligst for at du har mysql udvidelsen indlæst!" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "Installationen kan ikke fortsætte, postgres er endnu ikke tilgængelig i beta!" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "Installationen kan ikke fortsætte, sørg venligst for at du har pgsql udvidelsen indlæst!" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "Databasetypen i indstillingsfilen er forkert (config/settings.php). Opgradering er ikke tilgængelig!" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "Databaseværdier i indstillingsfilen mangler (config/settings.php). Opgradering er ikke tilgængelig!" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "Indstillingsfilen blev ikke fundet eller er ikke læsbar (config/settings.php). Opgradering er ikke tilgængelig!" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "Standardværdi filen er ikke tilgængelig eller er ikke læsbar (install/functions/initial_settings.php). Installation er mulig, men uden foruddefineret data!" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Velkommen til NagiosQL installationsguiden" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Denne guide vil hjælpe dig med at installere og konfigurere NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Ved spørgsmål besøg venligst" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Lad os først undersøge dit lokale miljø, og se om alt hvad NagiosQL skal bruge er tilgængeligt.Lad os først undersøge dit lokale miljø, og se om alt hvad NagiosQL skal bruge er tilgængeligt." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "De grundlæggende krav er:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 eller nyere inklusiv:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "PHP modul:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(valgfri)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "PECL udvidelse:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "php.ini indstillinger" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads slået til (for upload funktioner)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start skal være slået fra" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "En MySQL databaseserver" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "Nagios 2.x/3.x" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "START INSTALLATION" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "START OPDATERING" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Krav" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Færdig" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Kontrollerer krav" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Kontrollerer klient" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Kontrollerer PHP version" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Kontrollerer PHP udvidelser" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Kontrollerer tilgængelige database-grænseflader" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Kontrollerer php.ini/.htaccess indstillinger" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Kontrollerer system-rettigheder" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "De følgende moduler/udvidelser er krævet for at køre NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "De næste par udvidelser er valgfri men anbefalet" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Kontroller hvilke af de understøttede udvidelser der er installeret. Mindst en af dem er krævet.Kontroller hvilke af de understøttede udvidelser der er installeret. Mindst en af dem er krævet." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Følgende indstillinger er krævet for at køre NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "AKTIVERET" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "DEAKTIVERET" + +#: install/step1.php:113 +msgid "Version" +msgstr "Version" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "opdaget" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "eller nyere er krævet" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Kunne indlæses. Tilføj venligst i php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "IKKE TILGÆNGELIG" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "Kun ny installation - opdateringer er kun understøttet når samme database grænseflade benyttes!" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "kan ikke være blank og skal indstilles" + +#: install/step1.php:184 +msgid "should be" +msgstr "bør være" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Læse-test på indstillingsfil (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Indstillingsfilen eksisterer ikke (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "vil blive oprettet" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Skrive-test på indstillingsfilen (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Skrive-test på indstillingsmappen (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Læse-test på en klasse-fil (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Læse-test på en startside-fil (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Læse-test på en skabelonfil (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Læse-test på en admin skabelonfil (templates/admin/admin_master.tpl.htm)Læse-test på en admin skabelonfil (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Læse-test på en fil-skabelon (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Læse-test på en billedfil (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Der er nogle fejl - kontroller venligst dine systemindstilling og læs kravene til NagiosQL!Der er nogle fejl - kontroller venligst dine systemindstilling og læs kravene til NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Læs INSTALLATION filen fra NagiosQL for finde vejledning til at løse dem.Læs INSTALLATION filen fra NagiosQL for finde vejledning til at løse dem." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Derefter skal du genopfriske denne side for at fortsætte" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Genopfrisk" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Miljøtest bestået korrekt" + +#: install/step1.php:264 +msgid "Next" +msgstr "Næste" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "NagiosQL startkoderne er ikke ens!" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Installation" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Udfyld venligst nedenstående formular. Krævede felter er markeret med *Udfyld venligst nedenstående formular. Krævede felter er markeret med *" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Database konfiguration" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "Databasetype" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "Databaseserver" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "Lokalt værtsnavn eller ip-adresse" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "Database serverport" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL DB bruger" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL DB adgangskode" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "Administrativ databasebruger" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "Administrativ database kodeord" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Slet databasen hvis den allerede eksisterer?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "NagiosQL bruger-opsætning" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Første NagiosQL bruger" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Første NagiosQL adgangskode" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Gentag venligst adgangskoden" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios konfiguration" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importer Nagios eksempel-konfiguration?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "NagiosQL sti værdier" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "Opret NagiosQL konfigurationsstier?" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "NagiosQL konfigurationssti" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "Nagios konfigurationssti" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "Begge værdier blev gemt i dine konfigurationsmål indstilling for lokalværter." + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "Hvis du vælge opret sti funktionen, skal du sørge for at NagiosQL grundstien eksisterer, og at webserver dæmonen har adgang til den. Derefter vil installationsprogrammet oprette de nødvendige undermapper i din lokalværts filsystem (hosts, services, backup osv.)" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Tag venligst en backup af din database før du fortsætter!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Færdiggør installation" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Udsend NagiosQL indstillinger" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "Database server forbindelse (privilegeret bruger)" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "Databaseserver version" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "Database server undstøttelse" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Slet eksisterende NagiosQL database" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Opretter ny database" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "Opret NagiosQL databasebruger" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "Installerer NagiosQL databasetabeller" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Opretter første NagiosQL administrator" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "Databaseserver forbindelse (NagiosQL bruger)" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Skriver globale indstillinger til databasen" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Skriver databasekonfiguration til settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importer Nagios eksempeldata" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "Opret og/eller gem NagiosQL sti-indstillinger" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Opdatér eksisterende NagiosQL database" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Installeret NagiosQL version" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Opgraderer fra version" + +#: install/step3.php:86 +msgid "to" +msgstr "til" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Konverterer databasen til utf8 tegnsæt" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Konverterer databasetabeller til utf8 tegnsæt" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Konverterer databasefelter til utf8 tegnsæt" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Opret ny NagiosQL database" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Databasen eksisterer allerede og sletning af database var ikke valgt, ret venligst eller håndter manueltDatabasen eksisterer allerede og sletning af database var ikke valgt, ret venligst eller håndter manuelt" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "bestået" + +#: install/step3.php:146 +msgid "unknown" +msgstr "ukendt" + +#: install/step3.php:211 +msgid "Back" +msgstr "Tilbage" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Slet venligst installationsmappen for at fortsætte!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "Databasetype er ikke defineret!" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "understøttet" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "ikke understøttet" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "Din NagiosQL installation er opdateret - ingen yderligere handlinger er nødvendige!" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "Opdateringer til NagiosQL 3.2 og nyere er kun understøttet af NagiosQL 3.0.0 og nyere!" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "Fejl ved valg af indstillingstabellen." + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "færdig" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "Tilføjede kun rettigheder til eksisterende bruger" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "SQL filen er ikke læsbar eller er tom" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "Ingen SQL opdateringsfil er tilgængelig" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "Indsætning af grunddata i indstillingsdatabasen mislykkedes:" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "Kan ikke åbne/skrive til config/settings.php" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "Indsætning af stidata i databasen mislykkedes:" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "Kontrollér rettighederne for de oprettede stier!" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "NagiosQL konfigurationsti er ikke skrivbar - kun databaseværdier er opdateret" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "Databasefejl ved konvertering til utf-8:" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/da_DK/LC_MESSAGES/index.html b/config/locale/da_DK/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/da_DK/index.html b/config/locale/da_DK/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/de_DE/LC_MESSAGES/de_DE.mo b/config/locale/de_DE/LC_MESSAGES/de_DE.mo new file mode 100644 index 0000000000000000000000000000000000000000..d29e93121801b777a6048eb9a2dd64598ac922ec GIT binary patch literal 76576 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%0Du_yo&LiSD}E(9A7>wMNVl4mHJBl z_@D>g5G@JN{5ZOws8kbVEw6T=y3Mx+yynta%$UQT(@~8i%bVMwk+Nvl_dUf_&QQpv zpsyW^#_^dJdVXta5#*Uo@i-pIDg!p;S3DHYou7rCWHnjr%^x!-Q?o(=^b~8a?s<1K zD(g;Oha_m`g)jQ4yb}0-Sf(zRv*#4=K6ykDm=kaNYXB6LOMQzU<^zv4&?-XN|%eZN^f@!lw5k!Or-IgoWdBieibo?`}>bOgiQauH3X%#Oqo&Y+P$m2<@N0i!65q)^t~<6 z^DAY_YM73uw!qmFa6Pu5DD1HNgK#D*HL-84W`;wvT1b#;+}a(-H6i}<@1{gz!M2AQ z2Y(gyhGBu!+X*;i)xGJ5+3!nbC^15W$OxtHc4Hn8~Dv zmf}@9wf&sORc6t*x}cp=kM}b%Hc|rcr~W|s;y^(lw)R2f)nVD#z<~SB)FjjOzr8Mg zaeFm561{|>B8Qq5;ktnShK>6i_q{T9l&d;w(0YdZkFG!70>tV}LkG`2ug&7*%4fn` zm@0@usK+BlZgd>B#pLMNmf@j=ogDlGj#m_c2UsX1eOT0|P<#2Th&&Fo_yAE()Jm|A z1DIAJRnWEe2ycZ$lExrfPqyug>}C~+CHREX7K*>|KOJ6O{e(32P^It~{`QG*@ZFG# zXJL4JGTDASoJ~c$b^H%cvmxckp-E=)@2EU?ypoA?9#S{qQI9zi>@grnI!_<;c)kp- z&h<MxrqC|@e2}$=#&_G(W;Lt9l4qyry`+d}$j?6esasno;OP@G;qH9ic z`EV`8^5_}d=_rWfPJa87Ce!rJ{&JH!Bx)=FlE9KjrwvrZW2&bGrsFf&GY~N7f99JI zhX{d7eTH0GdMByHa0>3TBVDhFCSL46a88)9t2tV-|6w~9-{7bx&S=l}cJKgkp98f=1jN19jM(7M9q zU|p8e`m2^@WRV;@BA?Xe^$LP!mrcth8Rb%blED^tv5U=>6_Aars14f%m~5g&`-}pV z^cb`$iB5>J2(mYyBTm1-ZRl0I(CCp*M8cT$*GhOu7u(j zcDNfN{M-7s#^tuEGp)K%TOa5@M5x_%-Evb;mM&jm$TlywZh1`Ax_*Rx(?&Cdluc`U zJ-)b(xr2`@`GK2j);|mSv7bsgu)x0(f#Lh|R20FBrEP^4CarI@)#j`oA^1q%8sdKk z(S0u#B~77p&F?_ryU-=QA4m>-gBa1ZB;y?tOQ|C0S~|@14-h?|QM@zcOyOsyQMc?H zVVRCmlwKII3^vF|g>tuq9HTA`vNJ=hb3=xTOpa20^pr~|N^QG!>ZdKV!)>$T_UvdC zwtfm6W9oVoHi~V;{unExud_BTP4GH#OxWn@q2Q~VPt^J%hnM7kG1oT~Bo43m;ZNy_ ztDlXN;UbA$d%(;D2C#R@#~YXgOa8bbe(z;{w;;9fCxz|?3(h>wiy+KF{miqnAFpkr z3LQ$gJVNWG+&x+-jc-iQ(l}Jd$5dR$D47B`mP`tTH^`vLh`j5!hO712V~}F#Q#kpjC}hmC_jePR=p6Ewfr)bFy?^Yz5sTgmnxR%f0-=^2f79 zdb-a=cnzE$*ht++MO36NVjsY1OFPG+maa#>Cmw?k(@_V0j4&hdgw!|<9N@lm{(F4T z#ZCfuBnIY#st;aHvYUDS>AG}0{z9bnXeV7Zh{x3B{!C6Gl00r$&wviCKI{h+|97eZ|NhZAD zbu4+7Eh#!E)^9>0?I5ZkC(p?Bfv+Xi{U_s)16p6_k>Q)DQIcKH#H_(ef!)jKn&N!; zwlNe`qYoA5>ww=u~p}|4%Do>C4F1z<4CLQa%y%E9?sG{`8hO^<~7?t^j%U`JrIbk@v zJE~!ScL@@?N(7c7=K}LGU9Hb773(2es9-p_20Y{aucClho>6DbhnP9j5KzQL>Q#Bk z#sVC07TQ^G0*3$=J4=)w^v=U?1)%}Z, 2012. +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:50+0100\n" +"PO-Revision-Date: 2012-03-09 22:50+0100\n" +"Last-Translator: \n" +"Language-Team: German (http://www.transifex.net/projects/p/nagiosql/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL Verwaltung" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "Willkommen bei NagiosQL, dem Administrationsmodul für das Erstellen, Ändern und Löschen von Nagios Konfigurationsdateien. Die Daten werden in einer Datenbank gespeichert und bei Bedarf als reguläre Konfigurationsdatei geschrieben." + +#: index.php:45 +msgid "Welcome to" +msgstr "Willkommen bei" + +#: index.php:46 +msgid "Welcome" +msgstr "Willkommen" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Bitte geben Sie Ihren Benutzernamen und Ihr Passwort für den NagiosQL Zugriff ein.
Sollten Sie keinen Zugang besitzen oder Ihr Passwort vergessen haben, so wenden Sie sich an einen Administrator." + +#: index.php:48 +msgid "Username" +msgstr "Benutzername" + +#: index.php:49 +msgid "Password" +msgstr "Passwort" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Verwaltung" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funktionen für die Administration von NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alarmierung" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Definieren von Kontaktdaten, Kontaktvorlagen, Kontaktgruppen und Zeitperioden." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Statistische Daten" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Gruppe" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Aktiv" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inaktiv" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Kontaktdaten" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Kontaktgruppen" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Zeitperioden" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Kontaktvorlagen" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Konfigurationsdatei erfolgreich geschrieben!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Konfiguration erfolgreich geschrieben:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Kann Konfigurationsdatei nicht öffnen/überschreiben (Berechtigungen prüfen)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Schreiben der Konfiguration fehlgeschlagen:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Kann die Konfigurationsdatei nicht öffnen/überschreiben (Berechtigungen auf dem entfernten System prüfen)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Konfigurationsdatei konnte nicht geschrieben werden (Entfernter Zugriff)" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI Konfigurationsdatei" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Datei kann nicht geöffnet werden (Berechtigungen prüfen)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Kann die temporäre Datei nicht öffnen" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Konfigurationsdatei konnte nicht gelesen werden (Entfernter Zugriff)" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Neuer Befehl eingetragen:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Befehl modifiziert:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Datenbankeintrag fehlgeschlagen! Nicht alle Pflichtfelder ausgefüllt!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "Datenbankeintrag fehlgeschlagen! Keine Schreibrechte." + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Befehlsdefinitionen (commands.cfg)" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Speichern nicht möglich!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "nicht klassifiziert" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "Prüfbefehl (check)" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "Spezialbefehl (misc)" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Eintrag kann nicht deaktiviert werden, da er als obligatorischer Eintrag in einer anderen Konfiguration verwendet wird" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Befehlsname" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Befehlszeile" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Fehler bei der Datenbankabfrage:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Definitionen" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Definieren von Prüfbefehlen, Alarmierungsbefehlen und Spezialbefehlen." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "ist nicht beschreibbar" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Nagios Konfigurationsdatei" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "ist keine gültige Konfigurationsdatei!" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "CGI Konfigurationsdatei" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSH Modul nicht geladen!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTP Modul nicht geladen!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Neue Domäne hinzugefügt:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domäne modifiziert:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Konfigurationsdomänen" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Warnung, es ist mindestens ein Fehler aufgetreten, bitte prüfen!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Bitte füllen Sie alle Felder mit einem * aus" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Das folgende Feld enthält unerlaubte Zeichen:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Konfigurationsziel" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Beschreibung" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Neue Kontaktgruppe eingetragen:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Kontaktgruppe modifiziert:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Kontaktgruppen definieren (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Achtung, noch keine Kontakte definiert!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Kontaktgruppe" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Neuer Kontakt eingetragen:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Kontakt modifiziert:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Kontakte definieren (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Achtung, noch keine Zeitperioden definiert!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Achtung, noch keine Befehle definiert!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Kontaktname" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Neues Kontakttemplate eingefügt:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Kontakttemplate modifiziert:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Kontaktvorlagen definieren (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Datendomänen" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "Achtung, noch keine Konfigurationsziele definiert!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Einschalten" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Ausschalten" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Datendomäne" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Datei gelöscht" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "erfolgreich gelöscht" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Backupdateien löschen" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filterausdruck" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Suche" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Löschen" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Filter zurücksetzen" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Backupdatei" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "Pflichtfelder" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Abbrechen" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "CTRL halten um mehr
als einen Eintrag auszuwählen" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "Keine Backupdateien oder keine Rechte die Backupdateien zu lesen" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Konfigdateien löschen" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Konfigurationsdatei" + +#: admin/download.php:67 +msgid "Download" +msgstr "Download" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Neue Gruppe angelegt:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Benutzer modifizert:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Gruppenadministration" + +#: admin/group.php:114 +msgid "Read" +msgstr "Lesen" + +#: admin/group.php:115 +msgid "Write" +msgstr "Schreiben" + +#: admin/group.php:116 +msgid "Link" +msgstr "Verbinden" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Gruppenname" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Keine Daten" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Hilfesystem Texteditor" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Oberbereich" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Unterbereich" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Sprache" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagios Version" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Lade Standard Text" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Neues Hostabhängigkeit eingefügt:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Hostabhängigkeit modifiziert:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Hostanhängigkeiten definieren (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Achtung, noch keine Hosts und Hostgruppen definiert!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Konfigurationsname" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Abhängige Hosts" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Abhängige Hostgruppen" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Neue Hosteskalation eingefügt:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Hosteskalation modifiziert:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Hosteskalation definieren (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Achtung, noch keine Kontake oder Kontaktgruppen definiert!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Hostgruppen" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Neue erweiterte Hostinformation eingefügt:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Erweiterte Hostinformation modifiziert:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Erweiterte Hostinformationen definieren (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Achtung, noch keine Hosts definiert!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Hostname" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notizen" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Neue Hostgruppe eingetragen:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Hostgruppe modifiziert:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Hostgruppen definieren (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Hostgruppen" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Neuen Host eingetragen:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host modifizert:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "Die dazugehörenden, nicht mehr benutzten Konfigurationsdateien wurden erfolgreich gelöscht!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Hostdatei gelöscht:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Globale Konfigurationsdateien können auf den Zielsystemen nicht gelöscht werden - bitte manuell überprüfen" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Beim Löschen der nicht mehr benutzten Konfigurationsdateien ist ein Fehler aufgetreten - bitte überprüfen!" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Host definieren" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Achtung, noch keine Kontaktdaten definiert!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Neues Hosttemplate eingefügt:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Hosttemplate modifiziert:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Hosttemplates definieren (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Hosttemplatename" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Datei Upload-Fehler:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Datei importiert - Datei [Überschreibflag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Import von Konfigurationsdateien" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Vorlagen" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Importdatei" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Lokale Importdatei" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Überschreibe Datenbankwerte" + +#: admin/import.php:94 +msgid "Import" +msgstr "Import" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "CTRL halten um mehr
als einen Eintrag auszuwählen" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "Um Fehler und Fehlkonfigurationen vorzubeugen, sollte der Import soweit möglich in einer sinnvollen Reihenfolge vorgenommen werden. Wir empfehlen folgenden Ablauf:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "Prüfen Sie Ihre Konfiguration nach dem Import!
Beim Auftreten eines Fehlers oder einer unvollständigen Konfiguration kann ein erneuter Import der einzelnen fehlerhaften Konfiguration oft Abhilfe schaffen." + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Der Pfad aus Sicht des Webservers" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Der komplette Pfad zur NagiosQL Installation" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Wenn eine gesicherte Verbindung benutzt werden soll, muss die Installation mit Angabe von https anstatt http erneut ausgeführt werden" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Der Pfad zu einem temporären Verzeichnis das zur Zwischenspeicherung der Daten benötigt wird, normalerweise unter Linux /tmp" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Bitte wählen Sie die Sprache für NagiosQL" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Die Kodierung sollte auf utf-8 stehen bleiben. Alle Ändeurngen auf Ihr eigenes Risiko" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Auflösbarer Hostname oder IP-Adresse des Datenbank Servers
z.B. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQL Server Port, Vorgabewert ist 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Name der NagiosQL Datenbank
z.B. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Benutzer mit ausreichenden Rechten für die NagiosQL Datenbank
Der Benutzer sollte zumindest SELECT, INSERT, UPDATE und DELETE Berechtigungen haben" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Passwort des o.a. Benutzers" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Aus Sicherheitsgründen wird die Sitzung nach der hier angebeben Anzahl von Sekunden bei Inaktivität beendet" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Authentifikation auf Basis von NagiosQL oder über den Webserver. Über den Webserver lässt sich z.B. auch eine LDAP Verbindung realisieren." + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Wieviel Einträge pro Seite sollen angezeigt werden (z.B. bei Hosts oder Services)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Die Auswahl mehrerer Einträge innerhalb der Dialogfelder wie in NagiosQL 2 durch STRG+ linker Mausclick" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Aktiviere oder deaktiviere Warnungen wenn ein Pflichtfeld keine Daten in Objekten mit Vorlagen enthält" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Aktiviere oder Deaktiviere die automatische Versionskontrolle" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Sollten Sie einen Proxyserver für Verbindungen ins Internet (Port 80) benötigen, dann definieren Sie hier einen." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Adresse oder Name des Proxyservers, z.B. proxy.meinedomain.de:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Benutzername für Proxyverbindungen (optional)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Passwort für Proxyverbindungen (optional)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Information Pop-Up" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Keine Information verfügbar" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Daten erfolgreich gelöscht. Betroffene Datensätze:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Logbuch einsehen" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Lösche Logbucheinträge zwischen:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Bitte mindestens eine Start- oder eine Stopzeit eintragen" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Wollen Sie die Logeinträge zwischen den angegebenen Daten wirklich löschen?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "vorherige 20 Einträge" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "nächste 20 Einträge" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Fehler beim Einfügen der Daten in die Datenbank:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Daten wurden erfolgreich in die Datenbank eingetragen!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Zugriffsgruppe festgelegt für Menuitem:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Menu Zugriffsrechte festlegen" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Damit ein Benutzer Zugriff hat, muss er Mitglied der hier ausgewählten Gruppe sein." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Überwachung" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Definieren von Host- und Serviceüberwachungen sowie Host- und Servicegruppen." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Services" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Servicegruppen" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Hostvorlagen" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Servicevorlagen" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Verfügbar" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Ausgewählt" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Nagios Hauptkonfigurationsdatei" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Passwort erfolgreich geändert" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Passwort zu kurz oder Passwortfelder ungleich!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Das alte Passwort ist falsch" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Speichern" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Die neuen Passwörter sind ungleich!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Das neue Passwort ist zu kurz - mindestens 6 Zeichen sind nötig!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Neue Serviceabhängigkeit eingefügt:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Serviceabhängigkeit modifiziert:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Serviceanhängigkeiten definieren (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Abhängige Services" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Neue Serviceeskalation eingefügt:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Serviceeskalation modifiziert:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Serviceeskalation definieren (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Neue erweiterte Serviceinformation eingefügt:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Erweiterte Serviceinformation modifiziert:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Erweiterte Serviceinformationen definieren (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Hostname" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Service" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Neue Servicegruppe eingetragen:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Servicegruppe modifiziert:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Servicesgruppen definieren (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Achtung, noch keine Services definiert!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Servicegruppe" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Neuen Service eingefügt:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Service modifiziert:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Servicedatei gelöscht:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Services definieren" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Achtung, noch keine Hosts oder Hostgruppen definiert!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Achtung, noch keine Prüfbefehle definiert!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "Achtung, noch keine Kontakte oder Kontaktgruppen definiert!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Servicename" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Alle Konfigurationen" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Neue Servicevorlage eingefügt:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Servicevorlage modifiziert:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Servicevorlagen definieren (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Vorlagenname" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Servicebeschreibung" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl Modul nicht geladen, der Proxy wird deaktiviert!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "Beim Schreiben der Einstellungen in die Datenbank trat ein Fehler auf:" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Fehler bei der Erkennung der richtigen Umgebungsvariable locale. Bitte diese Fehlermeldung und die Ausgabe von 'locale -a' melden." + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Systemeinstellungen wurden geändert" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Beim Schreiben der settings.php trat ein Fehler auf - bitte Berechtigungen prüfen" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "ist nicht beschreibbar (Berechtigungen prüfen)!" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "NagiosQL Systemeinstellungen konfigurieren" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Ändern der aktuellen NagiosQL Einstellungen (Datenbankbenutzer, Sprache, usw.)" + +#: admin/settings.php:158 +msgid "Path" +msgstr "Pfad" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Temporäres Verzeichnis" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Server Protokoll" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Encoding" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Datenbank" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQL Server" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQL Server Port" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Datenbankname" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Datenbankbenutzer" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Datenbankpasswort" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Sicherheit" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Automatisches Ausloggen nach" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Authentifikation" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Allgemeines" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Zeilen pro Seite" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Auswahl methode" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Warnungen bei Templatewerten" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Online Versionsüberprüfung" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Proxyserver" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Proxyadresse" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Proxy Benutzername (optional)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Proxy Passwort (optional)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Spezialbefehle" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Definieren von Host- und Serviceabhängigkeiten, Host- und Serviceeskalationen sowie Host- und Servicezusatzdaten." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Host Abhängigkeiten" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Host Eskalationen" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Host AddOn" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Service Abhängigkeiten" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Service Eskalationen" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Service AddOn" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "NagiosQL Supportseite" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "Support- und Kontaktinformationen" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "Für Fragen, das öffentliche Supportforum oder Kontaktinformationen besuchen Sie unsere Webseite unter:" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "NagiosQL durch Spenden unterstützen" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "Wenn Ihnen NagiosQL gefällt und Ihre tägliche Arbeit erleichtert, dann möchten Sie das Projekt eventuell durch eine Spende unterstützen. Das hilft uns NagiosQL weiterzuentwickeln und dabei entstehende Kosten zu decken. Vielen Dank für Ihre Spende!" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "Für NagiosQL auf Sourceforge spenden" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "Übersetzungsdienste" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "NagiosQL wurde bereits in mehrere Sprachen übersetzt. Da einige Übersetzer bei späteren Versionen nicht mehr verfügbar waren, können dabei einige unübersetzte Wörter oder Sätze vorkommen. Wenn Sie uns beim Vervollständigen oder Korrigieren der Übersetzungen helfen oder an zusätzlichen Sprachen mitarbeiten wollen, dann melden Sie sich bei uns! Die Übersetzungen können einfach online bearbeitet werden - wir benutzen einen offenen Übersetzungsdienst bei dem Sie sich jederzeit kostenlos registrieren können. " + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "Transifex Übersetzungsservice" + +#: admin/support.php:92 +msgid "Version check" +msgstr "Überprüfung der NagiosQL Version" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "Die Onlineüberprüfung der Version ist nicht eingeschaltet. Sie können diese auf der Einstellungsseite aktivieren." + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "Die Onlineüberprüfung öffnet eine Verbindung zur NagiosQL Entwicklerwebseite und prüft, ob Sie die aktuelle Version verwenden." + +#: admin/support.php:106 +msgid "Environment check" +msgstr "Umgebungsprüfung" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "Fehler!" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "OK" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "PHP Version" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "Benötigt:" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "PHP Modul:" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "MySQL Version" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "PHP ini Einstellungen:" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "Schreib-/Leserechte:" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "Überprüfung der Konfigurationsdomäne" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "Die nachstehenden Überprüfungen basieren auf den eingestellten Werten bei der Daten- und Konfigurationsdomäne. Die Datendomäne kann über das Pull-Down-Menu oben rechts geändert werden. Die Konfigurationsdomäne ist innerhalb der jeweiligen Datendomäne definiert. Wiederholen Sie diese Überprüfungen für alle Konfigurationsdomänen die Sie verwenden." + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "Name der Konfigurationsdomäne" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "Verbindungstyp" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "Verbindungsprüfung" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "nur lesen" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagios Prozess Datei" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "Datei fehlt" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "Demon ist nicht gestartet" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "Wird nicht benutzt bei FTP" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "Demon läuft nicht" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagios Command Datei" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagios Binary Datei" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "Nicht ausführbar" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "Überprüfung der Konfigurationsdateien und der Demon Konfiguration" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "Konfigurationsname" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "Benutzt in der Datendomäne" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "Eingebunden in der Demon Konfiguration" + +#: admin/support.php:549 +msgid "not used" +msgstr "Nicht benutzt" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "Definition fehlt" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "Definition fehlt, wird aber aktuell nicht benutzt" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "Falscher Basispfad:" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "Konfigurationsdatei nicht lesbar" + +#: admin/support.php:606 +msgid "Not used" +msgstr "Nicht benutzt" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "unbenutzt - bitte löschen" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Hinauf" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Hinunter" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Bearbeiten" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Neue Zeitgruppe eingetragen:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Zeitgruppe modifiziert:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Zeitperiodendefinitionen (timeperiods.cfg)" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Bitte eine Zeitdefinition und einen Zeitbereich eintragen" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Zeitperiode" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Verschiedene Werkzeuge" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Verschiedene nützliche Funktionen wie Datenimport, Daemonsteuerung etc." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Neuen Benutzer angelegt:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Benutzeradministration" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Passwörter sind ungleich!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Bitte ein Passwort eintragen" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Passwort ist zu kurz - mindestens 6 Zeichen sind nötig!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Webserver Authentifikation" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "Schreiben der Konfiguration fehlgeschlagen - es wurde kein existierender bzw. kein aktiver Datensatz gefunden." + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Schreibe Hostkonfigurationen" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Keine Konfiguration definiert!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Schreibe Servicekonfigurationen" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "Kein Datensatz oder kein aktivierter Datensatz gefunden - leere Konfiguration geschrieben" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Kann das Nagios Binary nicht finden oder habe keine Rechte dieses auszuführen." + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Ihr FTP Server unterstützt nicht die (FTP SITE EXEC) Funktion zum Ausführen von Befehlen!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Entfernte Ausführung des Nagios Prüfbefehls fehlgeschlagen (SSH Verbindung)" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Nagios Programmdatei oder Konfiguration nicht gefunden (Entfernter Zugriff via SSH/SFTP)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios wurde erfolgreich neu gestartet" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Der Neustart Befehl wurde erfolgreich an Nagios übermittelt" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Neustart von Nagios schlug fehl - Die Nagios Command Datei konnte nicht gefunden werden oder die Datei Berechtigungen reichen nicht aus" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Nagios command Datei nicht gefunden oder es besteht keine Schreibberechtigung auf die Datei" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Neustart fehlgeschlagen - Der Nagios Dienst lief nicht" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Der Nagios Dienst läuft nicht, die Aufforderung zum Neustart konnte nicht gesendet werden!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Neustart fehlgeschlagen aufgrund von FTP Fehlern" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Nagios Neustart ist nicht möglich über eine FTP Verbindung" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Neustart von Nagios schlug fehl - Die Nagios Command Datei konnte nicht gefunden werden oder die Datei Berechtigungen reichen nicht aus (Entfernter Zugriff via SSH/SFTP)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios wurde erfolgreich neu gestartet (Entfernter Zugriff via SSH/SFTP)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Der Neustart Befehl wurde erfolgreich an Nagios übermittelt (Entfernter Zugriff via SSH/SFTP)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Nagios command Datei nicht gefunden oder es besteht keine Schreibberechtigung auf die Datei (Entfernter Zugriff via SSH/SFTP)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Prüfe geschriebene Konfigurationsdateien" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Konfigurationsdateien prüfen:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Nagios neu starten:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Schreibe Überwachungsdaten" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Schreibe zusätzliche Daten" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Achtung, immer die Konfiguration prüfen bevor Nagios neu gestartet wird!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Ausführen" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Geschriebene Nagios Konfiguration überprüft - Warnungen/Fehler:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Die geschriebene Konfiguration ist gültig, Nagios kann neu gestartet werden!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "prüfen Sie die Proxyeinstellungen" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Installiert" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Information" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Sie haben bereits die letzte stabile Version installiert" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "You are using an old NagiosQL version. Please update to the latest stable version" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "Sie verwenden eine neuere Entwicklerversion, welche nicht offiziell unterstützt wird." + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domäne" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Servername" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Methode" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Verzeichnis zum SSH Schlüsselpaar" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Konfigurationsverzeichnisse" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Basisverzeichnis" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Hostverzeichnis" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Serviceverzeichnis" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Backupverzeichnis" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Host Backupverzeichnis" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Service Backupverzeichnis" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Nagios Bilderverzeichnis" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Benutze die globale Domäne" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Übersetze UTF8 Daten in Konfigurationsdateien" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Zugriffsschlüssellöcher" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Zugriffsschlüssel" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Registriert" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Funktion" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Markierte" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Hinzufügen" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Formularprüfung" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Sicherheitsabfrage" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Ja" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Nein" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Zeit" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Benutzer" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP-Adresse" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Eintrag" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Von" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Bis" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Lösche Logeinträge" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Kopieren" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Passwort bestätigen" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Altes Passwort" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Neues Passwort" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Passwort ändern" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Menüseite" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Suchbegriff" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Konfigdatei schreiben" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Befehl" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Befehlstyp" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Ausschliessen" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Einschliessen" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Zeitdefinitionen" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Wochentag" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Zeitbereich" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Zeitdefinition" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Einfügen" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Auswahl ändern" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Zeitperiode Hosts" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Zeitperiode Services" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Hostoptionen" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Serviceoptionen" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Hostbefehl" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Servicebefehl" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "E-Mail Adresse" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Pagernummer" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Zusatzadresse" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Hostalarmierung" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Servicealarmierung" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Darf Befehle senden" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Behält Statusinfo" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Behält Nichtstatusinfo" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Mitglieder" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Gruppenmitglieder" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Allgemeine Einstellungen" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Serviceeinstellungen" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Diese Hostkonfiguration bestehenden Services hinzufügen" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Vorgeschaltete Hosts" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Prüfbefehl" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Befehlsübersicht" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Zusätzliche Vorlagen" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Prüfeinstellungen" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Initialstatus" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Wiederholintervall" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Max. Prüfversuche" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Prüfintervall" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Aktive Prüfungen" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Passive Prüfungen" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Prüfperiode" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Aktualitätsschwelle" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Aktualitätsprüfung" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Hostverfolgung" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Serviceverfolgung" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Ereignisbefehl" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Ereignisverarbeitung" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Untere Flatterschwelle" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Obere Flatterschwelle" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Flattererkennung" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Flattererkennungsoptionen" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Behalte Statusinfo" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Behalte Nichtstatusinfo" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Verarbeite Perf. Daten" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Alarmeinstellungen" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Kontakte" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Meldungsdauer" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Meldungsoptionen" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Meldungsinterval" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Verzögerung erste Meldung" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Meldungen" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Verfolgungsoptionen" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Zusatzeinstellungen" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRML Bild" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notizen URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Statusbild" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Icon Bild" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Vorgangs URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D Koordinaten" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D Koordinaten" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Icon Bild ALT Text" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "ein" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "aus" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "skip" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Freie Variabel Definitionen" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Variabelname" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Variablen Wert" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Aktivieren" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Deaktivieren" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Soll dieser Datenbankeintrag wirklich gelöscht werden:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Sollen die markierten Einträge wirklich gelöscht werden?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Alle angezeigten Datensätze markieren" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Datei" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Alle Konfigdateien schreiben" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Hostadresse" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Anzeigename" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Diese Definition als Vorlage verwenden" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Generischer Name" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Bitte mindestens eine Option auswählen bei:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Hostgruppenname" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Hostgruppenmitglieder" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Ist unstetig" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Parallele Prüfungen" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Filter Konfigurationsname" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Importverzeichnis" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Bitte einen Variablennamen und einen Wertbereich eintragen" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Warnung:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Es wurden nicht alls Pflichfelder ausgefüllt!

Sofern diese Werte über eine Vorlage gesetzt werden kann trotzdem gespeichert werden - andernfalls wird eine ungültige Konfiguration entstehen!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagios Basisverzeichnis" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Konfigurationsdatei schreiben" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Es wurden nicht alle Befehlsargumente (ARGx) für den ausgewählten Befehl ausgefüllt!

Wenn diese Argumente nicht benötigt werden, speichern Sie einfach - andernfalls wird eine ungültige Konfiguration entstehen!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Servicegruppenmitglieder" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Servicegruppenname" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Hostgruppen" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Vererbung" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Ausführungsfehlerkriterium" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Meldungsfehlerkriterium" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Abhängigkeitsperiode" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Eskalationsdauer" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Eskalationsoptionen" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Erste Meldung" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Letzte Meldung" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "Abhängige Servicegruppen" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Hilfe" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Kalender" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Gruppenname" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Benutzer" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Zugriffsgruppe" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Benutzerdefinitionen" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Benutzername" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Benutzerrechte" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Objektzugriffsrestriktionen" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Erlaube Gruppenadministration" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Zeige verknüpfte Daten" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Verstecke verknüpfte Daten" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "Benutzersprache" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Standarddomäne" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "Die hier zugefügten Services müssen zusätzlich neu geschrieben werden. Das Schreiben der Hostkonfiguration alleine genügt nicht, weil die Änderungen in der Servicekonfiguration eingetragen werden." + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Montag" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Dienstag" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Mittwoch" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Donnerstag" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Freitag" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Samstag" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Sonntag" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Hauptseite" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Überwachung" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Befehle" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Spezialitäten" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Werkzeuge" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Service Abhängigkeiten" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Service Eskalationen" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Host Abhängigk." + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Host Eskalation" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Host erweitert" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Service erweitert" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Datenimport" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Benutzer" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Gruppen" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagios steuern" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logbuch" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios Config" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Einstellungen" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definitionen" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI Config" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Menu Zugriff" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domänen" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Hilfe Editor" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "Datendomäne" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "Konfigdomäne" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "Support" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Achtung: Konfigurationsdatei ist veraltet!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "Achtung: kein Konfigurationsziel definiert!" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Kann die alte Konfigurationsdatei nicht sichern und löschen (Berechtigungen prüfen)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Kann die alte Konfigurationsdatei nicht sichern aufgrund falscher Dateiberechtigungen (FTP Remote Dateirechte)" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Kann die alte Konfigurationsdatei nicht sichern aufgrund falscher Dateiberechtigungen (Entfernter Zugriff via SSH/SFTP)" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "Datei kann nicht gelöscht werden (Berechtigungen prüfen)!" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "Datei kann nicht gelöscht werden (Datei existiert nicht)!" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Datei kann aufgrund falscher Dateiberechtigungen nicht gelöscht werden (FTP Remote Dateirechte)" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Datei kann nicht gelöscht werden, da sie nicht exisitiert (Entfernter Zugriff via FTP)" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Datei kann aufgrund falscher Dateiberechtigungen nicht gelöscht werden (Entfernter Zugriff via SSH/SFTP)" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Datei kann nicht gelöscht werden, da sie nicht exisitiert (Entfernter Zugriff via SSH/SFTP)" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Kann die Konfigurationsdatei nicht abholen (FTP Verbindung fehlgeschlagen)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Kann die Konfigurationsdatei nicht schreiben (FTP Verbindung fehlgeschlagen)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Kann die Konfigurationsdatei nicht abholen (SSH/SFTP Verbindung fehlgeschlagen)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Kann die Konfigurationsdatei nicht abholen, da sie nicht existiert (Entfernter Zugriff via SSH/SFTP)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Kann die Konfigurationsdatei nicht schreiben (Entfernter Zugriff via SSH/SFTP)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Es ist nicht möglich Konfigurationsdateien direkt aus der globalen Domäne zu schreiben!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "Das Schreiben der Konfiguration ist fehlgeschlagen - es wurde kein existierender bzw. kein aktiver Datensatz gefunden oder die Schreibrechte fehlen." + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Konfigurationsdatei konnte nicht geschrieben werden (FTP Verbindung fehlgeschlagen)" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Kann die Konfigurationsdatei nicht öffnen/überschreiben (FTP Verbindung fehlgeschlagen)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Kann Konfigurationsdatei nicht öffnen/überschreiben (Entfernter Zugriff via SSH/SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Verbindung zum entfernten System ist fehlgeschlagen (SSH2 Verbindung):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "Der SSH Public Key existiert nicht oder ist nicht lesbar" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "Der SSH Private Key existiert nicht oder ist nicht lesbar" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Verbindung zum entfernten System ist fehlgeschlagen (FTP Verbindung):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Kann das Verzeichnis nicht öffnen" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "Veraltet" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "kein Ziel" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "fehlt" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "Aktuell" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Letzte Datenbankänderung:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "Letzte Dateiänderung beim Konfigurationsziel" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Löschen wegen eines Datenbankfehlers fehlgeschlagen:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Keine Daten gelöscht. Möglicherweise existiert der Datensatz nicht, oder er ist Löschgeschützt." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Daten gelöscht mit id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- von Tabelle:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- Anzahl betroffene Datensätze:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Daten gelöscht aus der Tabelle:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "Kein Datensatz gelöscht. Möglicherweise existiert der Datensatz nicht, er ist Löschgeschützt, die Schreibrechte fehlen oder er hat noch nicht aufgelöste Abhängigkeiten. Benutze die \"info\" Funktion für weitere Informationen über Abhängigkeiten!" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "Kein Datensatz gelöscht. Möglicherweise existiert der Datensatz nicht, er ist Löschgeschützt oder die Schreibrechte fehlen." + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Kopieren fehlgeschlagen - Tabelle [Neuer Name]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Daten in Tabelle kopiert - Tabelle [Neuer Name]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "Kein Datensatz kopiert. Möglicherweise existiert der Datensatz nicht, es wurde kein Datensatz ausgewählt oder die Schreibrechte fehlen." + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "Kein Datensatz aktiviert. Möglicherweise existiert der Datensatz nicht, es wurde kein Datensatz ausgewählt oder die Schreibrechte fehlen." + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Datensätze erfolgreich aktiviert. Betroffenene Datensätze: " + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Datensatz aktiviert aus der Tabelle:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Kein Datensatz aktiviert. Möglicherweise existiert der Datensatz nicht, es wurde kein Datensatz ausgewählt oder die Schreibrechte fehlen." + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "Kein Datensatz deaktiviert. Möglicherweise existiert der Datensatz nicht, er kann nicht deaktiviert werden, es wurde kein Datensatz ausgewählt oder die Schreibrechte fehlen. Benutze die \"info\" Funktion für weitere Informationen über Abhängigkeiten!" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Datensatz erfolgreich deaktiviert. Betroffene Datensätze:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Kein Datensatz deaktiviert. Möglicherweise existiert der Datensatz nicht, es wurde kein Datensatz ausgewählt oder die Schreibrechte fehlen." + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "Verknüpfungsinformationen für " + +#: functions/data_class.php:891 +msgid " of table " +msgstr " aus der Tabelle " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Verknüpfung nach " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", Eintrag " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "löschen möglich" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "löschen nicht möglich" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "Konfigurationsdaten nicht gefunden:" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Kann die Konfigurationsdatei nicht empfangen (Entfernter Zugriff via FTP)" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Kann die Konfigurationsdatei nicht empfangen (Entfernter Zugriff via SSH/SFTP)" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "Keine gültige Konfiguration gefunden:" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "Importdatei existiert nicht oder ist nicht lesbar:" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabelle für die Importdefinition" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "ist nicht verfügbar" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "innerhalb" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "existiert bereits und wurden nicht überschrieben" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "konnten nicht geschrieben werden" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "konnte nicht eingetragen werden" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "erfolgreich eingetragen" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Fehler: ungültige Anzahl Argumente - kann die Servicegruppenmitglieder nicht eintragen" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Fehlende Parameter für die Serververbindung!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Die Verbindung zum Datenbankserver erzeugte den folgenden Fehler:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Fehlende Parameter für die Datenbankverbindung!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Menu ausblenden" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Menu einblenden" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Seite" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Uneingeschränkter Zugriff" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Fehler beim Verbinden mit der Datenbank: " + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Fehler bei der Erkennung der richtigen Umgebungsvariable locale. Bitte diese Fehlermeldung und die Ausgabe von 'locale -a' an bugs@nagiosql.org schicken" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Webserver-Login erfolgreich" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Login erfolgreich" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Login fehlgeschlagen!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Session timeout erreicht - Sekunden:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Unerlaubte Seite aufgerufen:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "User in Datenbank nicht gefunden" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Administration" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Eingeloggt:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Abmelden" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Achtung, das Template konnte nicht gefunden werden oder ist nicht schreibbar, bitte überprüfe die Rechte! - Datei:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "Einige Konfigurationsdateien wurden nicht geschrieben. Es wurde kein existierender bzw. kein aktiver Datensatz gefunden oder die Schreibrechte fehlen." + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "Konfigurationsdateien erfolgreich geschrieben!" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Der Benutzer Admin kann nicht gelöscht werden" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost kann nicht gelöscht werden" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Nicht genügend Rechte um die Konfiguration zu öffnen" + +#: functions/translator.php:56 +msgid "English" +msgstr "Englisch" + +#: functions/translator.php:60 +msgid "German" +msgstr "Deutsch" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chinese (Simplified)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italienisch" + +#: functions/translator.php:72 +msgid "French" +msgstr "Französisch" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russisch" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Spanisch" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugiesisch (Brasilianisch)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Niederländisch" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Dänisch" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Online Handbuch" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "Datenbankverbindung fehlgeschlagen. Upgrade ist nicht verfügbar!" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "Einstellungstabelle nicht vorhanden oder fehlerhaft. Das Upgrade ist nicht verfügbar!" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "Die Installation kann nicht fortgesetzt werden. Bitte stellen Sie sicher, dass die mysql Erweiterung geladen ist!" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "Die Installation kann nicht fortgesetzt werden. Postgres ist in der aktuellen Version noch nicht verfügbar!" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "Die Installation kann nicht fortgesetzt werden. Bitte stellen Sie sicher, dass die pgsql Erweiterung geladen ist!" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "Datenbanktyp in der Konfigurationsdatei ist ungültig (config/settings.php). Upgrade nicht verfügbar!" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "Datenbankeinstellungen in der Konfigurationsdatei nicht gefunden (config/settings.php). Upgrade nicht verfügbar!" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "Konfigurationsdatei nicht gefunden oder nicht lesbar (config/settings.php). Upgrade ist nicht verfügbar!" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "Die Datei mit den Einstellungsvorgaben ist nicht verfügbar oder kann nicht gelesen werden (install/functions/initial_settings.php). Die Installation ist möglich, aber ohne Standardwertvorgaben!" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Willkommen zum NagiosQL Installations Assistenten" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Dieser Assistent hilft Ihnen NagiosQL zu installieren und zu konfigurieren." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Für Rückfragen besuchen Sie bitte" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Zuerst prüfen wir die lokale Umgebung und schauen ob NagiosQL alles findet was es benötigt." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "Die wichtigsten Voraussetzungen sind:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 oder größer, inklusive:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "PHP Module:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(optional)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "PECL Erweiterung:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "php.ini Einstellungen" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads on (für Upload Unterstützung)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start sollte auf \"off\" stehen" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Ein Datenbankserver" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "Nagios 2.x/3.x" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "STARTE NEUINSTALLTION" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "STARTE AKTUALISIERUNG" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Voraussetzungen" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Ende" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Überprüfe Voraussetzungen" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Überprüfe Client" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Überprüfe PHP Version" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Überprüfe die PHP Erweiterungen" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Überprüfe vorhandene Datenbankschnittstellen" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Überprüfe php.ini/.htaccess Einstellungen" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Überprüfe Systemberechtigungen" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "Die folgenden Module/Erweiterungen sind notwendig für NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "Die nächsten Erweiterungen sind optional aber empfohlen" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Überprüfe welche der unterstützten Erweiterungen installiert sind. Wenigstens eine ist notwendig" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Die folgenden Einstellungen sind notwendig für NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "AKTIVIERT" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "NICHT EINGESCHALTET" + +#: install/step1.php:113 +msgid "Version" +msgstr "Version" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "erkannt" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "oder größer ist notwendig" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Kann geladen werden. Bitte zur php.ini hinzufügen" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NICHT VERFÜGBAR" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "Nur Neuinstallation möglich - Upgrades werden nur bei gleichbleibendem Datenbankinterface unterstützt!" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "Kann nicht leer sein und muss gesetzt werden" + +#: install/step1.php:184 +msgid "should be" +msgstr "Sollte auf" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Lesezugriff auf die Konfigurationsdatei (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Konfigurationsdatei existiert nicht (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "wird später erstellt" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Schreibzugriff auf die Konfigurationsdatei (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Schreibzugriff auf das Konfigurationsverzeichnis (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Lesezugriff auf eine Klassendatei (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Lesezugriff auf die Startseite (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Lesezugriff auf eine Template Datei (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Lesezugriff auf ein Admin-Template (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Lesezugriff auf ein File-Template (templates/files/contacts.tpl.da)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Lesezugriff auf ein Bild (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Es sind Fehler aufgetreten. Bitte überprüfen Sie die Einstellungen und lesen Sie die Dokumentation über die Systemanforderungen!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Die Datei INSTALLATION enthält Informationen um die Probleme zu beheben." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Nach Änderungen aktualisieren Sie bitte diese Seite um fortzufahren" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Aktualisieren" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Umgebungstest erfolgreich" + +#: install/step1.php:264 +msgid "Next" +msgstr "Weiter" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "Die NagiosQL Administrationspasswörter sind nicht gleich!" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Einrichtung" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Bitte vervollständigen Sie das u.a. Formular. Pflichtfelder sind mit einem * markiert" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Datenbank Konfiguration" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "Datenbanktyp" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "Datenbankserver" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "Lokaler Hostname oder IP-Adresse" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "Datenbankserver Port" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL Datenbank Benutzer" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL Datenbank Passwort" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "Administrativer Datenbankbenutzer" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "Administratives Datenbankpasswort" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Lösche Datenbank, sofern sie bereits existiert?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "NagiosQL Benutzer Einrichtung" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Erster NagiosQL Benutzer" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Erstes NagiosQL Passwort" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Bitte Passwort wiederholen" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios Konfiguration" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importiere Nagios Beispiel Konfiguration?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "NagiosQL Verzeichnisdaten" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "Erstelle NagiosQL Verzeichnisse?" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "NagiosQL Konfigurationsverzeichnis" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "Nagios Konfigurationsverzeichnis" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "Beide Verzeichnisdefinitionen werden in der Datenbank beim Konfigurationsziel \"localhost\" eingetragen." + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "Wenn die Option \"Erstelle NagiosQL Verzeichnisse\" ausgewählt ist müssen Sie sicherstellen, dass das NagiosQL Konfigurationsverzeichnis existiert und der Webserver Schreibrechte darauf besitzt. Dann wird der Installer die benötigten Unterverzeichnisse im Dateisystem von \"localhost\" erstellen (hosts, services, backup etc.) " + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Bitte sichern Sie Ihre Datenbank bevor Sie fortfahren!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Fertigstellen" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Setze NagiosQL Einstellungen" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "Datenbankserver Verbindung (privilegierter Benutzer)" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "Datenbankserver Version" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "Datenbankserver Unterstützung" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Bestehende NagiosQL 3 Datenbank löschen" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Erstelle neue Datenbank" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "Erstelle NagiosQL Datenbankbenutzer" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "Installiere NagiosQL Datenbanktabellen" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Setze den NagiosQL Administrator" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "Datenbankserver Verbindung (NagiosQL Benutzer)" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Schreiben der Einstellungen in die Datenbank" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Schreibe Datenbank Konfiguration in settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Import Nagios Beispiel Daten" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "Erstelle und/oder speichere NagiosQL Verzeichnisse" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Aktualisiere bestehende NagiosQL Datenbank" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Installierte NagiosQL Version" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Aktualisiere von Version" + +#: install/step3.php:86 +msgid "to" +msgstr "nach" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Konvertiere Datenbank zu UTF8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Konvertiere Datenbanktabellen zu UTF8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Konvertiere Datenbankfelder zu UTF8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Erstelle NagiosQL MySQL Benutzer" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Die Datenbank existiert bereits und das Löschen der Datenbank wurde nicht ausgewählt. Bitte beheben Sie das Problem" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "funktioniert" + +#: install/step3.php:146 +msgid "unknown" +msgstr "unbekannt" + +#: install/step3.php:211 +msgid "Back" +msgstr "Zurück" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Bitte löschen Sie den Installationsordner bevor Sie fortfahren!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "Datenbanktyp nicht definiert!" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "unterstützt" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "nicht unterstützt" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "Ihre NagiosQL Installation ist aktuell - es sind keine weiteren Schritte notwendig!" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "Aktualisierungen nach NagiosQL 3.2 und höher sind erst ab NagiosQL Version 3.0 unterstützt!" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "Fehler bei Abrufen der Einstellungstabelle." + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "erledigt" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "Nur Rechte zum bestehenden Benutzer hinzugefügt." + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "SQL Datei nicht lesbar oder leer" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "Keine SQL Updatedateien verfügbar" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "Das Einfügen der Vorgabewerte in die Einstellungstabelle ist fehlgeschlagen:" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "Kann die Konfigurationsdatei nicht öffnen/beschreiben (config/settings.php)" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "Das Einfügen der Verzeichnisdaten in die Datenbank ist fehlgeschlagen:" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "Überprüfen Sie die Rechte der Verzeichnisse! " + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "NagiosQL Konfigurationsverzeichnis ist nicht beschreibbar - es wurden nur die Datenbankwerte eingetragen" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "Datenbankfehler während dem Konvertieren nach UTF-8" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/de_DE/LC_MESSAGES/index.html b/config/locale/de_DE/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/de_DE/index.html b/config/locale/de_DE/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/en_GB/LC_MESSAGES/en_GB.mo b/config/locale/en_GB/LC_MESSAGES/en_GB.mo new file mode 100644 index 0000000000000000000000000000000000000000..e7c5467d36fbd3a600a24f50190dad6155e8961a GIT binary patch literal 71347 zcmeI52Yg*+{r^va($X?Yp)H#e3UnpuVw3=d(m_L4+N6|SZjzhi+T`AF?@ikPf*?bd zAWIQJh74s0f`H19A;?BimJ9_%mf%1@9Q@y(XPk3xk}ib5KQ;H2llOV%dG`1|&pFSF zgV#AP;8(tO5NrjH-aH8QS|cUV5B8sCIT&t?dMmgQ ztb~`s$#59_H5?2-gt9kqdJy!5Tf_C?aJVfT2M56#I1r|wp5F%h!{t!nJPxi4FNO-w z6>x3%Be*-f3vLSk1{Ll>GlF14xDD(FD_|Ae8TN(ka41{~W$z3a!f!x5?+!Q$J_l>z zI{R9C2SA0Z87jQ(a3^>)#AQPp9)1PN{9dPi1&%>Iq}o1z z3LK64FerPcz~S)Qa1;0_To3*Rt^?nKO2^-kq>NJPXRd z3*c;c9XtSj1P_F@vuyfa2lqhz2HXekh-HdIkbxEOIyeUY3hoB`&9Uh{#qnsk7y7qC z6}1oGHgNRZARxbbYWjp2h%{VT`U9sdHAPis*K*M$QiSrZI~3eTZX{RSNst>JTyAHvb7hf)aC z9!!Bl;9+nAEJEeSRZ!`DJybY;2o%A3Obx54P>l9&i}?8OP%w zSrJ?Sw}9_LxgT&y5a2Y}3|7JdRC-u{+=`fq_^Wj+3 zM?uy5Yn=KaDE~f!ir0w6Hk}TFa(@g|dHE`o`J+(r4Gy>d?gr&=1C+n#K;_5xpz`NV zsPzAd|#%q75`gbzi0p18_z^CC9xDAe!j)z0}TYw7piBR?K z9M}(j8!Fy6LYY4T2f^o{>d#wn9k^DDP3L}4&)XEr|0*bVbKtu0V5t18hlj&Fl)WdR z^7Az)e?N8{nz7HXfb-Fx3D<*PhnvH1LHTSv(B^%Cq4UxfPMiS`v*7xuH9H80;bX>R1me=*+ zTBsMmz2HJ9`{zNW%O&s$cr)A+o|v`m;=S;F)SKsQ{tRlj{lPG(blC|Gf^(tbu^3ju zC9n>D9V$HU!hY~WxGfBhu=Yc!^e%@=kI7K}&V|aC7PtXC2C7`04tIs;z%lS)SPMUJ zoRtrPX{f&mm5#4M)t7gm@@2h(eQpJ;M!g$UxV{J#&eNctdoHYi-+>#$XQ0a2n@;^M z+zNG{qBY+J>N(?}{F?=pzO_*Ka2QlP8ln8lL&fI=I2fJ=_56#W!hID~KHmss??EVg zPeA$q3RHT(1!eyOD0_W6>~s3V9Z?U3D(`zjnb*TXFyqumLWT1|NAbtOep)8IQ^TU%FBaJ zyU-g4@GYqLu5+|? zKMXEJJrOGXPk|vk-|<#B8uc@9OSm?j%n-OO)bnS*ZLu z8Ey@)b$ke_T)z%g5B>;Ed4~mEQeNu31a@ z3a^KX-%sEU@G+=-c@L_bZgQgS|EI%sP%njYcNA1RdA8%-Q1$f>@CZ2UBwKDyf%~Ao z5sriJL5f1K!^yT>Tn1Gx9)&W01MUj9_>xVx1yIjxgNo+~Q1$M7sB-fy$2+0Y;~A)M zz6#Yoz5yq~iKp0pqZyW?z6$OFe*yK}fv4K=?g3|@ZiGs&YhXWkCmaCphg-p)LACeq zK#hO?2`9t7PqXFYSZL~lh!?36{alPPfmkf_12mgG%40pyJv03|DWU z(rag^@Xd!ZZ-i<$j)4mA8BqS72bF%eLgnXUQ1K1EY~7EC>!X|o`@{KA>30xRd0Y(F zg+;glJPIlvr$E`i!0|FT2=z6v8Qu;D!tKwr_QyemYj3D_WTw+kK|SXPsQ8=&mA)51 z)uUUW^8F!a{=74P*O{+>mNgIIj@X+3Ri6%o3UAJ-KM&QOo&!z3!VOX13FZHzQ0edz zl>4{gMsTgK*mwj2j>`#V@e+^W84uq<&dB^jd`E5|;?{2sd{sry{XPs@Ia|-N> z`kQb)cm*5`zYE*pJy7X3@f@3;yTd`K_k{}I0dQm30u}xvq3oXwm2YQ4<-_?-|1zlZ z^Bu?g;U=hGhDxvZq2j;JxmJG*I0khkoCObp--lO1`E$s5^e=sAgQ4ovb?4i1{3_f7 z^_Z{P{;vgws4s_8;e9X-`+tozgjp!}cR}U<`|xnM$ptq3icscPL;3p>RQhlAbz5F{ zfJ%?iQ0Y?z74KP4>9YtbUKzM4JQgaw&V>WurEn;`7OLI87tV$EI}W*!yhYszl@3qC zDa3pDH*Ef;FS7l{5-9&qfy#%Aq3Yq4Q0e?rDF2^_weTf498SF0K7SEZc(YLD=?hTq zE{F5rtx)x|-#2Zz*M~A61{LoyQ2DqARQcWys$3liw}1^$>2eG_37!g-jvHTM+lMWn z%HwRPbXfr9-=R?cErAo@kx=ow4$A!dQ0aLuTnwLp)8M#Et^E$D=UffPz#HKx_ySb8 z`dwzr({@ndoebswOvf6i@Eic&h7C~u)Ld@Edo)!39uJj|UxNzIccIercDOlw49ec? zQ045Oa5UWVTQ>ePU?uA1a5%gQD%~H3%Kt5|u>I4Q;a;fkhik)iue9Us0dODGli+-K z6ucci3NL}DUS<2GF;`pvJD|dI0W62#b?WD#()CYJ2nKQ3;xjY4yb(kF;sbc8p{7yp!|Oms$72r<==+aSPp{< zZwU4LsZjBqDmru?bH@wN#%St#J{llT2f0|QY4V6w$Lb?Al+yoB0+2+R>sPeHh z90aSN!Ziyjyo=y`*aVfXw?UQ5d!gd-9F%{rz}fHvcnF;KeLJ7H6q@vfd!xVmEw=wV z8Y;f`!U{O>R$HHTgOgCFq0;+e$7iA1lTB~4?PVR@2KC8sI=m9@58rm`sXwsxPl3Cl z|Da=^AKLzLH^-%LBg}7dycf#9C!y-==0CFOF#>LZdLoqlxzLmksPfq6)JMWGs84|h z!0*E{xZ&;A-8eW5_1#; z@A#is`-ec4tIt8{9}UalRZ!{q3&*$NLe%TrZ^M5O)bl#vLGX*P621tPo*O)1({VB! zfVu@PhXokIx8d1vgP+>+b_rCv{}7IauflEMrVm>6M5u5zK*j4UI2_&!l`p@8Dlfr9 z)_fN@31tS3f|o)0`v{c3e}^jnTRv>_X9QIGS32$k761L=V3>tv@Hn_5yxi$O1XZ42 zfJ(=|Le-0bkJ$VPq5K&K<4}nXe{CN^8T+c(f+u?ERUj>|wdLmT1bixtvG}sAmg3Ykv37e1S!SSen0F_^F z!5!d`pV@Y7cepp|lc3V^0k|=I4sHP7hN^cTL4{+`&uzRngEF582f-;&^=AQ8dSsx| zISZAqN5R4HGAMW7hf0Tg;YRQwcsP6x4u-owY4dX~l)uf6$3Ug~d2l|w0S_ z4WRrT0XKn_PQ4FQxT>MjcP>;uE`kc@kx=eVhRU}uLzSa*;im8sXu=KkynEq#@G&TV zpMkRf0#tgu;mkjRiqAT~wBZ>B$Dkeq$HPT%2s{NU9N&Z+!)u|^{?}09`ZFwt z!PB05wG$D`qX@OY?jJPP-M&p7pF&)9Ss4k?+!meyW&c}H>3suK zdfWr$@6X{7_%>9&ul2lr{vfz3>S1sUoCj;+QI3zpX{d+4VAHV$Zh<-vl`m&NJ@-af z4ex*oSHBl+I5&cN?q;w8RzijE5U6sNb?O4#3iXLjeHqkqZie#jaj5iu8Y&-NhKk4Q zQ0etPRC@M%$>!sRQ2AB{mH(sRFt`(xz1dLpsTRurW~g}NpzI$7W$#3&=bR3AgkOi- z!@HgNYf#Vsy;J`aDx7_PZOhppsQ7LTRX@i<`M1FFaH!{Ip~~HnQ04g)sC2s+s$AX- zcZUx^g?sJa*!&s>cR@WB%HJcQ?0?DeLMVT)hf3c&U=@50Djq{#w)M6OZiBiN%Ky{g zZt$B>?w^H9zt^F{7rbKQJp{`Bj!^nlP~~NwQ=bbJk8eY*uiOQ9LVd_@t^Kb+nO_OF zgtt5OGf?4q2W|~Fc+GMQ9D%wTs((BJD!!*exxWZ5gg=0)=NtXb_Fr2$?g>Yue;Abg zQ=p!I1=RC?1XW+2gDRiz!L{IDp~CTZsC3!lbzAT1U_aDFSPPGa%i$C7AF%ojyS}pT zo7h2pIXnPv_LiLw9RaCg!Q*fSy!LGyuRlZO&-%Z&&mHeL5B5jD4fcggp~~ygQ0adX zRD3RU>Kmc*=YFVoJO@>;UVtjMA3F2(-m&SmHB`EchVpNQ1g-H>mj4z#ZU$Q2BB!91kys6W|k2 z`Lp&Pth@fO0`<1A63&4;!lPjxUJggXp?|dUroG@e)W^f4;Z0EGV%(o>`Wy^pz7(o` zyvpgn1QpJY;Kp#{KihgY9ID)mcbo;49%-m>9sy^;rEq6>51ax&gbHufdu|*G_1w$g z2>2wN4*v!R!zq8U=~V{@pgshuUN^&y;0aLvo(m_#r=ZHm5IP;D`?ikdQ1*9&V_-F$ z1Uq0EydKVkPry33`3E+fS*Unk1c$;~q3XqBP~m&qnSTs7M7{ZkHoPOD{2d47ZUGz* zGf?rp5X$`{P~m(DsvNuxm41JLo5GLax^Sbv+H@ZZ6_4$q?C<2bCme)&23!soLFLC2 zQ1+jPDtB+g&ER`Ze}j+gbGC*G&jhISoenpF^-%e~)R}+DnP2G4Z*%64K$X82;SkvO zZ#KMJLa9f=VQ?>~=PZIsug^jG-wBltr$O2O8dSKihlIlM;{SK3`1Jj| zt*_fSPJuFSgcD#JTnI0Ld&2jjp0g8;mfDs5pvp}RRQL{p?XV3h-Cl%B&)1;B^CzhA zt^H4{-UKTA+e1^oq4I4vD0h21{n>C!)OC*SQ0aU++yGtz6|U=@{(Vs8^%*!DuJf^7 zUzrc(Prsm#Szj3r$Dux;Pao5+o&xtk{RFIn8?4pGv@0{=RMgEd4X=SUaO1W6n0~b$ zDxEKYDR?uS1c$C;ISkigyA9kP^*AVZ3*mk+0~Oz!p~C$GXMP`4yq|%}$2XwL z_XkkrYTW@gT?av>%NTeP+!ZPv?}X#w15ok#E0q5qL-{vgp!IJvsPa4lDt-q+nb$+5 zXFFUBKM(hXFTja#hxP4q4umRC^-$^kWw<%K4XQl-94fr;K>7cnW3Yh@Pk;C}`kO%c z6KrV1TMkujCqSj+OsMcIhRXj|sOKC5W$$ZnD|kH|4IhSz|NF2Kj@-!R%OW@r^-(Y{ zdvH%Uc~BoS4>=mHjrw+20e=klf$zZiaQw!7%=*d~;U%c|9^A)_+kXRYMd}0svVdQRUQt2JHTeA ze+JYz<6Nk8x)rJ%JqVS)&q1Z*xC*~T z?%N#;Q1Mv`RUXfP3g-n-{$B!B?r(td?>@&zp~CwV)bsxe72maoT6_JW(raU=eBKet z-X2iTp8*x0YN+zHKUBYP7*skgg^K@iP~kY+sV{?6cQe-BAL_Rc9=^qO9R@qY_4NRL zKZEC?cehig(A%8*3ympZaQaeiPU3tKyWivf(1bqKE?9v29jM^<6K!07-FT<(m`QHuPZ^^ZgOL14ZO8#y_|7|pO z!0mhRYxs35di!&=q8^I=_nm`xF}s5MiI|3_Ndz0^fLj6~+gHiimySo_+59Qh$vp;aDe9nS< z!+PAj5C6!e-&&~k`=LefF!tW!euPsCecgQQL9hO4O&q-*SBp zy@909Y49ViZMnXR`SqAh;L`7Mu6xk;zhAqX0{oJ*GaU2dxjz)H11XNd<<5=T+2rp+ zr|VrlxGvx-qPHdC9LD`N&b`{jSGl%A{W$vieFP_<9^vdrk1i(I zf=l)NS~%U=rD_I0;kq0B5IzW1r+$t3a>$S(NTYuM>M2}*<=+2(#myyLJ9FKD*^XR0 zU|#9$T#0%KX1jCgcM;dOo!J+-ufqHnTnBUiCi<^)e=^tCWe2_s)G(#k|?`1d@PIu}7_`3mqe#MwlMo@3aMbjS~2%mHIHpb3v&dw(2 z>vsxfzj5Y!p|>@5_CtTVF}43rcjlMD@4Nen*gX>C2GsMpmOK4s^dCWgOZXl57(9yW zbKLKaoe#LajCw72Dc8o_zr>~AKB!;hI-lzfuC3Ak8`lq((a$)uNAOGiQ-yoRj~oYMeiHXDVAcv1 zoE@Fn74Ump>W8;;dKYv54|mUP@Hcn=JpSB^T7BVo^nL(ma~;Ih?CkuU`>%7ofZg5D z8{)#YK6+1bzYz}~C}K7PJ^jX@cP4u0bG4y=Jl9XT^!p8Z+j8l5E7#8GpTYH8?i-x` zG{?WgtSs`&S(yJfC+>B7JMPcn+RV8-hWnA|9}BmJ@S7=xgN)`lj~^iYv7;VbLHk5^u7iE0$+zyxZ0ihx6o@tt=}T2SBBm=?#sE}u|~lp z^!#r>?mxurNvCl*_l?|tjf-i38DC$({asvNMO^_;=DLT=|3(tuwYcUujjuZYAH=?X zKSBL%dmH`Vl)Jwb6%%fl6dX}pe^=n*f zW41XgNAFdxgSd`H?+)}9avkCP(Rf(DhcFM}T~7aF#~JWvT&CF4V7v239E)AZ;{59d?S%S0_&fMCJPES}-1p_u?@g}lx&IYr4{#-acRBUDm~X{1E`Z0OcWKg+yT2U$ zq1;~$_rTsruC2KaM{jTE&t%m8cdOI;f#YqMjplv}EKK6smFqjGKac*S-2a*Thu}k~ zQ_i1T9MKNm;C>u-e$J&|3O>a(4E?!I??d<#YaFz|FFO5N>@=aiiK_y=zQlD1S10%1 z^b;`yZ}Jp4Kly$@i>rJufckaPD^m!Tek`h4ym z#qJ^S8Rzd-++T{>VyE6S;cf$`_XK)<@Z(2tZK&VxF&hr&bNv|osa(sslE3}1^9mZT zIQ{<4?TzRihS_i6qt0v?_rK%*T&~NwFXtM^rQcE5y$=4=+1=k!W`Dvg(8ccz^j~oI zQm==)3iZKoQ?73%%#OxH_-!Gv1-5nLCyTf#i*QSb?8&TX&}W~XrJ z_cipFa@~x2p4AGDa(oK?b$H&F-~(Lmap`v$cGFz{M7=MZh2D-_%ea2Qbw7IgebXZP zKNJ0hT$|&rADrj>lZ7SDO)xUoUd-gOsn$_JMc9nB}_Fnr5lRr z#xS2-R;UUlObZ)wxqM?Gm>AvdF}8kkm}{~Q!#(OJ2hu4I)7fIa)2izyPi;vzED1Yv z9eF&+Hf5SS@+m!-2Ncu!Fw@qa%NNV!aF6=@7kzb!pnzXwT<}Y+Ge8C7jb)JAZcA zm?HWq9$ZN0m!|XRXVc5V=6tTBJxnz=rW>oA7J(x;PN$x*2U8jv(uIPxTcW_PV%S9J z+tS&NFjGvo;fb}pB;6UdYkymoC)Y&0fl+*>1 zUm4jLOldS1@y!%?SfSV@MT)sFy*yJWD%BM0OhYTCpD?^fhd1s}}8gp%_OtzA&t(rJ~ z!X$ib%Vh0;NMp<2DmO0qnG zCCy9;z*Q|#nHse(z|)>OVNk#bU!hQSn^+JZ}RMirm|*F1JvOQuz&n`|+8W|Lh( z^~IM0wt9{#+gsYpL#mU?yeT+gyFzSYP$&zg6pK`2VpASwbIt;p)Rt0YO({t?cC)og z^JM)mrt;0{;z~Tr7E=vHTdh`Qt3U(MsC1JPQ)yT2Vug_~o=|vAgS8rAP}Q;l(A~

W~Fk}%5APqe4_w=~t-kuHSG(s>$CoKaRY*`6AGo9R)xH+7>m z*N|#elq-X&`&PTspSblMh6%#dRBJlhn92uJ)t-0Mw`J6<*>WkpY>pO#h^X17NZ6Lc z)XrS1DItj-NFIhGZQ)n9k*ENp%DQ+a^A-3|pSE3A7casTiD7%9k@<96j+S6XUCn3X zaczmuF487?K5!&cV~#9R`j}R~5cU|VHFUe`2d`nO^z{5yd(mSsO`HlPiSvwD1gdsIoMY`Al;Q4S_oR^m5vJwVqKiqNy_uO9v(P zfn=UaeU=)h?xTqcnQn{&xH6};wKG4dQ&%Qenl`!ibk+o0{fkS?Rn(WriN*}Mypl(c z@YPAiV{?qK)Qj1%*e6Jm)%2yupoS!|i+iE7Kq%vs{#U$RV_#etN{cS7ZkiF@Y8I9F znX7VFT25kj|57fj+;Qn66Q#O2W2N~K4N(IFKh37pT{66~-ZGwRXfZP=Y!o`$H5I~6dO2e+jU*XW(1&EQ zg<`6eCZRH%QVca>W8|4NQzU$D3mM(#(?@jBV>kMED`)V-rE{_aburTTacXOZw6#Hz zx@Klg;?br0R9FQl)~q#EC#;FajImM5k0_#1DN!K(no`V@VrvXQD;dp?t!!b8WoA&N zDXAd2crkw}%4LQup~tRew%3|z%Fsv#Q*GbxSu%lfW??JtA`5M~M&p#Mwob!rsx3A) zV_Vn!Tk)1)jV^W0QgW82WSF9qfoB?D~+(H&%Hr}rw3 zx0xW*QEN`*rgK^r60|VQobhZbx$GdYR9Hj z7l*cW^S<}oM|bt8)QxT7yM-ueDfS>8*7|9*i2$?1xJir$2Muc16jDE0VDeYen?>nS z8e$uYRXU>4o{$(&baSPq%+EDxj3p`wTT%>qY$nwE39gA(^fb*g6lBJpri-;HK*$?R zR*m%)K$B8gG?OkpCQ_JLRjDdW*5u?|F|yX(f-ghn0bZ!lgGb)TR1sM=H$>J@eQ7m0^Vz?KC;r zV$#J^w(y*ya!KSTCxB^ec`a}QSA^O>b|oXrHVXUlFl z*v%83X+~mEI5c8Wh4(eij7&5rbg~BmNO37?V@ItzCycMk`bbt4J^F~ z*^;fnp~+R_kR~kMlAYeNip5LW&}Tg;b-&ec?zquNd3J%8HTrk2RwI zRO@12l++(nR;uj;#0m}DbBKs>Umn(X6wOjm4z@G-(9!`(&`5qzW4=3&Jn z-hl9%PS}Y{l@L-}Wo1KCGu6j>;cZ5JvMElo9O?9AANiJZStv1d_ur>NEcoqa$Az=>c`9Re z*(Mnur@O)^c~@~P!jVod*6R5|J;%*E?jd^qSw4nN-9tWmn^CStfr@lW62;jkUHo0b z*ezjAGYdzQB(rQ-Z{@>jif4Sh622aki&2 zdCUrCeF3tF*lFk6({e0`2K=YFRGVbxjVVMu^u&!exz(j7QpKl%86f!qiBdCN*lX1u zwWab)sFE%{SK+{{n8x{}1O@cAzH#N z830==>Jl1l=9omKMQZH3R zl%cN3lzWX+a`m5MSepdLohM^V8F_&8?anOjkDA{|T{8G)$m)*<~D7O6WTo3#p_Byud zM>KZsMp0H)RJkE?wxg|{EG89MlI}3VMrL_Vv}b3AzS(rusVyxR1?!EUPMBuP$72O+ zg{6|fG9ng_EbN9HJdL%Spn3XI6*LNXV{1Ael>J9@CdMw01P6gXwPRU7CNcU2e1rn=W`(5z0n*uvyg6nod(| zs+l>l(d}qgduB_p(K6Bz`ZOx~4DID;aZtL|ri&fzsPj}GI^q$CSL4k?rg#(ExSDCY zY8K=)0HyUw(_D4h79whZv+Um}s6I#I;7a!Z>NRp;yAs}mmLi+#EAuO)mgIfBW5-xyJCvlVyb zBV^kIP0QNYr+_WG5mr-z)v;uT51m-0fV#n?7pFVj2DcnxtRx5E)={M6tjFrafWo@< z11jq<9+!7jcXb%sEI6ynisZZPhfCw0hdh|}0j2&DNrQuz>p(!31IkIwwAegWiIi+qD$!e`tW*Kpgl;|{^ zG;UNhD6=9CH5ZlMSKFKzhjxkA2+&#PP?{hk(bAZ0W;B>f`!WzFh}T`zH~qy#fVjjpw!Rb-hc5fiiP(1k%yiiYCslJc#Trjm?5P4Y&?iGEfU z-Y!}u_; zWj}2+KB@7$9=e$+Cp~I7Xw~s0oSJ=9FM~X%?_dv6CGo z*oy3`SlN!%jf6EW$z(g?ISOrnE8d#Kx1`*@mA1~p5v}n~0=IlaEl!FN*U-=Q=1=4& zZA&xFtS>yBDjU)61S$ez6=anzV9d~>yEup39M~Hv*`wTxlFqK{1=WRcX-HT6*%l#N>s)1^5w<%AD6<+wQ1k6N7QrJYGK{hO?iOz7O`~Ubv~$aN(CC`V zW2eHtoR^eW=09dT2A-YCE(vC9v`#Z;#L1>JnXTQKrth+SR6eY(i9`<8kS;|n zrK!Y5M?G5i-P^Ns&GosQp3$sjk4%;@=bG8=ZT`Devofbj2>+$S5Fae-IL7j0ixP^oIa#1vZl6_)@cQnG-@IS2CgU5R+~BOD`$ibGz{ix zfqhe<)_7K;2+bm2(%9&fM>$F3IdS5+U7RCdr03473#aTqrFypHMuAjbgk(#2IH7X+ z*ol?P1E-u?((*Y?(~tT7rPEt=8zW7T@D`)JlBFfm6j{}iCic`f`h6TBB1E>SIk#?D zZHrhBdZuewP4@}AbR6-%Ob3D|+BVjwES{Ji)EdS<`=PRFH=;mj4V^bu zvIRN@)9g{uG+ECvNN#l-77H(b;WYjj)n&50g;U5e8}M$lUaiGcN@^>wH4)2_E=<1W zy`+}W8bd!UYXr}ThnH01C+n3MGvR1&$=ynqYKh$s0tea3#+8EBc-MQWaGo1Cp zN*-cF73}NFvrmH{r_2@(A0HbXH=`(InvvADTY)d$XLHNS81Kh1#A_QxGdZCnWQ(Jg z7`+&pH`0g-GG9&AS;vTy28Vu}%96g~t$_$b3yNJcQU?-7gF|+6;+C$TsheJms3Oba z=~k3czA=v`T#faMvrdA#cJND&BgRw=P{~d8+;#>_Fznh1{e%Rj)mjgd#mGCz%BVHiEl3 zk=fg(_Ln_<^lB!_w^PyFF7#V9OtXeq+HN#U6kCc(y~N?sBdItxFO^}@VpnB2C)LSw zR-T)yow94_w|S+|7b10!(Ik9LvQrPWTk<}G*p%!a`qa~EjeK8W6>zy}I_7Mg$!naT zpK>9ytx;6eqSnF=&nrS+3*tT4(q>3?mbEFB)kI;A2Rbr{YqZ)oGY%;6#FTV~WSMTS z`DtE3Pn~Ou7JRy|jm@PQV~D{JkG88||A%@J8+Gi=um6;2nof!bms<5w>k_NPfj2UP zd9#9fW)<8?s;I8K)SR)qurSh##G#Rps^2craGgysk0p($J4`AxrZqeNf_Zike_F1= ztZ5oqj@NX9Z?|}jO;)<~PP>1JjTDZywva6OU>+`P%c_d2v2jo{ed_GctSM?kVpX8` zM|Q59P&rObA7U3XFl9W;vLv$}YtAf}UA^`m=@m8KzQb&F5YtDdetJ+NDYyR7$(eOp z6nRNJTQf%@DlxCTOUuaDG*6I}*=oC0ghq_rxWV6;_EU`?ttHmALbBs7Gi<-j+rJ9LY^;@9Bf+?tE8??m*~Y6eM&PWwVSovr&p~Dg43CXi zU+=k-Njy3EMmS^U#Op>zq;0x%a?4xG$(63M&DZvaDh@V3-iktL^ecqnm1HDZ{}MX4z2qE5Vp$^Fnp>u>0m5->lX?Nm~RW2hjp_6z^0|i_+d58(e51Ozy{Fpk{P5vw+U>**^Ky zkr~N7M+FQ%&HG`ro=tXqiVii*t)a;rRgJGs$%`u5t!&OTb+a5j$2>I= zNnUnNFJD2te8cS?VteA!P3EPMGL4gVE;tt^1(T7dFjmj4t(!7?_LREnd2_8bGlB4x zMg6|t@WJ8^;$Wk(T!pBu(mZbLB5ihYwX6y)=Kkz4S>VJ0^zRG&c7fzTLs9~Lza}!o zW2-jOtLSy^aHM2fwbgag!|4Z1pE}A5km8vvg~wDno7tls7?J}FV%O`jgwU@jT*vh(wXY@#>1lvYj-vnBqIarpEOWsjLxTR7R>n1ea!k{-xnDn5PuuMl4 z4KNpUFuY+UNU{M_S-oJ{EsAPXVTRX%HsIRPlu2Uy2348S)|)44(zHLfhZ%h7GOKmb zQBOa+x(@25ET}7~$pMubt%WtyrqoRjYDuQN7B*^GFVsJV9VU!kbWAAIsXV)uEEvj| z#gAHjK_?w;ufo)RQHLA*Zj!r^RDk6dt=U);X;A6fctIl5PLZPm*)7$b39(Zafl?zY zvuwg94cXtIO;QS(*)}wWVNesZO;TZr-Bv-K+j2O6_5_||mUq>`C(I_c0aJ4m3M}j_W2zS2FAN$?kJ!mC%0>$>@E!&Y^w6nG-KOdB2V!C1rh zx*}iAYPqTN@k$0>n_24$-%N{Ko3|(J61S?jwv5(lEI`lLVeh=~%Z?RmwU}bZC;qi7 zB?Yr&Ef^?rPWn(8PIH1yX+{DJNvjeGK<~a%aU;!FyL}n8ww)KoQnWg%z(~W*hN-9& z6*UjZv)FE5E5Jfg-(u5ZyXI%ciRn^hPL{X&b(vE_+Pqq$~P@)QR*1P`F4>W zN*j6G-LTxs{gsqvmRlCcE@mta>Ah0=ez&?MDa?xV%e53GF9$|``EBt9+vpZ(^a%lS zPGlQqN33SoKD#w|)C|ZJhRV>$KvWXc>Pz1&nUt0r*WDI6n%Ft4k7wX_{Ou=O?cID7 ztI>zB%oag;>B40nX+zEAp03sH)iQ%SE%sHJ)NxV_GjTObfLJDN{18*c#1$ViJF{W+ zIt5qnE5ka(6z1g!6Rm`+akL{4hX_ z%6k`YeEOS=TRq1bg!t;BnMEuuV)0C37B7z3B@ujEjFL`!tZ7-ILng8x-|RE(A#%25 zO10X^>E%w|@Mdmeb_<)xv1r%rtsvD@Nx-ZeC#w5e0=Kg>vX5R2A-4M#q?79@el&L! zJ648CN%EcTcgl$#pMq`Ebl6W@R)z<eEgcN_6?N{TT8|v)ceG##3)EtWK=4MsAb_ zsd_$iO8yyVr0uGlEz2CKp2%zW=C(ZqdJlz^JRb zU^S?Ll7Jh__TDtKC8minUDBR!)sv2$J1dcrW#?zymtiBvpADIl44aH#u{7S%Wjgs- z&hG}}WW8D++mDk3_A`S-Joe6YwraN6y5m&QaL>2PrbD)aP@`2;TG^l$lHQp<$F_J~ z7PlEhNaR6xmNZU`#OX^J(NLdYH+ymaXPW7iJ`!1mA6pRrm3V67WBlUvZ}W zu*cZUWdFfq1)K7ucWCRhRVUMwMxNz1?Pz}BTv}7cX$d`?AS+b`Txi-wC5^T}m!zo4 z@G5NNVFv|jQwH{l3G*Eh_@RTOGkO!B~p}2pVk3Z?Dp(Zdhpiq~M`cM*+?M52_rmmsUc!1-U!7UX5APCrIgzLbd!K zo;K^s5}x>M)1r`l4LE1N1zj4f$VruVTh+t!G^UV5fsq6yjBg9Mz*cGYRT?~kqn5;U zqx!y5^gWa4vnSEJld%zLOyNz4n{n32Ylmu~7NyfmEL&-x)2Iz8Jc-+=?3$f}wyH(- zOQQmP5z2hATYLPpzfo16@}~`hG*R~L7wWd%ORYA^E#j5N&d&c;VQh*sHz9*;^N^Ug zX~N+eEK}s%L!G$5Ee7&f0-y{g5ABrRde3OxZ#XnvpLSVRCL>!?S(AggaFH311!gV7 z{!h$cO_;nc{k@HvEl^I|YLzIAxzkbCRhr)gXToa-ZnJsvDO6jt)2<{Dy%WD=7R`4e z(Pktb8s&WNX4TZA9zPCbT&R19GN9z)N^<`|^U*jZm8>_nvQMowGLt>;L*ymJzlZwh z*D(oo08i=^dA{3g0d{N90Cbnr)RNR8i(RfmRnUkm9rFCFY@u5 zRZ{ziom~?s6Lizs`_F@!w?*8bk!hX(0>H>A3-(<;$_yOH7=6>vt}~G8W*$)HN1ZI+ zn_e|`YQ{|Ncnv%5Rnt+>3sN)*^b6#X*$22R!|(>*?cB?}y2gv0*&cQ=kq21oA@F9e zxED-N%e9rHThL68YA3QP*!r$T)c<{&0rU+j>r-y>Xa}rxJn=N2$WzIhI`Y&)_Nv%j zPi8)?m-STK;*F4IHOn-<$rt&EL%=7Z5`!)CsWFOOkGl3#RXoV-t}%659fz@OnxJHV zA6TiD%VeiwIfoqvzQqZUqfiv(iav;ly1n40uhICNrDGZT6)lbRgQQ^>1M{+%_8`~~ z4G=P3eN6{u_-v=3k*Hdm!j{=aAh3&gW4(41 z@e(qDW`j+DGX+!|HG0@LhfigZ75~~?q@!S@RlU5GNTYOYk{msj1<6^r6biDDO-&f* zSLOmrhaG=#r_IIsmb!V6l&*D*>dv&)EXijTh(ny3%gF;P)0$oE47TX*pA|oB~<}&1MT{B zP*{>_5BxA8NDP#ao|rbi^(%`@VNYbz_AaQdh+d@WjgTmCFYp z4`%V9Vosqs(^#<&ADyYF%TYeTxZT1D6RLI| zH)h=UapSO9v4C_|8m`oy-fpZgGh~`}eY$19Z1?U=MO`}8mI&7#%a$#x%qG5kGkL(A z>N(Tn7>utRH()ALJUXEYeGjvWrf_+2EQ=tS?C$iUsXP^ZPrkNSF)6mE89Aco3jdj+ zs&G<$rWggHio&~i-+j8NYg$=zYOR>T2DAdh>~^Cp>^Wg~z78UjJx6B4vOUA`qjn!~ zK!y3RhK*fKE?1=Enm`)wj7d#SAH%4qHQ$n&YC~9MzkU>(?nB14r;06A;k2qlwqLAN z&mO|)oOmu{;kvaW+kA-cK6#&|a>C-m(roN}R=U%?AvBv2H%a0|5b4;0U5~Hf2^Hh2 z!pZ@?M@Z55vF~UNj*!xOE7VhZy-(o)DYhsuESnM?D5ZNN9{Qg@KPs9t+7qC#Zj9rPA)lSDA%#^NJ)HA(_1s@UF_i zs>~ULI1k-UlobWRN|&*okS?#lb8B^_hO6a|o7^W}0xLcGE4fsW2zKemZ}qj{-jk$k z!Ix|yQTXGtR@@eRnQJCXiHN@=V#G5gy9p9rn7I)zQn)V#`W>PSbU!W6-KV16%i3%n z99w!UjU7#v29gz+((QxnCUPE>glrAnuHM7DB=YK{P*36L$(z+o3pq7YuaV||X;Q@b z;+`7Yw%#XlH@0i`Hp`|H@06S_<@UoSi&mLGR7rvZx$B`wnGMV6`>#{jNn`xXl{wWW z(og8r6@-;0jeV7yV4FtSrsXQCP~=3y``*K)Bn7RS9MU7wsFUK9+#6Gm#Q+0_l&CDFw%I*7Baxz)20yZ+P2lb!{WwXy{Ao?xd>%VQell3#=0)ZFL9Ub zbyw*!o3qrGL<%$QD^(@-qxVp zpESkFRjyU9>$~$4D`Wo~y3TM`_#R0VK*ZvD3EZsvmxXivw;Ao;xHvV;s#MY*%Vq4k zU_PbyAn>74A|)-*aGa(&iOda3++N7&L-@Wv+xpvk)KruaYOu{RWF*Xrj3g_MGuf?T zYmZUMOHEpCH@o1d+CA&#gRww;{UP z>^*0yWJ7zjc)rHxOoa=~IoupqBPp*Yv&r4p{!l2}c_&T`ifu;Su_;V)9O?9A-@Zg= zy6qBUv&$-aVUq!H??F@Aj^O0YiJj{uspgDX^=I``p8!d`#uhv7J!oonJb;;Ik4tj% zfW{89BR8>i(R4(sIA_Z5y+8zQPPgklXiA@%M7ZY1BTDZ7;e)0s_`vdi{Yg{iH3#;? zsEhZbG<`6LubgWquYHM<4Ov}In9{*m|CS@BkU#M{pZO|9LLlM}S8_unCwjG~wVF@< zr=y|unw~M0IOR#{^B;Z0RJZxhXLiO^ym0p~o-^f6tu-S^2}0F8tzaQB+6HFUQ~vvo znbOw7-gBn@|D7{M+oxmaIY(->51MLWwyuw;tiefB?2C$oHWP#Y%wwj^OZ45&nhMAE zblTMF*|h=)dlZt}Lg1z9y@yVk$dB7e!WnP7fwik!y>?wAQuH@*c z(0?gl!D>iFELAaRdCzV{5OG%va!cJd#VNhOs!#g}s!BVc zMwFnTMei9@|MO>1**yx0U7>u<-n_!3kpXM4r7E-Ww2PM3!4q1&r%;&}e|t}%YR=>e zypF5&_2`{0t*S86>^+65j|s|enq^1JnqALa zGN$p`9_5TNJQC`J+a6c;da!3_@;w;zpcPHfOU+RAo#(C|vWJ&~&P%?o`;gSXl-?REqe6}*x&TI`0MXdea>@l~B{#m5WHVXiCiboD;n z@fke0_YkUNma0%Bw(hLz&?fWASznmcJ4P$LlpuYQW946BaoMSd_8vlIUi1Ig5;WvZ zS|j@UbWS=W53@RK#qH#ZT8)4IAykReq_ks0-?VSga#lX0WB2}p51~@ytmR1m-BdNh z?o&4Y)T!R1sG`H8q8sypA<2CIFC9h2M@~i**=Jj9Xj!epsLb|PeN@PP0fpL^ID#tr zZm~c5#|d-ISC!NPn|FBrgU+Ig&Rl9}F~?t-i1c(ARc!Hp?KCRCHO1_eb}ufJ97h$O zM&-(ms(^1gd_l3JdCHO*r<(1-cJa-8ZPe=Wos$3Z!>IJ_M{`?N1ey)Gw8Xrj|AJ*VdDp`-7W#0_;%EH)B^;oJFoep8XR&F2jFCI(9hZ}lN zrTRptQkgAxR^}NjaNk39FIblDpf5eaD*EOCZv*ROGur{Vy|5MT2>O5ZRH`1{z3=|0 zNM7rX^Wxn_^H#%3kGCob{%3M7RRt;1{a~tWQaf?l6raFSAKukLLMvgp_h_n5d^FV@ zb3&E<=#M@tsWnQz0Q4ywQq`8@r5W~S7K^zoUm?~QJdAc#^`2Fw)1Z(*_MTPcguC&c zs9N`x->9PvoKAt8fB#ukJ-^vS(2~bn>7Cz1dmDenyJy!cd@n5WmC1=~#^cWpFuO4y zaapzN|Ba)nbhy?3!bw%`bScTXmW4T;vBKVabLdC>lB^jfyQ9UNh`D6+(tA{u`IxU= z)JDW=PGLZZsyE$rG&DQmdXK6K^=0a2zJ#rBks`z7RD=J*L#j$-OcEaU9#O@*{2HD5 z<>e)Oye}!RBQcRG>#b<>ad7t{dg(hMTH;_AaVJMtx9No^Qvprg?D>GI_^^cev*Q!0 zB(zzBQ>r*C$Q^AZhwhjv`>|o|d^JIe#;Vnc#arj_zv-YV?c(Mnti+abUJ#a?%jy^G zTd|-1*;QR$i(e-yzX>flmW42vC2I zG|+yU%GRmq94W+2D>$!;FGojj9ott@qqC=?8@JOnc}BB_L!bP>D$^rT$~l^$g;%FI zT3KQ?PGG86SA{|Ec~!mVRWWq-r&mWZqTchW%oaNdIucu|y6mA@y)0wg z?N8QlcR=31aB5Yh>)G`-kB;MU%~S8GRc?mYdur7xkJU=Nc3!e$nBJ%N)GCCWTAboY jtKL(q%*t->sa5*&A#)Ypk#HjJpvP}aqWf<-wd(%?#f

\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL Administration" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." + +#: index.php:45 +msgid "Welcome to" +msgstr "Welcome to" + +#: index.php:46 +msgid "Welcome" +msgstr "Welcome" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." + +#: index.php:48 +msgid "Username" +msgstr "Username" + +#: index.php:49 +msgid "Password" +msgstr "Password" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administration" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Functions to administer NagiosQL 3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alerting" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Define contact data, contact templates, contact groups and time periods." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Statistical data" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Group" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Active" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inactive" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Contact data" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Contact groups" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Time periods" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Contact templates" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Configuration file successfully written!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configuration successfully written:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Cannot open/overwrite the configuration file (check the permissions)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Configuration write failed:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Cannot open/overwrite the configuration file (check the permissions on remote system)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Configuration write failed (remote):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI configuration file" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Cannot open the data file (check the permissions)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Cannot open the temporary file" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Configuration read failed (remote):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "New command inserted:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Command modified:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Database entry failed! Not all necessary data supplied!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "Database entry failed! No write access!" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Command definitions (commands.cfg)" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Saving not possible!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "unclassified" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "check command" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "misc command" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Entry cannot be activated because it is used by another configuration" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Command name" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Command line" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Error while selecting data from database:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Definitions" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "To define check and misc commands, notification commands and special commands." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "is not writeable" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Nagios config file" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "is not a valid configuration file!" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "Cgi config file" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSH module not loaded!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTP module not loaded!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "New Domain inserted:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domain modified:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Configuration domain administration" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Warning, at least one error occurred. Please check!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Please complete all fields marked with a *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "The following field contains illegal characters:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Configuration target" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Description" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "New contact group inserted:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Contact group modified:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Define contact groups (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Attention, no contacts defined!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Contact group" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "New contact inserted:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contact modified:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Define contacts (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Attention, no time periods defined!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Attention, no commands defined!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Contact name" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "New contact template inserted:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Contact template modified:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Define contact templates (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Data domain administration" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "Attention, no configuration targets defined!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Enable" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Disable" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Data domain" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "File deleted" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "successfully deleted" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Delete backup files" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filter string" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Search" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Delete" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Reset filter" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Backup file" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "required" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Abort" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Hold down CTRL to select
more than one entry" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "No backup files or no permission to read the backup files" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Delete config files" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Configuration file" + +#: admin/download.php:67 +msgid "Download" +msgstr "Download" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "A new group added:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "User modified:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Group administration" + +#: admin/group.php:114 +msgid "Read" +msgstr "Read" + +#: admin/group.php:115 +msgid "Write" +msgstr "Write" + +#: admin/group.php:116 +msgid "Link" +msgstr "Link" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Groupname" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "No data" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Help text editor" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Main key" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Sub key" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Language" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagios version" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Load default text" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "New host dependency inserted:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Host dependency modified:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Define host dependencies (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Attention, no hosts or hostgroups defined!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Config name" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Dependent hosts" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Dependent hostgroups" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "New host escalation inserted:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Host escalation modified:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Define host escalation (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Attention, no contacts or contactgroups defined!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Host groups" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "New host extended information inserted:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Host extended information modified:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Define host extended information (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Attention, no hosts defined!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Host name" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notes" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "New host group inserted:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Host group modified:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Define host groups (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Host group" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "New host inserted:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host modified:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "The associated, now obsolete, configuration files were deleted successfully!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Host file deleted:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Common files cannot be removed from target systems - please check manually" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Error while deleting the old configuration file - please check!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Define hosts (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Attention, no contact data defined!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "New host template inserted:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Host template modified:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Host template definition (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Host template name" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "File upload error:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "File imported - File [overwrite flag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Configuration import" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Template definition" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Import file" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Local import file" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Overwrite database" + +#: admin/import.php:94 +msgid "Import" +msgstr "Import" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Hold down CTRL to select
more than one" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "This is the relative path of your NagiosQL Installation." + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "This is the absolute path to your NagiosQL Installation." + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "If you need a secure connection, select HTTPS instead of HTTP." + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS." + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Please choose your application language." + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Encoding should only be set to utf-8. Make any changes at your own risk." + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "IP-Address or hostname of the database server
e.g. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQL Server Port, default is 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Name of the NagiosQL database
e.g. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Password for the above mentioned user" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "After the specified number of seconds the session will terminate for security reasons." + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Number of entries per side that should be visible (e.g. services or hosts)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Method of selection of multiple entries by using the new dialog or by holding CTRL + left mouse button, as in NagiosQL 2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Enable or disable the warning if a required field contains no data in objects with templates" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Enable or disable the automatic online version check." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "If you require a Proxyserver to connect to the Internet (Port 80), please define one." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Username to connect through your proxy (optional)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Password to connect through your proxy (optional)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Information PopUp" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "No information available" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Data successfully deleted. Affected rows:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "View logbook" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Delete log entries between:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Please supply a start or a stop time at least" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Do you really want to delete all log entries between the selected dates?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "previous 20 entries" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "next 20 entries" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Error while inserting the data into the database:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Data successfully inserted into the database!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Access group set for menu item:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Define Menu Access Rights" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "In order for a user to get access, he needs to be member of the group selected here." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitoring" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Define host and service supervisions as well as host and service groups." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Services" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Service groups" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Host templates" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Service templates" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Available" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Selected" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Nagios main configuration file" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Password successfully modified" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Password too short or password fields don't match!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "The old password is invalid" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Save" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "The new passwords don't match!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "The new password is too short - use at least 6 characters!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "New service dependency inserted:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Service dependency modified:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Define service dependencies (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Dependent services" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "New service escalation inserted:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Service escalation modified:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Define service escalation (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "New service extended information inserted:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Service extended information modified:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Define service extended information (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Hostname" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Service" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "New service group inserted:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Service group modified:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Define service groups (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Attention, no services defined!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Service group" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "New service inserted:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Service modified:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Service file deleted:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Define services (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Attention, no hosts or hostgroups defined!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Attention, no check commands defined!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "Attention, no contacts or contact groups defined!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Service name" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "All configs" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "New service template inserted:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Service template modified:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Define service templates (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Template name" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Service description" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl module not loaded, Proxy will be deactivated!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "An error occured while writing settings to database:" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Settings were changed" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "An error occurred while writing settings.php. Please check permissions!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "is not writeable, please check permissions!" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configure Settings" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Change your current NagiosQL settings (e.g. Database user, Language)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Path" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Temporary Directory" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Server protocol" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Encoding" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Database" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQL Server" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQL Server Port" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Database name" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Database user" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Database password" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Security" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Session auto logoff time" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Authentication type" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Common" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Data lines per page" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Selection method" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Template warn message" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Online version check" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Proxyserver" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Proxy Address" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Proxy Username (optional)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Proxy Password (optional)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Misc commands" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Define host and service dependencies, host and service escalations as well as host and service additional data." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Host dependencies" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Host escalations" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Host ext. info" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Service dependencies" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Service escalations" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Service ext. info" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "NagiosQL support page" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "Support contact information" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "For questions, the online support forum or contact information visit our website:" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "Donate to support NagiosQL" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "Donate for NagiosQL on sourceforge" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "Translation services" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "Transifex translation service" + +#: admin/support.php:92 +msgid "Version check" +msgstr "Version check" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "The online version check is not enabled. You can enable it on the settings page." + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "The online version check connects the NagiosQL page to find out, if your version is still up to date." + +#: admin/support.php:106 +msgid "Environment check" +msgstr "Environment check" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "failed" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "ok" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "PHP version" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "Required:" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "PHP module:" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "MySQL version" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "PHP ini settings:" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "Read/Write access:" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "Config domain checks" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "Config domain name" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "Connection type" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "Connection check" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "readonly" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagios process file" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "file is missed" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "Nagios daemon is not running" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "not used with FTP" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "demon dead" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagios command file" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagios binary file" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "not executable" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "Verify configuration files and demon configuration" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "Configuration name" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "Used in data domain" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "Included in demon configuration" + +#: admin/support.php:549 +msgid "not used" +msgstr "not used" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "cfg definition missed" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "cfg definition missed, but actually not used" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "wrong base path:" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "cfg file not readable" + +#: admin/support.php:606 +msgid "Not used" +msgstr "Not used" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "unused - please delete!" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Up" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Down" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modify" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "New time period inserted:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Time period modified:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Time period definitions (timeperiods.cfg)" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Please insert a time definition and a time range" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Time period" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Different tools" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Useful functions for data import, main configuration, daemon control, etc." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "New user added:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "User administration" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "The passwords don't match!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Please supply the password" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "The password is too short - use at least 6 characters!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Web server authentication" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "Writing of the configuration failed - no dataset or not activated dataset found" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Write host configurations" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "No configuration items defined!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Write service configurations" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "No dataset or no activated dataset found - empty configuration written" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Cannot find the Nagios binary or no execute permissions!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Remote execution (FTP SITE EXEC) is not supported on your system!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Remote execution of nagios verify command failed (remote SSH)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Nagios binary or configuration file not found (remote SSH)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios daemon successfully restarted" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Restart command successfully sent to Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Restart failed - Nagios command file not found or no execute permissions" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Nagios command file not found or no write permissions!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Restart failed - Nagios daemon was not running" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Nagios daemon is not running, cannot send restart command!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Restart failed - FTP restrictions" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Nagios restart is not possible via FTP remote connection!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios daemon successfully restarted (remote SSH)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Restart command successfully send to Nagios (remote SSH)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Nagios command file not found (remote SSH)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Check written configuration files" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Check configuration files:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Restart Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Write monitoring data" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Write additional data" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Warning, always check the configuration files before restarting Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Do it" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Nagios written configuration files checked - Warnings/Errors:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Written configuration files are valid. Nagios can be restarted!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "check proxy settings" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Installed" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Information" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "You already have the latest version installed" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "You are using an old NagiosQL version. Please update to the latest stable version" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "You are using a newer development version without official support" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domain" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Server name" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Method" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Directory with SSH key pair" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Configuration directories" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Base directory" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Host directory" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Service directory" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Backup directory" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Host backup directory" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Service backup directory" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Picture base directory" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Use common domain" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Decode UTF8 data in config files" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Access keyholes" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Access keys" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Registered" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Function" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Marked" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Add" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Form check" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Secure question" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Yes" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "No" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Time" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "User" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP Address" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entry" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "From" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "To" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Delete log entries" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copy" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Confirm password" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Old password" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "New password" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Change password" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Menu page" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Search string" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Write config file" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Command" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Command type" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Exclude" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Include" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Time definitions" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Weekday" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Time range" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Time definition" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Insert" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modify selection" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Time period hosts" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Time period services" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Host options" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Service options" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Host command" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Service command" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "E-Mail address" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Pager number" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Addon address" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Host notif. enable" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Service notif. enable" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Can submit commands" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Retain status info" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Retain non-status info" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Members" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Group members" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Common settings" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Service settings" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Add this host configuration to existing service definitions" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Parents" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Check command" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Command view" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Additional templates" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Check settings" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Initial state" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Retry interval" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Max. check attempts" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Check interval" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Active checks enabled" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Passive checks enabled" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Check period" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Freshness threshold" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Check freshness" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Obsess over host" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Obsess over service" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Event handler" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Event handler enabled" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Low flap threshold" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "High flap threshold" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Flap detection enabled" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Flap detection options" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Retain status information" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Retain non-status information" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Process perf data" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Alarm settings" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contacts" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Notification period" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Notification options" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Notification interval" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "First notification delay" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notification enabled" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Stalking options" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Addon settings" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRML image" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notes URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Status image" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Icon image" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Action URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D coords" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D coords" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Icon image ALT text" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "on" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "off" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "skip" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Free variable definitions" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Variable name" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Variable value" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Activate" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Deactivate" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Do you really want to delete this database entry:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Do you really want to delete all marked entries?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Mark all shown datasets" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "File" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Write all config files" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Address" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Display name" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Use this configuration as a template" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Generic name" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Please check at least one option from:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Host group name" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Host group members" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Is volatile" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Parallelize checks" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Config name filter" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Import directory" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Please insert a variable name and a variable definition" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Warning:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagios base directory" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Write config" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Service group members" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Service group name" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Host groups" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Inherit parents" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Execution failure criteria" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Notification failure criteria" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Dependency period" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Escalation period" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Escalation options" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "First notification" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Last notification" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "Dependent servicegroups" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Help" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendar" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Group name" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Users" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Access group" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "User definitions" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "User name" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "User rights" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Object access restrictions" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Enable group administration" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Show relation data" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Hide relation data" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "User language" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Standard domain" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Monday" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Tuesday" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Wednesday" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Thursday" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Friday" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Saturday" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Sunday" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Main page" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Supervision" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Commands" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Specialties" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Tools" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Service dependency" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Service escalation" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Host dependency" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Host escalation" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Extended Host" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Extended Service" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Data import" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "User admin" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Group admin" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagios control" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logbook" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios config" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Settings" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definitions" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI config" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Menu access" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domains" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Help editor" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "Data domains" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "Config targets" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "Support" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Warning: configuration file is out of date!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "Warning: no configuration target defined!" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Cannot backup and delete the old configuration file (check the permissions)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Cannot backup the old configuration file because the permissions are incorrect (remote FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Cannot backup the old configuration file because the permissions are wrong (remote SSH/SFTP)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "Cannot delete the file (wrong permissions)!" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "Cannot delete the file (file does not exist)!" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Cannot delete file because the permissions are incorrect (remote FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Cannot delete file because it does not exists (remote FTP)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Cannot delete file because the permissions are wrong (remote SSH/SFTP)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Cannot delete file because it does not exists (remote SSH/SFTP)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Cannot get the configuration file (FTP connection failed)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Cannot write the configuration file (FTP connection failed)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Cannot get the configuration file (SSH connection failed)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Cannot get the configuration file (remote file does not exist)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Cannot write the configuration file (SSH connection failed)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "It is not possible to write config files directly from the common domain!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Configuration write failed (FTP connection failed):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Cannot open/overwrite the configuration file (FTP connection failed)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Cannot open/overwrite the configuration file (remote SSH/SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Connection to remote system failed (SSH2 connection):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "SSH public key does not exist or is not readable" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "SSH private key does not exist or is not readable" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Connection to remote system failed (FTP connection):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Could not open directory" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "out-of-date" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "no target" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "missed" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "up-to-date" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Last database update:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "Last file change of the configuration target " + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Delete failed due to a database error:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "No data deleted. The dataset probably does not exist or is protected from deletion." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Delete dataset id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- from table:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- with affected rows:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Delete data from table:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Data set copy failed - table [new name]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Data set copied - table [new name]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "No dataset copied. Maybe the dataset does not exist or you do not have write permission." + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Dataset successfully activated. Affected rows:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Activate dataset from table:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "No dataset activated. Maybe the dataset does not exist or you do not have write permission." + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Dataset successfully deactivated. Affected rows:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "Relation information for " + +#: functions/data_class.php:891 +msgid " of table " +msgstr " of table " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relation to " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", entry " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "deletion possible" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "deletion not possible" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "Unable to get configuration data:" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Cannot receive the configuration file (FTP connection)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Cannot receive the configuration file (SSH connection)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "No valid configuration found:" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "Import file does not exist or is not readable:" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Table for import definition" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "is not available!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "inside" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "exists and were not overwritten" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "were not written" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "could not be inserted:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "successfully inserted" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Error: incorrect number of arguments - cannot import service group members" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Missing server connection parameter!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Connection to the database server has failed by reason:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Missing database connection parameter!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Hide menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Show menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Page" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Unrestricted access" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Error while connecting to database:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Error setting the correct locale. Please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Webserver login successfull" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Login successful" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Login failed!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Session timeout reached - Seconds:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Restricted site accessed:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "User not found in database" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Administration" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Logged in:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Logout" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Warning - template file not found or not readable, please check your file permissions! - File: " + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "Configuration files successfully written!" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin cannot be deleted" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost can't be deleted" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "No permission to open configuration!" + +#: functions/translator.php:56 +msgid "English" +msgstr "English" + +#: functions/translator.php:60 +msgid "German" +msgstr "German" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chinese (Simplified)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italian" + +#: functions/translator.php:72 +msgid "French" +msgstr "French" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russian" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Spanish" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portuguese (Brazilian)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Dutch" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Danish" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Online Documentation" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "Database connection failed. Upgrade not available!" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "Settings table not available or wrong. Upgrade not available!" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "Installation cannot continue, please make sure you have the mysql extension loaded!" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "Installation cannot continue, postgres is not yet available in beta!" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "Installation cannot continue, please make sure you have the pgsql extension loaded!" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "Database type in settings file is wrong (config/settings.php). Upgrade not available!" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "Database values in settings file are missing (config/settings.php). Upgrade not available!" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "Settings file not found or not readable (config/settings.php). Upgrade not available!" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Welcome to the NagiosQL Installation Wizard" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "This wizard will help you to install and configure NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "For questions please visit" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "First let's check your local environment and find out if everything NagiosQL needs is available." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "The basic requirements are:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 or greater including:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "PHP Module:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(optional)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "PECL Extension:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "php.ini options" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads on (for upload features)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start needs to be off" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "A MySQL database server" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "Nagios 2.x/3.x" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "START INSTALLATION" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "START UPDATE" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Requirements" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Finish" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Checking requirements" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Checking Client" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Checking PHP version" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Checking PHP extensions" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Checking available database interfaces" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Checking php.ini/.htaccess settings" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Checking System Permissions" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "The following modules/extensions are required to run NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "The next couple of extensions are optional but recommended" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Check which of the supported extensions are installed. At least one of them is required." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "The following settings are required to run NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "ENABLED" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "NOT ENABLED" + +#: install/step1.php:113 +msgid "Version" +msgstr "Version" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "detected" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "or greater is required" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Could be loaded. Please add in php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NOT AVAILABLE" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "New installation only - updates are only supported using the same database interface!" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "cannot be empty and needs to be set" + +#: install/step1.php:184 +msgid "should be" +msgstr "should be" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Read test on settings file (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Settings file does not exist (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "will be created" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Write test on settings file (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Write test on settings directory (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Read test on one class file (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Read test on home page file (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Read test on one template file (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Read test on one admin template file (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Read test on one file template (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Read test on one image file (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "There are some errors - please check your system settings and read the requirements for NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Read the INSTALLATION file from NagiosQL to find out how to fix them." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "After that - refresh this page to proceed" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Refresh" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Environment test completed successfully" + +#: install/step1.php:264 +msgid "Next" +msgstr "Next" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "The NagiosQL first passwords are not equal!" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Setup" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Please complete the form below. Mandatory fields marked *" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Database Configuration" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "Database Type" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "Database Server" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "Local hostname or IP address" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "Database Server Port" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL DB User" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL DB Password" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "Administrative Database User" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "Administrative Database Password" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Drop database if already exists?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "NagiosQL User Setup" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Initial NagiosQL User" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Initial NagiosQL Password" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Please repeat the password" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios Configuration" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Import Nagios sample config?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "NagiosQL path values" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "Create NagiosQL config paths?" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "NagiosQL config path" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "Nagios config path" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "Both path values were stored in your configuration target settings for localhost." + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Please backup your database before proceeding!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Finishing Setup" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Deploy NagiosQL settings" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "Database server connection (privileged user)" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "Database server version" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "Database server support" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Delete existing NagiosQL database" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Creating new database" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "Create NagiosQL database user" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "Installing NagiosQL database tables" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Set initial NagiosQL Administrator" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "Database server connection (NagiosQL user)" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Writing global settings to database" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Writing database configuration to settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Import Nagios sample data" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "Create and/or store NagiosQL path settings" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Updating existing NagiosQL database" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Installed NagiosQL version" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Upgrading from version" + +#: install/step3.php:86 +msgid "to" +msgstr "to" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Converting database to utf8 character set" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Converting database tables to utf8 character set" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Converting database fields to utf8 character set" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Create new NagiosQL database" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Database already exists and drop database was not selected. Please correct or resolve manually." + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "passed" + +#: install/step3.php:146 +msgid "unknown" +msgstr "unknown" + +#: install/step3.php:211 +msgid "Back" +msgstr "Back" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Please delete the install directory to continue!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "Database type not defined!" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "supported" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "not supported" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "Your NagiosQL installation is up to date - no further actions are needed!" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "Error while selecting settings table." + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "done" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "Only added rights to existing user" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "SQL file is not readable or empty" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "No SQL update files available" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "Inserting initial data to settings database has failed:" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "Connot open/write to config/settings.php" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "Inserting path data to database has failed:" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "Check the permissions of the created paths!" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "NagiosQL config path is not writeable - only database values updated" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "Database errors while converting to utf-8:" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" + +#, fuzzy +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" + +#, fuzzy +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" + +#, fuzzy +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/en_GB/LC_MESSAGES/index.html b/config/locale/en_GB/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/en_GB/index.html b/config/locale/en_GB/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/es_AR/LC_MESSAGES/es_AR.mo b/config/locale/es_AR/LC_MESSAGES/es_AR.mo new file mode 100644 index 0000000000000000000000000000000000000000..dc8888567d7b76f85e70dc81be593a7e8254aac9 GIT binary patch literal 29904 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 lY\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Administración de NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Bienvenido a" + +#: index.php:46 +msgid "Welcome" +msgstr "Bienvenido" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "" + +#: index.php:48 +msgid "Username" +msgstr "Nombre de usuario" + +#: index.php:49 +msgid "Password" +msgstr "Contraseña" + +#: index.php:50 +msgid "Login" +msgstr "Iniciar de sesión" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administración" + +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funciones para administrar NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alarmas" + +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Defina datos de contacto, plantillas de contacto, grupos de contacto y períodos de tiempo." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Datos estadísticos" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Grupo" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Activo" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inactivo" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Datos de contacto" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Grupos de Contacto" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Períodos de tiempo" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Plantilla de contactos" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Archivo de configuración escrito satisfactoriamente!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Imposible abrir/sobreescribir el archivo de configuración (compruebe permisos)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Escritura de configuración fallida:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Imposible abrir/sobrescribir archivo de configuración (compruebe permisos en el sistema FTP remoto)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Escritura de configuración fallida (remoto):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Archivo de configuración CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Imposible abrir el archivo de datos (compruebe los permisos)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "No se pudo abrir el archivo temporal" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Lectura de configuración fallida (remoto):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Nuevo comando insertado:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Comando modificado:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Hubo un error durante la escritura a la base de datos. No todos los datos fueron ingresados!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Definiciones de comando" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "sin clasificar" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "comando check" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "comando misceláneo" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "La entrada no puede ser activada debido a que es usada por otra configuración" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Nombre de comando" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Línea de comando" + +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Error al seleccionar datos de la base de datos" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Comandos check" + +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Para definir comandos de monitoreo y misceláneos, comandos de notificación y comandos especiales." + +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "no es escribible" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "Modulo SSH no cargado!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "Modulo FTP no cargado!" + +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Nuevo Dominio insertado:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Dominio modificado:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Atención, al menos un error ha ocurrido, por favor compruebelo!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Por favor complete todos los campos marcados con *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "El siguiente campo contiene caracteres no permitidos:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Descripción" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Nuevo grupo de contacto insertado:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Grupo de contacto modificado:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Definir grupos de contacto (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Atención, no hay contactos definidos!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Grupo de contacto" + +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Nuevo contacto insertado:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contacto modificado:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Definir contactos (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Atención, no hay períodos de tiempo definidos!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Atención, comandos no definidos!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nombre de contacto" + +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "" + +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "" + +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Archivo eliminado" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "eliminado satisfactoriamente" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Borrar archivos de respaldo" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Cadena de filtro" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Buscar" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Eliminar" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Respaldar archivo" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "requerido" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Cancelar" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Mantenga presionado CTRL para seleccionar
más de una entrada" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "Descargar" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Usuario modificado:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "" + +#: admin/group.php:114 +msgid "Read" +msgstr "Leer" + +#: admin/group.php:115 +msgid "Write" +msgstr "Escribir" + +#: admin/group.php:116 +msgid "Link" +msgstr "" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "No hay datos" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Ayuda del editor de texto" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Idioma" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Versión de Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "" + +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Nueva dependencia de Host insertada:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Dependencia del Host modificada:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definir dependencias del host (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Atención, no hay hosts ni grupos de hosts definidos!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Configurar nombre" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "" + +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Atención, no hay contactos o grupos de contacto definidos!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Grupos de Hosts" + +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Nueva información extendida de host insertada:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Información extendida de host modificada:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definir información extendida de host (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nombre del Host" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notas" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "" + +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Nuevo host insertado:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host modificado:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Definir hosts (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Atención, no hay grupos de contacto definidos!" + +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Importar configuración" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Definición de plantilla" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Importar archivo" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Sobrescribir base de datos" + +#: admin/import.php:94 +msgid "Import" +msgstr "Importar" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Mantenga presionado CTRL para seleccionar
más de uno" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Esta es la ruta relativa de su Instalación de NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Esta es la ruta absoluta a su Instalación de NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Si necesita una conexión segura, seleccione HTTPS en lugar de HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Por favor seleccione un directorio temporal con permisos de escritura. Por defecto es el directorio temp provisto por su SO" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Por favor seleccione su idioma de aplicación" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Puerto de Servidor MySQL. (default 3306)" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Dspués de la cantidad de segundos definidos la sesión terminará debido a razones de seguridad." + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "" + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "" + +#: admin/info.php:91 +msgid "No information available" +msgstr "No hay información disponible!" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "" + +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Ver registro de eventos" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Eliminar entradas del registro de eventos entre:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Seguro que desea eliminar todas las entradas del registro de eventos entre las fechas seleccionadas?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "previas 20 entradas" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "siguientes 20 entradas" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Los datos fueron insertados satisfactoriamente en la Base de Datos!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "" + +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Definir derechos de acceso a menu" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "" + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitoreo" + +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "" + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Servicios" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Grupos de Servicios" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Plantillas de Hosts" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Plantillas de Servicios" + +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Disponible" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Seleccionado" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Archivo principal de configuración de Nagios" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Contraseña modificada satisfactoriamente" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Contraseña muy corta o campos de contraseña no coinciden!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "La contraseña anterior es incorrecta" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Guardar" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Las contraseñas nuevas no son iguales!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "La contraseña es muy corta - use al menos 6 caracteres!" + +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Nueva dependencia de servicio insertada:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Dependencia de Servicio modificada:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definir dependencias de servicio (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Servicios dependientes" + +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Nuevo escalamiento de servicio insertado:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definir escalamiento de servicio (serviceescalations.cfg)" + +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Nombre de host" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Servicio" + +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definir grupos de servicio (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Atención, no hay servicios definidos!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "" + +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Nuevo servicio insertado:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Servicio modificado:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Atención, no hay comandos check definidos!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Nombre del servicio" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Todas las configuraciones" + +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Defina plantillas de servicios (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nombre de plantilla" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Descripción del Servicio" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Ajustes fueron cambiados" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Ocurrió un error mientras se escribía en settings.php, por favor compruebe permisos!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configurar Ajustes" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Cambia sus ajustes actuales de NagiosQL (ej. Usuario de base de datos, Idioma)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Ruta" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Directorio Temporal" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protocolo de Servidor" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Codificación" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Base de datos" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Servidor MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Puerto de Servidor MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nombre de base de datos" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Usuario de base de datos" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Contraseña de base de datos" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Seguridad" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Tiempo del cierre de sesión automático" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Tipo de Autenticación" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Común" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Lineas de dato por página" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "" + +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "" + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "dependencias de Host" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Info ext. de Host" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Dependencias de Servicio" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "fallado" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "archivo de proceso Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "archivo de comando Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "archivo binario Nagios" + +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Arriba" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Abajo" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modificar" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "" + +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Período de Tiempo" + +#: admin/tools.php:31 +msgid "Different tools" +msgstr "" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "" + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Un nuevo usuario agregado:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Administración de usuarios" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Las contraseñas no son iguales!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Por favor complete la contraseña" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "La contraseña es muy corta - utilice al menos 6 caracteres!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Autenticación del Servidor Web" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Escribir configuraciones de host" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Imposible encontrar binario Nagios o no hay derechos para ejecución!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Demonio Nagios reiniciado satisfactoriamente" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Comando de reinicio enviado satisfactoriamente a Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Reinicio fallido - archivo de comando Nagios no encontrado o sin derechos de ejecución" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Reinicio fallido - demonio Nagios no se estaba ejecutando" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Demonio Nagios no se esta ejecutando, no se puede enviar comando de reinicio!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Reincio fallido - restricciones FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Reincio de Nagios no es posible vía conexión remota FTP" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Comprobar archivos de configuración escritos" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Comprobar archivos de configuración" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Reiniciar Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Escribir datos de monitoreo" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Escribir datos adicionales" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Atención, siempre verifique los archivos de configuración antes de reiniciar Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Proceder" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "" + +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Escritura de archivos de configuración válida, Nagios puede ser reiniciado!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Información" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Usted ya tiene la última versión instalada" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Usted está usando una version antigua de NagiosQL. Por favor actualice su versión a la última versión estable." + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Dominio" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nombre de servidor" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Método" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Directorios de configuración" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Directorio base" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Directorio de respaldo" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Directorio respaldo de Host" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "" + +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Función" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Marcado" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Agregar" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Pregunta secreta" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Si" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "No" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Tiempo" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Usuario" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entrada" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Desde" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Hasta" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Eliminar entradas del registro de eventos" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copiar" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Confirmar contraseña" + +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Contraseña anterior" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Contraseña nueva" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Cambiar contraseña" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Buscar cadena de texto" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Escribir archivo config" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Comando" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Tipo de comando" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Excluir" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Día de la semana" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Rango de tiempo" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Definición de tiempo" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Insertar" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modificar selección" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Opciones del Host" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Opciones del Servicio" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Comandos del Host" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Comandos del Servicio" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Dirección de correo electrónico" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Número de localizador" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Dirección adicional" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Habilitar Notif. de host" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Habilitar Notif. de Servicio" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "" + +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Miembros" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Miembros del grupo" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Ajustes comunes" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Comando check" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Plantillas adicionales" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Ajustes de chequeo" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Estado inicial" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Intervalo de reintento" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Max de intentos de chequeo" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Intervalo de chequeo" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Chequeos Activos habilitados" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Chequeos Pasivos habilitados" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Período de chequeo" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Manipulador de evento" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Manipulador de evento habilitado" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Ajustes de alarma" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contactos" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Período de Notificación" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Opciones de Notificación" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Intervalo de Notificación" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Retraso de primera notificación" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notificación habilitada" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Ajustes adicionales" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Imagen VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notas URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Imagen de estado" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Icono imagen" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Acción URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "Coordenadas 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "Coordenadas 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Texto ALT de icono imagen" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "estándar" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "encendido" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "apagado" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "omitir" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Nombre de variable" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Valor de variable" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Seguro que desea eliminar esta entrada de la base de datos:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Seguro que desea eliminar todas las entradas marcadas?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Archivo" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Escribir todos los archivos config" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Dirección IP" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Mostrar nombre" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Usar esta configuración como plantilla" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Nombre genérico" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Por favor compruebe al menos una opción de:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Es volátil" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Guardar configuración" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Miembros del Grupo de Servicios" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Grupos de Hosts" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Criterio de notificación " + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Primer notificación" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Última notificación" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Ayuda" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendario" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Lunes" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Miércoles" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Página principal" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Supervisión" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Comandos" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Especialidades" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Herramientas" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Importar Datos" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Admin de usuarios" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Control de Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios config" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Ajustes" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definiciones" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "Configuración CGI" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Acceso a Menu" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Dominios" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "" + +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Atención: el archivo de configuración esta desactualizado!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Imposible respaldar y eliminar archivo de configuración anterior (compruebe permisos)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Imposible respaldar configuración anterior debido a permisos incorrectos (FTP remoto)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Imposible eliminar archivo debido a permisos incorrectos (FTP remoto)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Imposible obtener archivo de configuración (Conexión FTP fallida)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Imposible escribir el archivo de configuración (Conexión FTP fallida)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Escritura de configuración fallida (Conexión FTP fallida):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Imposible abrir/sobrescribir archivo de configuración (Conexión FTP fallida)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "" + +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Última actualización de la base de datos:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Datos no eliminados. Probablemente el dataset no existe o esta protegido para eliminar." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Eliminar datos desde tabla:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " de tabla " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relacion con" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", entrada " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "eliminacion no es posible" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "" + +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "no esta disponible!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "" + +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "no puede ser insertado:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "insertado satisfactoriamente" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Error: número incorrecto de argumentos - imposible importar miembros del grupo de servicio" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Falta un parametro de conexión al server " + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Falta parámetro de conexión a la Base de Datos" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Ocultar menú" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Mostrar menú" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "" + +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Inicio de sesión satisfactorio" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Inicio de sesión fallido!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Usuario no encontrado en la base de datos" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Admin" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Inició sesión:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin no puede ser eliminado" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost no puede ser eliminado" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "No hay permisos para poder abrir la configuración!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Inglés" + +#: functions/translator.php:60 +msgid "German" +msgstr "Alemán" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chino (Simplificado)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiano" + +#: functions/translator.php:72 +msgid "French" +msgstr "Francés" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Ruso" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugués (Brazil)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Documentación en línea" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Bienvenido al Asistente de Instalación de NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Este asistente lo ayudará a instalar y configurar NagiosQL" + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "" + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Requerimientos" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Finalizar" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Comprobación de requerimientos" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Comprobando Permisos de Sistema" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "" + +#: install/step1.php:113 +msgid "Version" +msgstr "" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "" + +#: install/step1.php:184 +msgid "should be" +msgstr "" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Prueba de lectura del archivo de ajustes (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Archivo de ajustes no existe (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "será creado" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Prueba de escritura sobre archivo de ajustes (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Prueba de escritura sobre directorio de ajustes (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Prueba de lectura sobre un archivo de clases (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Prueba de lectura sobre archivo startsite (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Prueba de lectura sobre un archivo plantilla (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Prueba de lectura sobre un archivo plantilla admin (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Prueba de lectura sobre un archivo plantilla (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Prueba de lectura sobre un archivo imagen (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Hay algunos errores - por favor chequee los ajustes del sistema y lea los requerimientos de NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "" + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Después de eso - refresque esta página proceder" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Refrescar" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Prueba de entorno superada satisfactoriamente" + +#: install/step1.php:264 +msgid "Next" +msgstr "Siguiente" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Usuario de BD NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Contraseña de BD NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "" + +#: install/step3.php:86 +msgid "to" +msgstr "" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "superado" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Atrás" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Por favor elimine el directorio de instalación para continuar!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "soportado" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "no soportado" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "Hecho" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Could not connect to Updateserver" +#~ msgstr "No se pudo establecer la conexión al servidor de actualizaciones" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "Ocurrió un error durante la comprobación de la versión" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Verificando si hay Actualizaciones para NagiosQL" +#~ msgid "You already have the latest development version installed" +#~ msgstr "Usted ya tiene la última Version de Desarrollo instalada" + +#, fuzzy +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "La entrada no puede ser desactivada porque es utilizada por otra " +#~ "configuración" + +#, fuzzy +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Escritura de configuración fallida (Conexión FTP fallida):" + +#, fuzzy +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Imposible eliminar un archivo (conexión FTP fallida)!" + +#, fuzzy +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "" +#~ "Datos no eliminados. Probablemente el dataset no existe o esta protegido " +#~ "para eliminar." + +#, fuzzy +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "" +#~ "Datos no eliminados. Probablemente el dataset no existe o esta protegido " +#~ "para eliminar." +#~ msgid "Polish" +#~ msgstr "Polaco" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Español (Argentina)" + +#, fuzzy +#~ msgid "Could be set" +#~ msgstr "No es posible seleccionar" + +#, fuzzy +#~ msgid "Could not access" +#~ msgstr "No es posible crear" + +#, fuzzy +#~ msgid "Create NagiosQL MySQL user" +#~ msgstr "Crear usuario de bd nagiosQL" + +#, fuzzy +#~ msgid "Update MySQL permissions" +#~ msgstr "Actualizar Permisos MySQL" + +#, fuzzy +#~ msgid "Testing database connection to" +#~ msgstr "Falta parámetro de conexión a la Base de Datos" +#~ msgid "is not supported!" +#~ msgstr "no es soportado!" +#~ msgid "error" +#~ msgstr "error" +#~ msgid "Could not create" +#~ msgstr "No es posible crear" + +#, fuzzy +#~ msgid "database in MySQL" +#~ msgstr "Nombre de base de datos" +#~ msgid "Could not select" +#~ msgstr "No es posible seleccionar" +#~ msgid "Unknown version!" +#~ msgstr "Versión desconocida!" + +#, fuzzy +#~ msgid "Cannot connect to the database." +#~ msgstr "e instalar la base de datos." + +#, fuzzy +#~ msgid "MySQL Error" +#~ msgstr "Puerto de Servidor MySQL" + +#, fuzzy +#~ msgid "Cannot select the database." +#~ msgstr "e instalar la base de datos." + +#, fuzzy +#~ msgid "Cannot set" +#~ msgstr "No es posible seleccionar" +#~ msgid "Admin description" +#~ msgstr "Descripción Admin" + +#, fuzzy +#~ msgid "Now" +#~ msgstr "No" + +#, fuzzy +#~ msgid "Plugin description" +#~ msgstr "Descripción Admin" + +#, fuzzy +#~ msgid "Administrate Plugins" +#~ msgstr "Administración" + +#, fuzzy +#~ msgid "Manage your NagiosQL Plugins" +#~ msgstr "Comprobando su Instalación de NagiosQL" + +#, fuzzy +#~ msgid "Community Plugins" +#~ msgstr "Línea de comando" + +#, fuzzy +#~ msgid "Functions to administrate NagiosQL Community Admins" +#~ msgstr "Funciones para administrar NagiosQL V3" + +#, fuzzy +#~ msgid "SVN Server changed to:" +#~ msgstr "Ajustes fueron cambiados" + +#, fuzzy +#~ msgid "Commiting files" +#~ msgstr "Ajustes comunes" + +#, fuzzy +#~ msgid "Checkout files" +#~ msgstr "Comprobar archivos de configuración" + +#, fuzzy +#~ msgid "Revision" +#~ msgstr "Supervisión" + +#, fuzzy +#~ msgid "selected" +#~ msgstr "Seleccionado" + +#, fuzzy +#~ msgid "Checkout database" +#~ msgstr "Crear base de datos" + +#, fuzzy +#~ msgid "Importing base directories" +#~ msgstr "Directorios de configuración" + +#, fuzzy +#~ msgid "Checkout Nagios and NagiosQL config files." +#~ msgstr "Archivo principal de configuración de Nagios" + +#, fuzzy +#~ msgid "Warning, database checkout may destroy NagiosQL!" +#~ msgstr "" +#~ "Atención, siempre verifique los archivos de configuración antes de " +#~ "reiniciar Nagios!" + +#, fuzzy +#~ msgid "Server" +#~ msgstr "Servicio" + +#, fuzzy +#~ msgid "Database Dump Directory" +#~ msgstr "Usuario de base de datos" + +#, fuzzy +#~ msgid "Report" +#~ msgstr "Importar" + +#, fuzzy +#~ msgid "" +#~ "Please remove the security file ENABLE_INSTALLER in the install directory " +#~ "to continue!" +#~ msgstr "" +#~ "Por favor cree un archivo vacío llamado ENABLE_INSTALLER en el directorio " +#~ "de instalación para continuar!" + +#, fuzzy +#~ msgid "Plugins" +#~ msgstr "líneas" +#~ msgid "Basic Settings" +#~ msgstr "Ajustes básicos" +#~ msgid "Setup Language" +#~ msgstr "Idioma de instalación" +#~ msgid "does not exist!" +#~ msgstr "no existe!" +#~ msgid "" +#~ "Please create an empty file called ENABLE_INSTALLER in the install " +#~ "directory to continue!" +#~ msgstr "" +#~ "Por favor cree un archivo vacío llamado ENABLE_INSTALLER en el directorio " +#~ "de instalación para continuar!" + +#, fuzzy +#~ msgid "Start new installation" +#~ msgstr "Omitir instalación de BD" + +#, fuzzy +#~ msgid "" +#~ "does not exist, please create a file in the install directory to continue!" +#~ msgstr "" +#~ "no existe, por favor cree un archivo en el directorio de instalación para " +#~ "continuar!" +#~ msgid "PHP mysql support (mysql or mysqli)" +#~ msgstr "PHP soporte mysql (mysql o mysqli)" +#~ msgid "PHP session support (session)" +#~ msgstr "PHP soporte session (session)" +#~ msgid "PHP gettext support (gettext)" +#~ msgstr "PHP soporte gettext (gettext)" +#~ msgid "PHP FTP support (ftp)" +#~ msgstr "PHP soporte FTP (ftp)" +#~ msgid "PHP HTML_Template_IT support (pear module)" +#~ msgstr "PHP soporte HTML_Template_IT (módulo pear)" +#~ msgid "New Installation of NagiosQL" +#~ msgstr "Nueva Instalación de NagiosQL" +#~ msgid "Parameter" +#~ msgstr "Parámetro" +#~ msgid "Value" +#~ msgstr "Valor" +#~ msgid "" +#~ "this option will drop an existing database with the same name during a " +#~ "new installation!" +#~ msgstr "" +#~ "esta opción borrará una base de datos existente con el mismo nombre " +#~ "durante una nueva instalación!" + +#, fuzzy +#~ msgid "Initial NagiosQL Login" +#~ msgstr "Versión de Nagios instalada" + +#, fuzzy +#~ msgid "Nagios sample config files" +#~ msgstr "Archivo principal de configuración de Nagios" +#~ msgid "Update NagiosQL" +#~ msgstr "Actualizar NagiosQL" +#~ msgid "Note: Upgrades from NagiosQL before v2.0.0 are not possible!" +#~ msgstr "" +#~ "Nota: Actualizaciones de NagiosQL desde versiones anteriores a v2.0.0 no " +#~ "son posibles!" +#~ msgid "Modify Settings" +#~ msgstr "Modificar Ajustes" +#~ msgid "Connect to source server" +#~ msgstr "Conectar a servidor de origen" +#~ msgid "Server not found!" +#~ msgstr "Servidor no encontrado!" +#~ msgid "Copy table" +#~ msgstr "Copiar tabla" +#~ msgid "db in mysql" +#~ msgstr "db en mysql" +#~ msgid "Host not active!" +#~ msgstr "Host no activo!" +#~ msgid "Reading remote configuration failed (FTP connection failed):" +#~ msgstr "Lectura de configuración remota fallida (Conexión FTP fallida):" +#~ msgid "Cannot read the remote configuration file (FTP connection failed)!" +#~ msgstr "" +#~ "Imposible leer archivo de configuración remoto (conexión FTP fallida)!" +#~ msgid "Configuration backup failed (FTP connection failed):" +#~ msgstr "Respaldo de configuración fallida (conexión FTP fallida):" +#~ msgid "" +#~ "Cannot backup and delete the old configuration file (FTP connection " +#~ "failed)!" +#~ msgstr "" +#~ "Imposible respaldar y eliminar archivo de configuración anterior " +#~ "(conexión FTP fallida)!" +#~ msgid "File deletion failed (FTP connection failed):" +#~ msgstr "Falló el borrado del archivo (conexión FTP fallida)!" +#~ msgid "" +#~ "Cannot backup the configuration file because the permissions are wrong " +#~ "(remote FTP)!" +#~ msgstr "" +#~ "Imposible respaldar archivo de configuración debido a permisos " +#~ "incorrectos (FTP remoto)!" +#~ msgid "" +#~ "Cannot open/overwrite the configuration file - check the permissions of " +#~ "the temp directory:" +#~ msgstr "" +#~ "Imposible abrir/sobrescribir archivo de configuración - compruebe " +#~ "permisos sobre el directorio temp:" +#~ msgid "Cannot backup the configuration file (check the permissions)!" +#~ msgstr "Imposible respaldar archivo de configuración (compruebe permisos)!" +#~ msgid "Cannot open the configuration file (FTP connection failed)!" +#~ msgstr "Imposible abrir el archivo de configuración (conexión FTP fallida)!" + +#, fuzzy +#~ msgid "Change settings (optional)" +#~ msgstr "Ajustes de chequeo" +#~ msgid "Installation" +#~ msgstr "Instalación" +#~ msgid "Update" +#~ msgstr "Actualizar" + +#, fuzzy +#~ msgid "Hold CTRL to select
more than one entry" +#~ msgstr "Mantenga presionado CTRL para seleccionar
más de una entrada" +#~ msgid "Read settings" +#~ msgstr "Leer configuraciones" +#~ msgid "THIS FILE IS AUTOMATICALLY CREATED! DO NOT EDIT MANUALLY" +#~ msgstr "ESTE ARCHIVO ES CREADO AUTOMATICAMENTE! NO LO EDITE MANUALMENTE!" +#~ msgid "Installation sucessfully finished." +#~ msgstr "Instalación finalizada satisfactoriamente." +#~ msgid "Thanks for using NagiosQL!" +#~ msgstr "Gracias por usar NagiosQL!" +#~ msgid "NagiosQL System settings" +#~ msgstr "NagiosQL Configuraciones del sistema" +#~ msgid "seconds" +#~ msgstr "segundos" +#~ msgid "Please define the language for the Setup process" +#~ msgstr "Por favor defina el idioma para el proceso de Instalación" +#~ msgid "This setup will help you with your new NagiosQL Installation:" +#~ msgstr "Este instalador lo ayudará con su nueva Instalación de NagiosQL:" +#~ msgid "This setup will help you upgrading your old NagiosQL Installation:" +#~ msgstr "" +#~ "Este instalador lo ayudará en la actualización de su anterior Instalación " +#~ "de NagiosQL:" +#~ msgid "verify the requirements," +#~ msgstr "verificar los requerimientos," +#~ msgid "and upgrade the database." +#~ msgstr "y actualizar la base de datos." +#~ msgid "Module / Test" +#~ msgstr "Módulo / Prueba" +#~ msgid "Installation Test" +#~ msgstr "Prueba de Instalación" +#~ msgid "exists" +#~ msgstr "existe" +#~ msgid "Existing database" +#~ msgstr "Base de datos existente" +#~ msgid "will be deleted" +#~ msgstr "será eliminado" +#~ msgid "already exists - new installation is not possible" +#~ msgstr "ya existe - nueva instalación no es posible" +#~ msgid "added columns" +#~ msgstr "columnas agregadas" +#~ msgid "Update tables and data" +#~ msgstr "Actualizar tablas y datos" +#~ msgid "" +#~ "Now we install the NagiosQL V3.00 Database. If you upgrade from NagiosQL " +#~ "V2.0.0 or V2.0.2 you can use the upgrade option." +#~ msgstr "" +#~ "Ahora instalamos la base de datos de NagiosQL V3.00. Si actualiza desde " +#~ "NagiosQL V2.0.0 o V2.0.2 puede usar la opción de actualización de versión." +#~ msgid "" +#~ "Using the option 'Skip DB installation' will only upgrade the NagiosQL DB " +#~ "access settings and does not install or upgrade the database." +#~ msgstr "" +#~ "Usando la opción 'Omitir instalación de BD' solo actualizará los ajustes " +#~ "de acceso a la BD de NagiosQL sin instalar o actualizar la base de datos." +#~ msgid "Installation option" +#~ msgstr "Opciones de instalación" +#~ msgid "Database name (new or existing V2.x database)" +#~ msgstr "Nombre de la base de datos (nueva o V2.x existente)" +#~ msgid "Drop existing database?" +#~ msgstr "Borrar la base de datos existente?" +#~ msgid "MySQL User (installation only)" +#~ msgstr "Usuario MySQL (solo instalación)" +#~ msgid "In case of an upgrade, this option has no functionality." +#~ msgstr "" +#~ "En caso de una actualización de versión, esta opción no tiene " +#~ "funcionalidad." +#~ msgid "" +#~ "Please fill in all required arguments (ARGx) for your selected command" +#~ msgstr "" +#~ "Por favor complete todos los argumentos requeridos (ARGx) para el comando " +#~ "seleccionado" +#~ msgid "Host Templates" +#~ msgstr "Plantillas de Host" +#~ msgid "Contact Templates" +#~ msgstr "Plantillas de Contactos" + diff --git a/config/locale/es_AR/LC_MESSAGES/index.html b/config/locale/es_AR/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/es_AR/index.html b/config/locale/es_AR/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/es_ES/LC_MESSAGES/es_ES.mo b/config/locale/es_ES/LC_MESSAGES/es_ES.mo new file mode 100644 index 0000000000000000000000000000000000000000..0dee83db466e7ffa3168c08d5f87a3c22fd0480d GIT binary patch literal 59320 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 literal 0 HcmV?d00001 diff --git a/config/locale/es_ES/LC_MESSAGES/es_ES.po b/config/locale/es_ES/LC_MESSAGES/es_ES.po new file mode 100644 index 0000000..8c18520 --- /dev/null +++ b/config/locale/es_ES/LC_MESSAGES/es_ES.po @@ -0,0 +1,3700 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +# Damián González , 2012. +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:51+0100\n" +"PO-Revision-Date: 2012-03-09 22:51+0100\n" +"Last-Translator: \n" +"Language-Team: Spanish (Spain) (http://www.transifex.net/projects/p/nagiosql/language/es_ES/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_ES\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Administración de NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Bienvenido a" + +#: index.php:46 +msgid "Welcome" +msgstr "Bienvenido" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Por favor introduzca usuario y clave para acceder a NagiosQL.
Si ha olvidado alguno de ellos, por favor póngase en contacto con su administrador." + +#: index.php:48 +msgid "Username" +msgstr "Nombre de Usuario" + +#: index.php:49 +msgid "Password" +msgstr "Clave" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administración" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funciones para adiministrar NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alarmas" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Para definir contactos, plantillas de contactos, grupos de contactos y periodos de tiempo." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Datos estadísticos" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Grupo" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Activo" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inactivo" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Datos de contactos" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Grupos de contactos" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Periodos de tiempo" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Plantillas de contactos" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "¡Fichero de configuración escrito satisfactoriamente!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configuración escrita satisfactoriamente:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "No se puede abrir/sobreescribir el fichero de configuración (comprobar permisos)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "La escritura de la configuración ha fallado:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "¡No se puede abrir/sobreescribir el fichero de configuración (compruebe los permisos del sistema remoto)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Ha fallado la escritura de la configuración (remoto)" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Archivo Configuracion CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "No se puede abrir archivo de datos ( comprobar permisos!)" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "No se puede abrir el fichero temporal" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Fallo en la lectura de la configuración (remoto):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Insertar Nuevo Comando:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Modificar Comando:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "¡Entrada en base de datos fallida! ¡No se han rellenado todos los datos necesarios!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "¡Fallo al escribir en la base de datos! ¡Sin permisos de escritura!" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Definicion de Comandos" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "¡No es posible guardar!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "Sin clasificar" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "Comprobar Comandos" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "Varios Comandos" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "La entrada no puede ser activada porque se usa en otra configuración" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Nombre del Comando" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Linea de Comando" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Error al seleccionar los datos de la base de datos:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Comprobar Comandos" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Para definir comandos de comprobación, misc, notificacion o especiales." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "no es escribible" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Fichero de configuración de Nagios" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "Fichero de configuración cgi" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "¡módulo SSH no cargado!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "¡módulo FTP no cargado!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Nuevo dominio instertado:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Dominio Modificado" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Configuración de la administración del dominio" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "¡Precaución, al menos ha ocurrido un error, por favor compuébelos!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Pro favor, rellene todos los campos marcados con un *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "El campo siguiente contiene caráteres no permitidos:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Objetivo de configuración" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Descripción" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Nuevo grupo de contactos insertado" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Grupo de contactos modificado:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Definir grupos de contactos (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Atención, ¡no hay contactos definidos!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Gupo de contactos" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Nuevo contacto insertado:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contacto Modificado:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Definir contactos (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "¡Atención, no hay definidos periodos de Tiempo!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "¡Atención, no hay comandos definidos!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nombre de Contacto" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Nueva plantilla de contacto insertada:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Plantilla de contacto modificada:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Definir plantillas de contactos (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Administración del dominio de datos" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "¡Atención, no hay objetivos de configuración definidos!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Activar" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Desactivar" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Dominio de datos" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Archivo Borrado" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "¡Borrado satisfatoriamente!" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "¡Borrar ficheros de respaldo!" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Texto filtro" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Buscar" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Borrado" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Limpiar filtro" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Archivo de Backup" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "Requerido" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Cancelar" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Mantega pulsado CTRL para seleccionar
más de una entrada" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Borrar ficheros de configuración" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Fichero de configuración" + +#: admin/download.php:67 +msgid "Download" +msgstr "Descarga" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Nuevo grupo añadido:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Usuario Modificado:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Grupo de administración" + +#: admin/group.php:114 +msgid "Read" +msgstr "Leer" + +#: admin/group.php:115 +msgid "Write" +msgstr "Escribir" + +#: admin/group.php:116 +msgid "Link" +msgstr "Enlace" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Nombregrupo" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "No hay datos" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Editor de Texto de Ayuda" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Clave primaria" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Subclave" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Idioma" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Versión de Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Cargar texto por defecto" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Nueva dependencia de equipos insertada:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Dependencia de equipos modificada:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definir dependencias de equipos (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "¡Atención, ni equipos ni grupo de equipos definidos!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Nombre de configuración" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Equipos dependientes" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Grupos de equipos dependientes" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Nuevo escalado de equipos insertado:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Escalado de equipos modificado:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Definir escalado de equipos (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "¡Atención, no hay contactos ni grupos de contactos defenidos!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Grupo de Host" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Nueva información extendida de equipo insertada:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Información extendida de equipo modificada:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definir la información extendida de los equipos (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "¡Atención, no hay equipos definidos!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nombre del Host" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notas" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Insertado nuevo grupo de equipos:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Grupo de equipos modificado:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Definir grupos de equipos (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Grupo de equipos" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Nuevo equipo insertado" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Equipo modificado:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "¡Los asignados, no utilizados, ficheros de configuración se han borrado satisfactoriamente!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Archivo de equipo borrado:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "¡Los ficheros comunes no se pueden borrar desde sistemas objetivos - por favor compruébalo manualmente!" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "¡Error mientras se borraba los ficheros antiguos de configuración - por favor compruébelo!" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Definir equipos (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "¡Atención, No hay definido un grupo de Contacto!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Insertado nueva plantilla de Host:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Plantilla de Host Modificada:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Definicion de Plantilla Host ( hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Nombre Plantilla Host" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Error al cargar el fichero:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Fichero importado - fichero [opción sobreescritura]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Importar configuración" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Definición de Plantilla" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Archivo Importado" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Importar archivo local" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Sobreescribir Bae de Datos" + +#: admin/import.php:94 +msgid "Import" +msgstr "Importar" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Mantenga CTRL para
seleccionar más de uno" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Este es la ruta relativa de su instalación de NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Esta es la ruta absoluta a su instalación de NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Si necsita una conexión segura, seleccione HTTPS en vez de HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Por favor elige un directorio temporal con permisos de escritura. El directorio temporal por defecto del SO." + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Por favor seleccione el lenguaje de su aplicación" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "La codificación no debe ser otra que utf-8. Cualquier cambio es responsabilidad suya." + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Dirección IP o nombre del servidor de base de datos
Ej. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Puerto servidor MySQL, por defecto es 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Nombre de la base de datos de NagiosQL
e.j. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Usuario con privilegios suficientes para la base de datos de NagiosQL
debe tener por lo menos los siguientes permisos SELECT, INSERT, UPDATE, DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Clave para el usuario mencionado arriba" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Después de la canidad de segundos definida, la sesión terminará por razones de seguridad" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Decide entre la autenticación basada en Webserver
Ejmpl. Configuración de Apache (Fichero o htaccess) o NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Cuantas entradas por lado seran visibles (e.j. servicios o equipos)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Seleccione múltiples entradas usando la ventana o manteniendo pulsado CTRL + el botón izquierdo en NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Habilitar o Deshabilitar la advertencia si el campo requerido no contiene datos en los objetos con plantillas." + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Habilitar o deshabilitar la comprobacion en linea de la version" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Si necesita un Proxyserver para conectarse a internet (Puerto 80), por favor defina uno." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Direccion de tu Proxyserver Ej. proxy.yourdomain.com:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Usuario que se conecta a traves del proxy (opcional)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Clave para conectarse a traves del proxy (opcional)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Información popup" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Información no disponible" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Conjunto de datos borrado satisfactoriamente. Columnas afectadas:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Ver libro de LOGS" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Borrar entrada de logs entre:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Por favor rellene al menos una hora de inicio o de final" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "¿Seguro que quiere borrar todas las entradas del log entre las fechas seleccionadas?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "Anteriores 20 entradas" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "Siguientes 20 entradas" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Error al insertar los datos en la base de datos:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "¡Los datos fueron insertados en la base de datos satisfactoriamente!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Acceso grupo seleccionado para objeto del menu:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Defir los derechos de acceso a menús" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Para que un usuario tenga acceso, necesita ser miembro del grupo seleccionado aqui." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitorizar" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Para definir supervisiones de equipos y servicios así como equipos y grupos de servicios." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Servicios" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Grupos de servicios" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Plantillas de Host" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Plantillas de servicios" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Disponible" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Selección" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Fichero de configuración principal de Nagios" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Password modificado corréctamente" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "¡Clave demasiado corta o las claves no son iguales!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "La clave antigua es errónea" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Guardar" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "¡Las claves no son iguales!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "¡La nueva clave es muy corta - use al menos 6 carácteres!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Nueva dependencia de servicio insertada:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Dependencia de servicio modificado:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definir dependencias de servicio (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Servicios dependientes" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Nuevo escalado de servicio insertado:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Escalado de servicio modificado:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definir escalado de servicio (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Nueva información extendida de servicio insertada:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Información extendida del servicio modificada:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Definir información extendida de servicio (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Nombre del Equipo:" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Servicio" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Nuevo grupo de servicios insertado:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Grupo de servicios modificado:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definir grupos de servicios (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "¡Atención, no hay servicios definidos!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Grupo de servicios" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Nuevo servicio insertado:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Servicio modificado:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Fichero de servicio borrado:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Definir servicios (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "¡Atención, no hay equipos ni grupo de equipos definido!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "¡Atención, no hay comandos de comprobación definidos!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "¡Atención, no hay contactos o grupos de contactos definidos!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Nombre de servicio" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Todas las configuraciones" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Nueva plantilla de servicio insertada:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Plantilla de servicio modificada:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Definir plantillas de servicio (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nombre de plantilla" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Descripción de Servicios" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "El modulo Curl no puede ser cargado, el Proxy debe ser desactivado!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "Error mientras se guardaba la configuración en la base de datos:" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Error al configurar el locale correcto, por favor informa de este error con la salida asociada de 'locale -a'" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "La configuración ha cambiado" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "¡Ha ocurrido un error mientras se escribia settings.php, por favor compruebe los permisos! " + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "¡No es escribible, por favor comprueba los permisos!" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configurar ajustes" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Cambie sus ajustes actuales de NagiosQL (e.j. usuario de la base de datos. lenguaje)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Ruta" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Directorio Temporal." + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protocolo del Servidor" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Encriptado" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Base de Datos" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Servidor MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Puerto Servidor MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nombre de la base de datos" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Usuario Base de Datos" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Clave Base de Datos" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Seguridad" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Tiempo de inactividad" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Tipo de autenticación" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Común" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Líneas de datos por página" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Método de selección" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Mensaje de advertencia de plantilla" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Prueba de la versión online" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "servidor proxy" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "dirección de proxy" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "nombre de usuario proxy (opcional)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "proxy contraseña (opcional)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Comandos Misc" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Para definir equipos y dependencias de servicio, equipo y escalado de servicio así como de equipo y datos adicionales de servicio." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Dependencias de equipos" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Escalado de equipos" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Inf. ext. equipos" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Dependencias de servicios" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Escalado de servicios" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Info ext. servicios" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "¡Falló!" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "fichero de proceso de Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Fichero de comandos de NAgios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Fichero binario de Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Arriba" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Abajo" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modificar" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Nuevo periodo de tiempo instertado:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Periodo de tiempo modificado:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Definiciones de periodos de tiempo" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Por favor introduzca un definición y un rango de tiempo" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Periodo de tiempo" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Herramientas diferentes" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Funciones útiles par la importación de datos, configuración principal, control del demonio, etc..." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Un nuevo usuario añadido:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Administracio de Usuario" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "¡La clave es diferente!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Por favor rellena la clave" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "¡La clave es demasiado corta - use al menos 6 caracteres!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Autentificación Servidor Web" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Escribir configuracion de Host" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "¡Objetos de configuración no definidos!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Escribir configuracion Servicios" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "¡No se puede encontrar el binario de Nagios o no tiene derechos de ejecución!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "¡Ejecución remota (FTP SITE EXEC) no soportada por su sistema!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "¡Comando de verificación de ejecución remota de nagios fallido (SSH remoto)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "¡Binario de Nagios o fichero de configuración no encontrado (SSH remoto)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Demonio de Nagios reiniciado satisfactoriamente" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Comando de reinicio enviado a Nagios satisfactoriamente" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Reinicio fallido - Fichro de comando de Nagios no encontrado o no tiene derechos de ejecución" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "¡Fichero de comandos de Nagios no encotrado o no tiene permisos de escritura!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Reinicio fallido - El demonio de nagios no estaba en ejecución" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "¡El demonio de Nagios no esta en ejecución, no se puede enviar el comando de reinicio!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Reinicio fallido - restricciones FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "¡El reinicio de Nagios no es posible via FTP!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "¡Reinicio fallido - Fichero de comandos de Nagios no encontrado o no tiene derechos de ejecución (SSH remoto)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Demonio de Nagios reiniciado satisfactoriamente (SSH remoto)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Comando de reinicio enviado a Nagios satisfactoriamente (SSH remoto)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "¡Fichero de comandos de Nagios no encontrado (SSH remoto)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Comprueba los fichero de configuración escritos" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Comprobar los ficheros de configuración:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Reiniciar Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Escribir los datos de monitorización" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Escribir datos adicionales" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "¡Precaución, comprueba siempre la configuración antes de reiniciar Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Házlo" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Comprobar la configuración escrita de Nagios - Precaución/Errores:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "¡La configuración es válida Nagios puede ser reiniciado!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Instalado " + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Información" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Ya tiene la última versión instalada" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Está usando una versión de NagiosQL anticuada. Por favor, actualice a la última versión estable" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Dominio" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nombre de servidor" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Método" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Directorio con claves SSH" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "directorios de configuración" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Directorio base" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Directorio de equipos" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Directorio de servicios" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Directorio de Backup" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Directorio de respaldo de equipos" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Directorio de backup de servicios" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Directorio base de fotos" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Usar dominio común" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Decodificar datos UTF8 en ficheros de configuración." + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Ranura para clave de acceso" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Claves de acceso" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Registrado" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Función" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Seleccionado" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Agregar" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Formcheck" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Pregunta segura" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Si" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "No" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Tiempo" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Usuario" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entrada" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Desde" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "a" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Borrado de Log" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copiar" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Confirmar Clave" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Clave Antigua" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Nueva Clave" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Cambiar Clave" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Página de menu" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Buscar string" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Escribir archivo de Configuración" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Comando" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Tipo de comando" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Excluido" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Incluir" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Definir Tiempos" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Día de la Semana" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Rango de Tiempo" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Definir Tiempo" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Insertar" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modificar selección" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Periodos de tiempos para equipos" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Periodos de Servicios" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Opciones del Equipo" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Opciones para los Servicios" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Comandos de Equipo" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Comando de Servicios" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Dirección Email" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Número de página" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Dirección extra" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Notif.Servicios Activos" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Notificación de servicio activada" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Puede enviar comandos" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Mantener la información de estado" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Mantiene el resto de la información" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Miembros" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Miembros de Grupos" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Configuración común" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Ajustes de Servicio" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Añadir esta configuración de equipo a las definiciones de servicio existentes" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Padres" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Comprobar Comando" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Vista de Comandos" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Plantillas Adicionales" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Comprobar Opciones" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Estado Inicial" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Intervalo de Reintento" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Máximos intentos de comprobación" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Intervalo de Comprobación" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Comprobación activa activada" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Comprobación pasiva activada" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Comprobar Periodo" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Umbral de refresco" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Refresco de comprobación" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Concentración en el equipo" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Concentración en el servicio" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Gestor de eventos" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Gestor de eventos activado" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Umbral bajo de oscilación" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Umbral alto de oscilación" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Detección de oscilación activada" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Opciones de la detección de estabilidad" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Mantener información de estado" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Mantiene el resto de la información" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Datos sobre el rendimiento de los procesos" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Opciones Alarmas" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contactos" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Periodo de notificación" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Opciones de notificación" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Intervalo de notificaciones" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Retardo en la primera notificación" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notificación activada" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Opciones de seguimiento" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Ajustes adicionales" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Imagen VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notas URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Estado Imagen" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Imágen para el icono" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "URL de acción" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "Coordenadas 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "Coordenadas 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Imagen icono texto ALT" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "Estándar" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "on" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "off" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "saltar" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Definicion de varaibles libre" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Descripción de Variable" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Valor Variable" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Activar" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Desactivar" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "¿Quiere realmente borrar esta entrada de base de datos?" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "¿Quiere realmente borrar todas las entradas marcadas?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Seleccionar todos los conjuntos de datos mostrados" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Archivo" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Escribir todos los ficheros de traducción" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Dirección" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Mostrar Nombre" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Usar esta configuración como plantilla" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Nombre Genérico" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Por favor compruebe al menos una opción de:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Nombre Gurpo de Host" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Nombre Gurpo de Servicios" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Es volatil" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Paralizar Controles" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Filtro nombre Configuración" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Directorio de Importación" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Por favor inserte un nombre de variable y una definición de variable" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Precaución:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "¡No se rellenaron algunos campos obligatorios!

Si estos valores se establecen en una plantilla, se puede guardar la configuración - ¡si no es así, la configuración es incorrecta!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Directorio base de Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Escribir configuración" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "¡No se rellenarom algunos campos obligatorios!
Si estos valores se establecen en una plantilla, se puede guardar, pero si no es así ¡la configuración es incorrecta!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Miembros de grupo de servicios" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Nombre del grupo de servicios" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Grupos de Equipos" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Padre heredado" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Fallo en un criterio de ejecución" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Fallo en un criterio de notificación" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Periado de Dependecia" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Periodo de Escalado" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Opciones de Escalado" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Primera Notificación" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Ultima Notificación" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "Grupos de servicios dependientes" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Ayuda" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendario" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Nombre de Grupo" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Usuarios" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Grupo de acceso" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Definido por el usuario" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Nombre de usuario" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Derechos de usuario" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Restricciones de acceso a objetos" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Activar grupo administración" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Mostrar datos de relación" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Ocultar datos de relación" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "Idioma del usuario" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Dominio standar" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "¡Los servicios asociados deben ser escritos adicionalmente a los ficheros. Escribir sólo la configuración del equipo no es suficiente porque la modificación se guarda dentro de los ficheros de servicio!" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Lunes" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Martes" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Miércoles" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Jueves" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Viernes" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Sábado" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Domingo" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Página Principal" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Supervisión" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Comandos" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Especialidades" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Herramientas" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Dependencias de servicios" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Escalado de servicios" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Dependencia de Equipo" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Escalado de Equipo" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Host Extendido" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Servicio Extendido" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Importación de Datos" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Usuario Administrador" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Grupo admin" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Control Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Libro de Logs" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios Config" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Opciones" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definiciones" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI Config" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Menú de Acceso" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Dominios" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Editor de Ayuda" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "¡Atención: Archivo de configuracion fuera def fecha!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "¡No se puede borrar y respaldar la antigua configuración (compruebe los permisos)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "¡No se puede respaldar el fichero antiguo de configuración porque los permisos son erróneos (FTP remoto)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "¡No se puede respaldar los ficheros de la configuración antigua porque los permisos son erróneos (SFTP remoto)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "No se puede borrar el fichero porque los permisos son erroneos (FTP remoto)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "No se puede borrar el fichero porque no existe (FTP remoto)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "No se puede borrar el fichero porque los permisos son erroneos (SFTP remoto)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "¡No se puede borrar el fichero porque no existe (SFTP remoto)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "¡No se puede conseguir el fichero de configuración (la conexión FTP ha fallado)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "¡No se puede escribir el fichero de configuración (conexión FTP fallida)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "¡No se puede conseguir el fichero de configuración (la conexión SSH ha fallado)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "¡No se puede conseguir el fichero de configuración (el fichero remoto no existe)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "¡No se puede escribir el fichero de configuración (conexión SSH fallida)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "¡No es posible escribir los ficheros de configuración directamente desde el dominio común!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Escritura de configuración fallida (conexión FTP fallida):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "¡No se puede abrir/sobreescribir el fichero de configuración (conexión FTP fallida)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "¡No se puede abrir/sobreescribir el fichero de configuración (SFTP remoto)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Conexión a sistema remoto fallida (conexión SSH2):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "La clave SSH pública no exisite o no se puede leer" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "La clave SSH privada no exisite o no se puede leer" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Conexión a sistema remoto fallida (conexión FTP):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "No es posible Abrir el Directorio" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "Fuera de la Fecha" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "Falta" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "Actualizado" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Ultima actualización de la base de datos:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "- de la tabla:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "No se borraron datos. Probablemente el conjunto de datos no existe o esta protegido." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Borrar base de datos id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr " - de Tabla:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "-Lineas afectadas:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Borrar datos de la tabla:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Ha fallado la copia del conjunto de datos - tabla [new name]" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Conjunto de datos copiado - tabla [new name]" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Exito en la activación del confunto de datos. Filas afectadas:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Activar conjunto de datos desde tabla:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Conjunto de datos desactivado satisfactoriamente. Filas afectadas:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " de la tabla" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relacionado con " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr " entrada " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "borrado posible" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "borrar no es posible" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "¡No se puede recibir el fichero de configuración (conexión FTP)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "¡No se puede recibir el fichero de configuración (conexión SSH)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabla para importar definiciones" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "¡No esta disponible!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "dentro" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "Existe y no es posible la sobre escritura" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "no escrito" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "No ha sido Insertado:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "Insertado Correctamente" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Error: número erróneo de argumentos - no se pueden importar los miembros de grupo de servicios" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "¡Falta un parámetro de conexion con el servidor!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "La conexión al sevidor de base de datos ha fallado por la siguiente razón:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "¡Falta algún parámetro para conectar a la base de datos!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Esconder Menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Mostrar Menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Página" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Acceso ilimitado:" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Error al conectar a la base de datos:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Error al configurar el locale correcto, por favor informa de este error con la salida asociada de 'locale -a' a bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "¡Éxito de login en webserver!" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Login correcto" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "¡login incorrecto!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Agotado tiempo de inactividad - Segundos:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Página de acceso restringido:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Usuario no encontrado en la base de datos" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Admin" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Logeado en:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Cierre de sesión" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Precaución - fichero de plantilla no encontrado o ilegible, por favor comprueba los permisos de los ficheros! - Fichero:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin no se puede eliminar" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost no puede ser borrado" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "¡Si permiso para abrir la configuración!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Inglés" + +#: functions/translator.php:60 +msgid "German" +msgstr "Alemán" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chino (Simplificado)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiano" + +#: functions/translator.php:72 +msgid "French" +msgstr "Francés" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Ruso" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Español" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugues (Brasileño)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Holandes" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Danes" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Documentación OnLine" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Bienvenido al Asistente de instalación de NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Este asistente le ayudara durante el proceso de instalación y configuración de NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Para resolver dudas por favor visite" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Primero vamos a comprobar su entorno local para ver si todo lo que necesita NagiosQL esta disponible." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "Los requerimientos básicos son:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "Incluye PHP 5.2.0 o superior:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "Módulo PHP:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(opcional)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "Extensión PEC :" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "opciones php.ini" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "carga_ficheros activada (para las características de carga)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start ha de estar desactivado" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Un servidor de MySQL" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "INICIAR INSTALACIÓN" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "INCIAR ACTUALIZACIÓN" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Requisitos" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Finalizar" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Comprobando requisitos" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Comprobando cliente" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Comprobando la versión de PHP" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Comprobando extensiones PHP" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Comprobando las interfaces de base de datos disponibles" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Comprobando los ajustes php.ini/.htaccess " + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Comprobando permisos del sistema" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "Los siguientes módulos/extensiones son necesarios para ejecutar NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "El siguiente par de extensiones son opcionales pero recomendadas" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Comprobar cuales de la extensiones soportadas están instaladas. Al menos una de ellas es necesaria." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Los siguientes ajustes son requeridos para ejecutar NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "ACTIVADO" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "NO ACTIVADO" + +#: install/step1.php:113 +msgid "Version" +msgstr "Versión" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "detectado" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "o superiror es requerido" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Puede ser cargado. Por favor añada en php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NO DISPONIBLE" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "no puede estar vacío y necesita estar definido" + +#: install/step1.php:184 +msgid "should be" +msgstr "devería estar" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Test de lectura en fichero de ajustes (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "El fichero de configuración no existe (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "Creado con éxito" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Test de escritura en fichero de ajustes (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Test de escritura en directorio de ajustes (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Test de lectura en fichero de clases (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Test de lectura archivo inicio ( admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Test de lectura en Archivo Plantilla (templates/index.tpl.html)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Test de lectura en el fichero de la platilla de administración (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Test de lectura en el fichero de plantilla (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Test de escritura en el fichero de imagen (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "¡Existen algunos errores - por favor compruebe sus ajustes de sistema y lea los requerimientos de NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Lea el archivo INSTALLATION de NagiosQL para averiguar cómo solucionarlos." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Despues - Refresca esta página para proceder" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Refrescar" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Test de entorno pasado satisfactoriamente" + +#: install/step1.php:264 +msgid "Next" +msgstr "Siguiente" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Configuración" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Por favor a continuación complete el formulario. Campos obligatorios marcados con *" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Configuración de la base de datos" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Usuario BD NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Clave BD NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "¿Eliminar la base de datos si existe?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "Ajuste del usuario de NagiosQL" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Usuario Inicial NagiosQL" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Clave inicial de NagiosQL" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Por favor repita la clave" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Configuración de Nagios" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "¿Importar configuración de ejemplo para Nagios?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Por favorrespalde su base de datos antes de proceder!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Finalizando configuración" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Desplegar ajustes de NagiosQL" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Borrar base de datos existente NagiosQL" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Creando Nueva Base de Datos" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Configure el Administrador de NagiosQL inicial" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Escribiendo ajustes globales a la base de datos" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Escribiendo la configuración de la base de datos a settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importar configuración de ejemplo para Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Actualizar base de datos de NagiosQL existente" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Versión de NagiosQL instalada" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Actualizado desde la versión" + +#: install/step3.php:86 +msgid "to" +msgstr "a" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Conviritiendo la base de datos a utf8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Convirtiendo las tablas de la base de datos a codificación utf8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Conviritiendo los campos de la base de datos a la codificación utf8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Crear nueva base de datos de NagiosQL" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "La base de datos existe y su borrado no fue seleccionado, por favor seleccione la opción o hágalo manualmente." + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "¡correcto!" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Atras" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "¡Por favor borre el directorio install antes de continuar!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "Soportada" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "No Soportado" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "Hecho" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/es_ES/LC_MESSAGES/index.html b/config/locale/es_ES/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/es_ES/index.html b/config/locale/es_ES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/fr_FR/LC_MESSAGES/fr_FR.mo b/config/locale/fr_FR/LC_MESSAGES/fr_FR.mo new file mode 100644 index 0000000000000000000000000000000000000000..794ea96a73ea3ae47d01843e718f27ebe67c664a GIT binary patch literal 80029 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 Ax&QzG literal 0 HcmV?d00001 diff --git a/config/locale/fr_FR/LC_MESSAGES/fr_FR.po b/config/locale/fr_FR/LC_MESSAGES/fr_FR.po new file mode 100644 index 0000000..a49ac39 --- /dev/null +++ b/config/locale/fr_FR/LC_MESSAGES/fr_FR.po @@ -0,0 +1,3699 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:51+0100\n" +"PO-Revision-Date: 2012-03-09 22:51+0100\n" +"Last-Translator: \n" +"Language-Team: French (France) (http://www.transifex.net/projects/p/nagiosql/language/fr_FR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr_FR\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Administration de NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "Bienvenue dans NagiosQL, le module d'administration qui peut-être utilisé pour facilement créer, modifier ou supprimer les fichiers de configuration de Nagios. Les données sont stockées dans une base de données et peuvent être écrites directement dans les fichiers standard à n'importe quel moment." + +#: index.php:45 +msgid "Welcome to" +msgstr "Bienvenue sur" + +#: index.php:46 +msgid "Welcome" +msgstr "Bienvenue" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Merci d'entrer votre nom d'utilisateur et votre mot de passe pour acccéder à NagiosQL.
Si vous avez oublié l'une ou l'autre de ces données, merci de contacter votre administrateur Nagios." + +#: index.php:48 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: index.php:49 +msgid "Password" +msgstr "Mot de passe" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administration" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Fonctions d'administration NagiosQL3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Notifications" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Pour définir des données de contacts, des modèles de contacts, ainsi que des groupes de contacts et des périodes de temps." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Données statistiques" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Groupe" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Actif" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inactif" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Les données de contact" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Groupes de contact" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Périodes de temps" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Modèles de contact" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Fichier de configuration écrit avec succès !" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configuration écrite avec succès :" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Impossible d'ouvrir ou d'écraser le fichier de configuration (Vérifiez les permissions) !" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "L'écriture de la configuration a echoué :" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Impossible d'ouvrir ou d'écraser le fichier de configuration (Vérifiez les permission sur le système distant) !" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Echec de l'écriture de la configuration (distant) :" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Fichier de configuration des CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Impossible d'ouvir le fichier de données (Vérifiez les permissions) !" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Impossible d'ouvrir le fichier temporaire" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "La lecture le la configuratin à échouée (distant) :" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Nouvelle commandes insérée :" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Commande modifiée :" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Erreur d'entrée dans la base de données ! Tous les champs requis n'ont pas été remplis !" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "Erreur lors de l'entrée dans la Base de données! Pas d'accès en écriture!" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Définition des commandes" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Sauvegarde impossible !" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "non classifié" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "Commande de test" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "autres commandes" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "L'entrée ne peut être activée parce qu'elle est utilisée dans une autre configuration" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Nom de la commande" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Ligne de commande " + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Erreur lors de la sélection des données depuis la base de données :" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Commandes de test" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Pour définir les commandes de tests et les commandes diverses, les commandes de notification et les commandes spéciales." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "n'est pas accessible en écriture" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Fichier de configuration NAgios" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "ce n'est pas un fichier de configuration valide!" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "Fichier de configuration Cgi" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "Module SSH non chargé!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "Module FTP non chargé!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Nouveau domaine inséré :" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domaine modifié :" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Administration de la configuration du domaine" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Attention, au moins une erreur s'est produite, merci de vérifier !" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "S'il vous plaît remplissez tous les champs marqués avec une *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Le champ suivant contient des caractères interdits :" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Cible de configuration" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Description " + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Nouveau groupe de contact inséré :" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Groupe de contacts modifié :" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Définir des groupes de contact (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Attention, pas de contact défini !" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Groupe de contact " + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Nouveau contact ajouté :" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contact modifié :" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Définir les contacts (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Attention, aucune période de temps (time periods) n'a été définie !" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Attention, aucunes commandes définies !" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nom du contact" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Nouveau modèle de contact inséré:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Modèle de contact mise à jour:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Définir des modèles de contact (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Administration du domaine de données" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "Attention, pas de cible de configuration définie!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Activer" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Désactiver" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Domaine de données" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Fichier effacé" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "supprimé avec succès" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Supprimer les fichiers de sauvegarde" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filtre " + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Chercher" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Effacer" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Effacer le filtre" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Fichier de sauvegarde " + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "requis" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Annuler" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Maintenir CTRL enfoncé pour sélectionner
plusieurs entrées" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "Pas de fichier de sauvegarde ou aucune permission pour lire les fichiers de sauvegarde." + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Supprimer les fichiers de configuration" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Fichier de configuration" + +#: admin/download.php:67 +msgid "Download" +msgstr "Télécharger" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Un nouveau groupe a été ajouté:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Utilisateur modifié :" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Administration de groupe" + +#: admin/group.php:114 +msgid "Read" +msgstr "Lire" + +#: admin/group.php:115 +msgid "Write" +msgstr "Ecrire" + +#: admin/group.php:116 +msgid "Link" +msgstr "Lien" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Nom du groupe" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Pas de données" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Editeur du texte d'aide" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Clé principale" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Sous clé" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Langue" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Version de Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Chargement du texte par défaut" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Nouvelle dépendance d'hôte insérée :" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Dépendance de l'hôte modifié :" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Définir les dépendances d'hôte (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Attention, pas d'hôtes et de groupe d'hôtes défini" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Nom de configuration " + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Hôtes dépendants " + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Groupes d'hôtes dépendants " + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Nouvelle escalade d'hôte inséré :" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "L'escalade de l'hôte mise à jour:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Définir l'escalade d'hôte (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Attention, aucun contacts et groupes de contacts définis!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hôtes " + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Groupes d'hôtes " + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Nouvelle information d'hôte étendue insérée :" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Information étendue d'hôte modifiée :" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Définir les informations étendues d'hôte (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Attention, aucun hôte défini!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nom d'hôte " + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notes" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Nouveau groupe d'hôtes (Host group) inséré :" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Groupe d'hôtes (Host group) modifié :" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Définir les groupes d'hôtes (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Groupe d'hôte" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Nouvel hôte ajouté :" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Hôte modifié" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "Les fichiers de configuration inutilisés ont été supprimés avec succès !" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Fichier de l'Hôte effacé :" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Fichiers communs ne peuvent pas être retirés de systèmes cibles - s'il vous plaît vérifier manuellement" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Erreurs lors de la suppression de l'ancien fichier de configuration - Merci de vérifier ! :" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Définir les hôtes (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Attention, aucun groupe de contact n'a été défini !" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Nouveau modèle d'hôte inséré :" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Modèle d'hôte modifié :" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Définir les modèles d'hôte (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Nom du modèle d'hôte" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Erreur téléchargement de fichier:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Fichier importé - Fichier [Drapeau écrasé] :" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Configuration de l'import" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Définition du modèle" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Fichier d'import " + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Fichier d'importation local" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Ecraser la base de données " + +#: admin/import.php:94 +msgid "Import" +msgstr "Importer" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Maintenir CTRL enfoncé pour en sélectionner plusieurs" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "Pour éviter les erreurs de configuration, vous devriez importer vos configurations dans un ordre utile. Nous vous recommandons de la faire de la façon suivante:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplate -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "Vérifiez vos configurations après l'import!
En cas d'erreur ou de configuration incomplète, ré-importer la configuration en cause peut résoudre le problème.
" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Ceci est le chemin relatif de votre installation NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Ceci est le chemin absolu de votre installation NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Si vous avez besoin d'une connexion sécurisée, sélectionnez HTTPS au lieu de HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Merci de choisir un répertoire temporaire avec les permissions d'écriture. Le répertoire par défaut est celui fourni par votre système d'exploitation" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Merci de choisir votre langue pour l'application" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "L'encodage doit obligatoirement être réglé sur utf-8. Tout changement est à vos risques et périls." + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Adresse IP ou nom d'hôte du serveur de base de données
exemple localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Port du serveur MySQL, 3306 par défaut" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Nom de la base de données NagiosQL
par exemple db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Utilisateur avec les droits suffisant pour la base de données NagiosQL
Au minimum, cet utilisateur doi avoir les droits SELECT, INSERT, UPDATE, DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Mot de passe pour l'utilisateur mentionnée ci-dessus" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Après le nombre de secondes définies, la session sera fermée pour raison de sécurité" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Choissisez entre une authentification basée sur votre Serveur Web
exemple configuration Apache (Fichier de configuration ou htaccess) ou NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Combien de lignes par page doivent être affichées (ex : services ou hôtes)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "La sélection d'entrée multiples se fait en utilisant la nouvelle boite de dialogue ou en maintenant CTRL + clique gauche comme dans NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Activer ou désactiver l'avertissement si un champ obligatoire ne contient pas de données dans des objets avec des modèles" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Activer ou désactiver la recherche automatique des mises à jour" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Si nécessaire, définir le serveur proxy pour la connexion Internet" + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Identification de votre serveur Proxy (ex: proxy.domaine.com:3128)" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Identifiant pour vous connecter au proxy (optionnel)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Mot de passe pour vous connecter au proxy (optionnel)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Popup d'information" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Pas d'information disponible" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Ensemble de données effacé avec succès. Colonnes affectées :" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Voir les logs" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Effacer les logs depuis :" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Merci d'entrer, au minimum, une heure de démarrage et d'arrêt" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Voulez-vous réellement effacer toutes les logs dans la période de dates sélectionnée ?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "les 20 entrées précédentes" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "les 20 entrées suivantes" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Erreur lors de l'insertion des données dans la base de données :" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Les données ont correctement été insérées dans la base de données !" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Groupe d'accès pour élément de menu:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Définir les droits d'accès aux menus" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Pour qu'un utilisateur obtient accès, il doit être membre du groupe sélectionné ici." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Supervision" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Pour définir des hôtes et des services à superviser ainsi que des groupes d'hôtes et de services" + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Services " + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Groupes de services" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Modèles d'hôte" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Modèles de service" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Disponible" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Selectionné" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Fichier de configuration principal de Nagios" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Mot de passe modifié avec succès" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Mot de passe trop court ou mots de passes différents !" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "L'ancien mot de passe est faux" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Sauvegarder" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Les mot de passe ne sont pas identiques !" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Le nouveau mot de passe est trop court - utilisez 6 caractères minimum !" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Nouvelle dépendance de service insérée :" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Dépendance du service modifiée :" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Définir les dépendances de services (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Services dépendants " + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Nouvelle escalade de service inséré :" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Escalade des services modifiés :" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Définir les escalade de service (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Nouvelle information étendue de service insérée :" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Information étendue de service modifiée :" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Définir les informations étendues de service (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Nom d'hôte" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Service" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Nouveau groupe de service inséré :" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Groupe de services modifié :" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Définir les groupes de services (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Attention, pas de services définis" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Groupe de service" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Nouveau service inséré :" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Service modifié :" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Fichier de service effacé :" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Définir les services (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Attention, aucune hôte ou groupe d'hôtes défini !" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Attention, aucune commande de test n'a été définie !" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "Attention, aucun contacts ou groupes de contacts définis!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Nom de service" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Toutes les configurations" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Nouveau modèle de service inséré :" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Modèle de service modifié :" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Définir les modèles de service (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nom du modèle " + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Description du service " + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Module Curl non chargé, le Proxy sera désactivé!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "Une erreur s'est produite lors de l'écriture des paramètres dans la base de données: " + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Erreur dans la configuration de la bonne locale, merci de remonter cette erreur avec la sortie de la commande 'locale-a' à bugs@nagiosql.org" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Les paramètres ont changés" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Une erreur s'est produite pendant l'écriture du fichier settings.php, merci de vérifier les permissions !" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "n'est pas accessible en écriture, merci de vérifier les permissions:" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configuration des paramètres" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Change vos paramètres NagiosQL courants (Ex: Utilisateur de base de données, Langage)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Chemin" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Répertoire Temporaire" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protocole du serveur" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Encodage" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Base de données" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Serveur MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Port du serveur MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nom de la base de données" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Utilisateur de la base de données" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Mot de passe de la base de données" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Sécurité" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Durée avant déconnexion automatique" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Le type d'authentification" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Commun" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Lignes de données par page" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Méthode de sélection" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Modèle de message pour avertir" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Vérification en ligne de la version" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Serveur proxy" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Adresse du proxy" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Nom d'utilisateur du proxy (Optionnel)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Mot de passe du proxy (Optionnel)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Autres commandes" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Pour définir les dépendances d'hôtes et de services, les escalades d'hôtes et de services ainsi que les données complémentaires pour les hôtes et les services." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Dépendances d'hôte" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Escalades d'hôtes" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Ext. info des hôtes" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Dépendances de service" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Escalades de service" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Ext. info des services" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "Page de support NagiosSQL" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "Information sur le contact de support" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "Pour toute question, le forum de support online ou les informations de contacts visitez notre sie web:" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "Donnez pour supporter NagiosQL" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "Si vous aimez NagiosQL et qu'il simplifie votre travail quotidien, vous pouvez supporter le projet en faisant une donation. Cela nous aideras à garder NagiosQL actif et à couvrir no coûts. Merci pour votre donation!" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "Donnez pour NagiosQL sur sourceforge" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "Services de traduction" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "NagiosQL à été traduit dans différentes langues. Comme certains traducteurs ne sont plus disponibles dans les dernières version, il peut y avoir des mots ou des phrases non traduites. Si vous voulez nous aider à compléter les traductions, les corriger ou introduire de nouveaux langages, inscrivez-vous avec nous maintenant! Les traductions sont simples et faisables en ligne - nous utilisons un service de traduction open sur lequel vous pouvez vous enregistrer gratuitement à tout moment:" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "Service de traduction Transifex" + +#: admin/support.php:92 +msgid "Version check" +msgstr "Vérification de la version" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "La vérifiaction de la version en ligne n'est pas activée. Vous pouvez l'activer dans la page des paramètres." + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "La vérification de version en ligne se connecte sur la page NagiosQL pour vérifier sir votre version est à jour." + +#: admin/support.php:106 +msgid "Environment check" +msgstr "Vérification de l'environnement" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "echoué" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "ok" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "Version de PHP" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "Requis:" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "Module PHP:" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "Version de MySQL" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "Paramètres PHP ini:" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "Accès en Lecture/Ecriture:" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "Vérifications de la configuration du domaine" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "Les vérifications ci-dessous sont basées sur la configuration de votre domaine de données. Pour changer votre domaine de données, utilisez le menu déroulant dans le coin en haut à droite. Répétez ces vérifications pour tous les domaines de données que vous avez configurés. Pour changer de domaine de configuration, utilisez le menu de domaine de données et sélectionnez une valeur différente de domaine de configuration." + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "Configuration du nom de domaine" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "Type de connection" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "Vérification de la connexion" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "lecture seule" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Fichier process (PID) de Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "le fichier est manquant" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "Le démon Nagios n'est pas démarré" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "Non utilisé avec FTP" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "démon mort" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Fichier de commande Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Fichier binaire de Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "Non exécutable" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "Vérifiez les fichiers de configuration et le démon de configuration" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "Nom de la configuration" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "Utilisée dans le domaine de données" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "Inclus dans le démon de configuration" + +#: admin/support.php:549 +msgid "not used" +msgstr "non utilisé" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "définition cfg manquant" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "déifinition cfg manquant, mais actuellement non utilisé" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "mauvais chemin de base:" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "fichier cfg non lisible" + +#: admin/support.php:606 +msgid "Not used" +msgstr "Non utilisé" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "non utilisé - merci d'effacer!" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Haut" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Bas" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modifier" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Nouvelle période de temps insérée :" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Période de temps modifiée :" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Définir les périodes de temps" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Merci d'inséré une définition et une plage de temps" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Période de temps " + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Différents outils" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Fonctions utiles pour importer des données, la configuration principal, le contrôle du démon, etc." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Un nouvel utilisateur à été ajouté :" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Administration des utilisateurs" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Les mots de passe ne correspondent pas !" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Merci d'entrer le mot de passe" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Le mot de passe est trop court - il doit contenir 6 caractères minimum" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Authentification du serveur Web" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "L'enregistrement de la configuration à échoué - pas d'ensemble de données ou aucun ensemble de données activé n'a été trouvé" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Ecriture des configurations de l'hôte" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Aucun des éléments de configuration définie!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Ecriture des configuration du service" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "Aucun ensemble de données ou aucun ensemble de données activé n'a été trouvé - configuration vide écrite" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Impossible de trouver les binaires de Nagios ou droits d'exécution erronés !" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "L'exécution distante (FTP SITE EXEC) n'est pas supportée sur votre système." + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Exécution à distance de nagios vérifier commande a échoué (SSH à distance)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Nagios configuration binaire ou fichier non trouvé (SSH à distance)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Les démons de Nagios ont été redémarrés avec succès" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "La commande de redémarrage a été envoyée avec succès à Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Echec de redémarrage - Impossible de trouver les binaires de Nagios ou droits d'exécution erronés !" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Fichier de commande Nagios non trouvé ou pas de droits d'écriture !" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Redémarrage échoué - Le démon Nagios ne tourne pas" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Le démon Nagios ne tourne pas, impossible d'envoyer la commande de redémarrage !" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Redémarrage échoué - Restrictions FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Le redémarrage de Nagios n'est pas possible à partir d'une connexion FTP distante !" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Redémarrer échoué - Impossible de trouver le fichier de configuration de Nagios ou aucun droit d'exécuter (SSH à distance)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios redémarré avec succès (SSH à distance)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "La commande pour redémarrer a été envoyé avec succès à Nagios (SSH à distance)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Fichier de commande pour Nagios non trouvé (SSH à distance)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Vérification des fichiers de configuration écrits" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Vérifier les fichiers de configuration :" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Redémarrer Nagios :" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Ecrire les données de supervision" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Ecrire les données additionnelles" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Attention, il faut toujours vérifier la configuration des fichiers avant de redémarrer Nagios !" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Appliquer" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Vérification des fichiers de configuration écrits - Avertissements/Erreurs :" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Les fichiers de configuration écrits sont valides, Nagios peut être relancé !" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "vérification des paramètres de proxy" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Installée" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Information" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Vous avez déjà la dernière version installée" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Vous utilisez une version ancienne de NagiosQL. S'il vous plaît mettez vous à jour sur la dernière version stable" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "Vous utilisez une version de développement plus récente sans support officiel." + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domaine" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nom du serveur" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Méthode" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Répertoire avec une paire de clés SSH" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Répertoires de configuration" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Répertoire de base" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Répertoire des Hôtes" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Répertoire des Services" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Répertoire de sauvegarde" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Répertoire de sauvegarde des Hôtes" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Répertoire de sauvegarde des Services" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Répertoire de la base des images" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Utiliser le domaine commun" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Décoder les données UTF 8 dans les fichiers de configuration" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Serrures" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Clés d'accès" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Enregistré" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Fonction" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Eléments sélectionnés :" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Ajouter" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Vérification du formulaire" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Question de sécurité" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Oui" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Non" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Temps" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Utilisateur" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entrée" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "De" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "A" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Effacer les logs" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copier" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Confirmer le mot de passe " + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Ancien mot de passe " + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Nouveau mot de passe " + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Changer le mot de passe" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Page de menu " + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Rechercher" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Enregistrer" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Commande " + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Type de commande" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Exclure" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "inclure" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Définitions de temps" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Jour de la semaine" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Plage de temps" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Définition de temps" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Insérer" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modifier la selection" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Période de temps des hôtes " + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Période de temps des services " + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Options de l'hôte " + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Options des services " + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Commande d'hôte " + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Commande de service " + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Adresse EMail" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Numéro de pager" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Adresse supplémentaire" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Notification des hôtes activés " + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Notification des services activée " + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Peut soumettre des commandes" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Retenir les informations de statut" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Retenir les informations autres que celles des statuts" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Membres " + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Membres du groupe" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Paramètres communs" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Paramètres du service" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Ajouter cette configuration de l'hôte aux définitions de services existants" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Parents" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Commande de test" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Visualisation de la commande" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Modèles additionnels" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Paramètres des tests" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Etat initial" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Intervalle de ré-essai" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Nombre maximum de vérification " + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Intervalle de contrôle" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Contrôles actifs activés" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Contrôles passifs activés" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Période de contrôle " + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Seuil de rafraichissement" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Rafraichissement des vérifications" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Obsess over host" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Obsess over service" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Gestionnaire d'événements" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Gestionnaire d'événements activé" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Seuil de \"flap\" bas" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Seuil de \"flap\" haut" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Détection des flaps activée" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Options de détection des flaps" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Retenir les informations de status" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Retenir les information autre que celles des status" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Données des performances des process" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Configuration des notifications" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contacts" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Période de notification" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Options de notification" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Intervalle de notification " + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Délai de la première notification" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notification activée" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Options de \"Stalking\"" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Paramètres optionnels" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Image VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "URL des notes" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Image de statut" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Image de l'icône" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "URL d'action" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "Coordonnées 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "Coordonnées 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Texte alternatif de l'icône" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "on" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "off" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "passer" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Définitions libres de variables" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Nom de la variable" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Valeur de la variable" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Activer" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Désactiver" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Voulez-vous vraiment supprimer cette entrée de base de données:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Voulez-vous vraiment supprimer toutes les entrées sélectionnées ?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Marquer toutes les lignes" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Fichier" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Ecrire tous les fichiers de configuration" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Adresse " + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Nom affiché" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Utiliser cette configuration comme un modèle" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Nom générique" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Merci de vérifier au moins une option depuis :" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Nom du groupe d'hôtes " + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Membres du groupe d'hôtes" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Est volatile" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Contrôles parallèlisés" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Filtre " + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Répertoire d'importation" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Merci de donner un nom de variable ainsi que sa définition" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Alerte :" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Vous n'avez pas remplis tous les champs requis!

Si ces valeurs sont copiée depuis un modèle, vous pouvez tout de même sauvegarder - sinon vous obtiendrez une configuration invalide !" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Répertoire de base de Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Ecrire la configuration" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Vous n'avez pas remplis tous les arguments (ARGx) pour la commande sélectionnée !

Si ces arguments sont optionnels, vous pouvez tout de même sauvegarder - sinon vous obtiendrez une configuration invalide !" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Membres du groupe de service" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Nom du groupe de service " + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Groupes d'hôtes" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Hériter des parents" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Critère d'échec d'exécution" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Critère de notification des échecs" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Période de dépendance" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Période d'escalade" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Options d'escalade" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Première notification " + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Dernière notification " + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "servicegroupes dépendants" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Aide" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendrier" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Nom du groupe" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Utilisateurs" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Groupe d'accès" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Définitions d'utilisateur" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Nom d'utilisateur" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Les droits des utilisateurs" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Restrictions d'accès aux objets" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Activer l'administration du groupe" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Afficher les données par rapport" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Masquer les données par rapport" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "Langage utilisateur" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Domaine standard" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "Les services associés doivent être ajoutés aux fichiers. Ecrire uniquement la configuration du host n'est pas suffisance parce que la modification est stockée dans les fichiers services." + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Lundi" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Mardi" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Mercredi" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Jeudi" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Vendredi" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Samedi" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Dimanche" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Page principale" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Supervision" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Commandes" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Options" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Outils" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Dépendances de service" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Escalades de service" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Dépendance d'hôte" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Escalade d'hôte" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Hôte étendu" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Services étendus" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Import de Données" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Administration des Utilisateurs" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Administrateur du groupe" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Contrôle de Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logs" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Configuration de Nagios" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Paramètres" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Définitions" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "Configuration des CGI" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Accès au Menu" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domaines" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Editeur d'aide" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "Domaines de données" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "Configuration des cibles" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "Support" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Attention : le fichier de configuration est périmé !" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "Attention: aucune cible n'est définie!" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Impossible de sauvegarder et de supprimer l'ancien fichier de configuration (Vérifiez les permissions) !" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Impossible de sauvegarder l'ancien fichier de configuration parce que les autorisations sont mauvaises (FTP distant) !" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Impossible de sauvegarder l'ancien fichier de configuration parce que les autorisations sont mauvaises (SFTP distant) !" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "Impossible de supprimer le fichier (Mauvaises permissions)!" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "Impossible de supprimer le fichier (Le fichier n'existe pas)!" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Impossible de supprimer le fichier parce que les autorisations sont mauvaises (FTP distant) !" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Impossible de supprimer le fichier parce que les autorisations sont mauvaises (FTP distant) !" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Impossible de supprimer le fichier parce que les autorisations sont mauvaises (SFTP distant) !" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Impossible de supprimer le fichier car il n'existe pas (SFTP distant) !" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Impossible de récupérer le fichier de configuration (Echec de connexion FTP) !" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Impossible d'écrire le fichier de configuration (Echec de connexion FTP) !" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Impossible d'obtenir le fichier de configuration (Echec de connexion SSH) !" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Impossible d'obtenir le fichier de configuration (fichier distant n'existe pas) !" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Impossible d'écrire le fichier de configuration (Echec de connexion SSH) !" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Il n'est pas possible d'écrire des fichiers de configuration directement à partir du domaine commun!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "L'enregistrement de la configurationà échoué - pas d'ensemble de données, aucun ensemble de données activé n'a été trouvé ou vous n'avez pas la permission d'écriture" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Echec d'écriture de la configuration (Echec de connexion FTP) !" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Impossible d'ouvrir ou d'écraser le fichier de configuration (Echec de connexion FTP) !" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Impossible d'ouvrir / écraser le fichier de configuration (à distance SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "La connexion au réseau distant a échouée (connexion SSH2):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "La clé SSH publique n'existe pas ou n'est pas lisible" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "La clé SSH privée n'existe pas ou n'est pas lisible" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "La connexion au réseau distant a échouée (connexion FTP):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Impossible d'ouvrir le répertoire" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "périmé" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "pas de cible" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "manqué" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "à jour" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Dernière mise à jour de la base de données :" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "Dernier changement du fichier de configuration des cibles" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Suppression échouée à cause d'une erreur de base de données :" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Aucune donnée effacée. Il est probable que l'ensemble de données n'existe pas ou est protégé de l'effacement." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Suppression de l'id de l'ensemble de données :" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- de la table :" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- avec lignes affectées :" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Supprimer les données de la table :" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "Aucune donnée n'a été effacée. L'ensemble de données n'existe pas, il est protégé de la suppression, vous n'avez pas la permission d'écrire ou il existe des relations avec d'autres configuration qui ne peuvent pas être effacée. Utilisez la fonction \"info\" pour des informations détaillées sur les relations!" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "Aucune donnée n'a été effacée. L'ensemble de données n'existe pas, il est protégé de la suppression, vous n'avez pas la permission d'écrire." + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Echec de la copie de l'ensemble de données - table [Nouveau nom] :" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Ensemble de données copié - table [Nouveau nom] :" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "Aucun ensemble de données copié. Peut-être que l'ensemble de données n'existe pas ou que vous n'avez pas les permissions d'écrire." + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "Aucun dataset activé. Peut-être que l'ensemble de données n'existe pas, qu'aucun ensemble de données n'a été sélectionné ou que vous n'avez pas les permissions d'écrire." + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Ensemble de données activé avec succès. Nombre de lignes affectées:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Activer les données qui se trouve dans la table:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Aucun ensemble de données activé. Peut-être que l'ensemble de données n'existe pas ou que vous n'avez pas les permissions d'écrire." + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "Aucun ensemble de données désactivé. Peut-être que l'ensemble de données n'existe pas, qu'il est protégé de la désactivation, qu'aucun ensemble de données n'a été sélectionné ou que vous n'avez pas les permissions d'écrire. Utilisez la fonction \"info\" pour des informations détaillées sur les relations!" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Ensemble de données désactivé avec succès. Nombre de lignes affectées:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Aucun ensemble de données désactivé. Peut-être que l'ensemble de données n'existe pas ou que vous n'avez pas les permissions d'écrire." + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "Information de relation pour " + +#: functions/data_class.php:891 +msgid " of table " +msgstr " de la table " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relation avec " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", entrée " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "suppression possible" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "suppression impossible" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "Impossible de récupérer des données de configuration:" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Impossible de recevoir le fichier de configuration (connexion FTP)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Impossible de recevoir le fichier de configuration (connexion SSH)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "Aucune configurationvalide n'a été trouvée:" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "Le fichier d'import n'existe pas ou n'est pas lisible:" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Table d'importation de définition" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "n'est pas disponible" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "dans" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "existent et n'ont pas été écrasés" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "n'ont pas été écrits" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "ne peut être inséré" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "inséré avec succès" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Erreur: Nombre d'arguments incorrects - impossible d'importer les membres du groupe de service (service group members)" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Il manque les paramètres de connexion au serveur !" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "La connexion au serveur de base de données à échoué à cause de :" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Il manque les paramètres de connexion à la base de données !" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Cacher le menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Afficher le menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Page" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Accès sans restriction" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Erreur lors de la connexion à la base de données :" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Erreur dans la configuration de la locale, merci de remonter cette erreur avec la sortie de la commande 'locale -a' à bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Connexion au serveur web réussie" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Identification réussie" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Échec d'identification !" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Timeout de la session atteint - Secondes :" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Accès au site restreint :" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Utilisateur non trouvé dans la base" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Administrateur" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Connecté :" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Déconnecter" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Attention - le fichier de modèle n'est pas trouvé ou n'est pas lisible, s'il vous plaît vérifier vos permissions sur les fichiers! - Fichier:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "Certains fichiers de configuration n'ont pas été écrits. Ensemble de données non activé, non trouvé ou vous n'avez pas les permissions d'écrire!" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "Les fichiers de configuration ont été écrits avec succès!" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "L'Administrateur ne peut être effacé" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost ne peut pas être supprimé" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Aucune autorisation pour ouvrir la configuration!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Anglais" + +#: functions/translator.php:60 +msgid "German" +msgstr "Allemand" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chinois (Simplifié)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italien" + +#: functions/translator.php:72 +msgid "French" +msgstr "Français" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russe" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Espagnol" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugais (brésilien)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "hollandais" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Danois" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Documentation en ligne" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "Erreur de connection à la base de données. La mise à niveau n'est pas disponible!" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "La tables des paramètres n'est pas disponible ou erronnée. La mise à jour n'est pas disponible!" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "L'installation ne peut pas continuer, merci de vérifier que l'extension mysql est chargée!" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "L'installation ne peut pas continuer, postgres n'est pas disponible dans la version beta!" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "L'installation ne peut pas continuer, merci de vérifier que l'extension pgsql est chargée!" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "Le type de base de données dans les paramètres n'est pas correct (config/settings.php). La mise à jour n'est pas disponible!" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "Les valeurs de base de données dans les paramètres n'est pas correct (config/settings.php). La mise à jour n'est pas disponible!" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "Le fichier de paramètre n'est pas trouvable ou lisible (config/settings.php). La mise à jour n'est pas disponible!" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "Le fichier des valeurs par défaut n'est pas disponible ou pas lisible (install/functions/initial_settings.php). L'installation est possible, mais sans les données prédéfinies!" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Bienvenue dans l'assistant d'installation de NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Cet assistant vous aidera à installer et configurer NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Pour toute question, merci de visiter" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "D'abord nous allons vérifier votre environnement local et regarder si tout necessaire pour NagiosQL est disponible." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "Les exigences de base sont les suivants:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 ou supérieur, incluant:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "Module PHP:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(optionnel)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "Extension PECL:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "options du php.ini" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads on (pour les fonctionnalités de téléchargement)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start doit être off" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Un serveur de base de données MySQL" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "Nagios 2.x/3.x" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "DEMARRER L'INSTALLATION" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "DEMARRER LA MISE A JOUR" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Prérequis" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Finir" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "vérification des prérequis" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Vérification de la clientèle" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Vérification de la version PHP" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Vérification des extensions PHP" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Vérification des interfaces de bases de données disponible" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Vérification des paramètres dans php.ini/.htaccess" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Vérification des permissions systèmes" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "Les modules suivants / extensions sont obligatoires pour exécuter NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "Les prochaines extensions sont optionnelles mais recommandées" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Vérifier quelles extensions supportées sont installées. Au moins l'une d'elle est nécessaire." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Les paramètres suivants sont obligatoire pour exécuter NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "ACTIVE" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "DESACTIVE" + +#: install/step1.php:113 +msgid "Version" +msgstr "Version" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "détecté" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "ou plus est nécessaire" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Peut être chargé. S'il vous plaît ajouter dans le fichier php.ini." + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NON DISPONIBLE" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "Nouvelle installation seulement - les mises à jour sont seulement supportées en utilisant la même interface de bases de données!" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "ne peut pas être vide et doit être réglée" + +#: install/step1.php:184 +msgid "should be" +msgstr "devrait être" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Test de lecture du fichier de paramètres (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Le fichier de paramètres n'existe pas (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "sera créé" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Test d'écriture du fichiers de paramètres (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Test d'écriture dans le répertoire de configuration (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Test de lecture d'un fichier de classe (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Test de lecture du fichier de la page d'accueil (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Test de lecture d'un fichier de modèle (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Test de lecture d'un fichier de modèle d'administration (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Test de lecture d'un modèle de fichier (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Test de lecture d'un fichier image (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Il y a des erreurs - merci de vérifier vos paramètres systèmes et de lire les prérequis de NagiosQL !" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Lisez le fichier INSTALLATION de NagiosQL pour trouver comment les corriger." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Après ça, rafraichir cette page pour recommencer" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Rafraichir" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Les tests de l'environnement sont passés avec succès" + +#: install/step1.php:264 +msgid "Next" +msgstr "Suivant" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "Les mots de passe NagiosQL ne sont pas égaux!" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Programme d'installation" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Merci de remplir le formulaire ci-dessous. Les champs obligatoires sont marqués avec des *" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Base de données de configuration" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "Type de base de donnée" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "Serveur de base de données" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "Nom de la machine locale ou adresse IP" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "Port du serveur de base de données" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Utilisateur de la BDD NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Mot de passe de la BDD NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "Utilisateur administratif de la base de données" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "Mot de passe administratif de la base de données" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Supprimer la base de données si elle existe déjà ?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "Configuration d'utilisateur NagiosQL" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Utilisateur NagiosQL initial" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Mot de passe NagiosQL initial" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Merci de répéter le mot de passe" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios configuration" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importer les fichiers d'exemple Nagios ?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "Valeur du chemin de NagiosQL" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "Créer le chemin de config de NagiosQL ?" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "Chemin de configuration de NagiosQL" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "Chemin de configuration de Nagios" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "Les deux valeurs de chemin ont été stockées dans vos paramètres de configuration cible pour localhost. " + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "Si vous sélectionnez l'option de création des chemins, vérifiez que le chemin de base de NagiosQL existe et que le démon de serveur web y à accès en écriture. L'installeur créera alors les sous-répertoires requis dans le filesystème de votre localhost (hosts, services, backup etc.)" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "S'il vous plait sauvegarder votre base de données avant de procéder!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Finition de l'installation" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Déployer les réglages NagiosQL" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "Connection au serveur de base de données (Utilisateur avec privilèges)" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "Version du serveur de base de données" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "Support du serveur de base de données" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Supprimer base de données existante NagiosQL" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Créer une nouvelle base de données" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "Création de l'utilisateur de base de données NagiosQL" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "Installation des tables de la base de données NagiosQL" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Définissez l'administrateur NagiosQL initial" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "Connection au serveur de bases de données (Utilisateur NagiosQL)" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Ecriture des paramètres globaux dans la base de données" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Ecriture de la configuration de la base de données dans settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importer les échantillons de données Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "Créer et/ou stocker les paramètres de chemin de NagiosQL" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Mise à jour de base de données NagiosQL existante" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "La version NagiosQL installée" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Mise à jour depuis la version" + +#: install/step3.php:86 +msgid "to" +msgstr "vers" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Conversion de base de données vers le jeu de caractères utf8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Conversion des tables de base de données vers le jeu de caractères utf8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Conversion de champs de base de données vers le jeu de caractères utf8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Créer une nouvelle base de données pour NagiosQL" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "La base de données existe déjà et la case de suppression n'à pas été sélectionnée, merci de corriger ou de gérer manuellement" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "passé" + +#: install/step3.php:146 +msgid "unknown" +msgstr "Inconnu" + +#: install/step3.php:211 +msgid "Back" +msgstr "Retour" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Merci d'effacer le repertoire d'installation pour continuer !" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "Typde base de données non définit!" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "supporté" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "non supporté" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "Votre installation NagiosQL est à jour - Aucune action supplémentaire n'est nécessaire!" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "La mise à jour vers NagiosSQL 3.2 et supérieure est uniquement supportée depuis NagiosQL 3.0.0 et supérieure!" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "Erreur pendant la sélection de la table de paramètres." + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "fait" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "Les droits ont été uniquement été ajoutés à l'utilisateur existant " + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "Le fichier SQL est vide ou non lisible" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "Pas de fichiers SQL de mise à jour disponible" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "L'insertion des données initiales dans la base de données des paramètres à échoué:" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "Impossible d'ouvrir/écrire dans config/setting.php" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "L'insertion des données de chemin dans la base de données à échouée:" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "Vérifiez les permission des chemins créés!" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "Le chemin de la configuration NagiosQL n'est pas accessible en écriture - seules les données de la base ont été mises à jour" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "Erreur de base de données lors de la conversion en utf-8:" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/fr_FR/LC_MESSAGES/index.html b/config/locale/fr_FR/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/fr_FR/index.html b/config/locale/fr_FR/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/it_IT/LC_MESSAGES/index.html b/config/locale/it_IT/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/it_IT/LC_MESSAGES/it_IT.mo b/config/locale/it_IT/LC_MESSAGES/it_IT.mo new file mode 100644 index 0000000000000000000000000000000000000000..3a93b8d6b27bacd8e98f756726bd5b6625ba773b GIT binary patch literal 56815 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 literal 0 HcmV?d00001 diff --git a/config/locale/it_IT/LC_MESSAGES/it_IT.po b/config/locale/it_IT/LC_MESSAGES/it_IT.po new file mode 100644 index 0000000..f6bf2f9 --- /dev/null +++ b/config/locale/it_IT/LC_MESSAGES/it_IT.po @@ -0,0 +1,3699 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:52+0100\n" +"PO-Revision-Date: 2012-03-09 22:52+0100\n" +"Last-Translator: \n" +"Language-Team: Italian (Italy) (http://www.transifex.net/projects/p/nagiosql/language/it_IT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it_IT\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Amministrazione di NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Benvenuto in" + +#: index.php:46 +msgid "Welcome" +msgstr "Benvenuto" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Inserire il nome utente e la password per accedere a NagiosQL.
Se avete dimenticato una delle due contattare l'amministratore." + +#: index.php:48 +msgid "Username" +msgstr "Nome utente" + +#: index.php:49 +msgid "Password" +msgstr "Password" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Amministrazione" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funzioni per l'amministrazione di NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Allarmistica" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Definizione dati del contatto, modelli del contatto, gruppi e periodi di tempo." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Dati statistici" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Gruppo" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Attivo" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inattivo" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Dati del contatto" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Gruppi dei contatti" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Periodi di tempo" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Modelli del contatto" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "File di configurazione scritto con successo!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configurazione scritta con successo:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Impossibile aprire/sovrascrivere il file di configurazione (controllare i permessi)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Scrittura della configurazione fallita:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Impossibile aprire/sovrascrivere il file di configurazione (controllare i permessi sul sistema remoto)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Scrittura della configurazione fallita (remoto):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "File di configurazione CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Impossibile aprire il file di dati (controllare i permessi)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Impossibile aprire il file temporaneo" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Lettura della configurazione fallita (remoto):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Inserito nuovo comando:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Comando modificato:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Inserimento nel database fallito! Non sono stati inseriti tutti i dati necessari!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Definizione comandi (commands.cfg)" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Impossibile salvare!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "non classificato" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "Comando di controllo (check)" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "Comando speciale (misc)" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "L'oggetto non può essere disattivato poichè è in uso da un'altra configurazione" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Nome comando" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Riga di comando" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Errore mentre si selezionavano dati dal database:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Comandi check" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Definizione di comandi check e speciali, di notifica e altri vari." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "non è scrivibile" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "File di configurazione di Nagios" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "Modulo SSH non caricato!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "Modulo FTP non caricato!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Inserito nuovo dominio:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Dominio modificato:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Attenzione, è avvenuto un errore, controllare!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Si prega di riempire tutti i campi identificati da un *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Il campo seguente contiene caratteri non consentiti:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Configuration target" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Descrizione" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Inserito nuovo gruppo di contatti:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Gruppo di contatti modificato:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Definizione gruppi di contatti (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Attenzione, nessun contatto definito!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Gruppo di contatti" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Inserito nuovo contatto:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contatto modificato:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Definizione contatti (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Attenzione, non è stato definito alcun periodo di tempo!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Attenzione, nessun comando definito!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nome contatto" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Inserito nuovo modello di contatto:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Modello di contatto modificato:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Definizione modelli di contatti (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Abilita" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Disabilita" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "File eliminato" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "cancellato con successo" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Elimina files di backup" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filtro - stringa" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Cerca" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Elimina" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Elimina filtro" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "File di backup" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "richiesto" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Cancella" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Tenere premuto CTRL
per selezionare più voci" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Cancella file di configurazione" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "Download" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Aggiunto nuovo gruppo:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Utente modificato:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Amministrazione Gruppo" + +#: admin/group.php:114 +msgid "Read" +msgstr "Leggi" + +#: admin/group.php:115 +msgid "Write" +msgstr "Scrivi" + +#: admin/group.php:116 +msgid "Link" +msgstr "Link" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Nome del Gruppo" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Nessun dato" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Editare i messaggio di aiuto" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Chiave principale" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Sottochiave" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Lingua" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Versione Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Carica testo di default" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Inserita nuova dipendenza dell' host:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Dipendenza dell' host modificata:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definizione di dipendenza dell' host (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Attenzione, nessun host e gruppo di host definito!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Nome configurazione" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Hosts dipendenti" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Gruppi di host dipendenti" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Inserita nuova host escalation:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Host escalation modificata:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Definizione host escalation (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Attenzione, nessun contatto o gruppo di contatti definito!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Host" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Gruppi di host" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Inserita nuova informazione aggiuntiva sull'host:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Informazione aggiuntiva sull'host modificata:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definizione informazione aggiuntiva sull'host (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Attenzione, nessun host definito!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nome host" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Note" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Inserito nuovo gruppo di host:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Gruppo host modificato:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Definizione Gruppi di host (contactgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Gruppo di host" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Inserito nuovo host:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host modificato:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "I corrispondenti files di configurazione non piu' in uso sono stati eliminati con successo!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "File dell'host eliminato:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "File comuni non possono essere rimossi dal sistema selezionato - si prega di verificare manualmente" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Errore durante l'eliminazione del vecchio file di configurazione - si prega di controllare!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Definizione host (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Attenzione, non e' stato definito alcun gruppo di contatti!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Inserito nuovo modello di host:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Modello di host modificato:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Definizione modello di host (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Nome modello di host" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Errore caricamento file:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "File importati - File [Sovrascrivi flag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Importazione della configurazione" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Definizione modello" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Importa file" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Importa file locale" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Sovrascrivi database" + +#: admin/import.php:94 +msgid "Import" +msgstr "Importa" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Tenere premuto CTRL per
selezionare piu' di uno" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Questo e' il percorso relativo dell'installazione di NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Questo e' il percorso assoluto dell'installazione di NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Se si necessita di una connessione sicura, selezionate HTTPS invece di HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Si prega di scegliere una directory temporanea con permessi di scrittura. Di default, verrà utilizzata la directory temporanea impostata dal vostro SO" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Scegliere la lingua" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Lasciare la codifica a UTF-8. Ogni cambio a vostro rischio" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Indirizzo IP o nome host del database server
e.g. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Porta del Server MySQL, la default e' 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Nome del database di NagiosQL
es db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Utente con sufficienti privilegi per il databse di NagiosQL
Deve avere almeno i seguenti permessi SELECT, INSERT, UPDATE, DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Password dell'utente appena inserito" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Trascorso il numero definito di secondi, la sessione verra' terminata per ragioni di sicurezza" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Scegliere tra autenticazione basata su web
(p.e. file di configurazione di Apache o htaccess) o NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Numero di voci per pagina da visualizzare (p.e. per Hosts o per Servizi)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Selezionare più oggetti utilizzando la finestra o tenendo premuto CTRL e cliccando col tasto sinistro del mouse come in NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Attivare o disattivare l'avviso se un campo obbligatorio non contiene informazioni in oggetti con i modelli" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Attivare o disattivare il controllo automatico della versione online." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Se si ha bisogno di un server proxy per la connessione a Internet (Port 80), si prega di definirne uno." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Indirizzo del server proxy ad esempio proxy.yourdomain.com: 3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Utente per collegarsi tramite il proxy (opzionale)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Password per collegarsi tramite il proxy (opzionale)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Popup Informativo" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Nessuna informazione disponibile" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Record eliminato con successo. Righe interessate:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Vedi logbook" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Elimina le voci del logbook tra:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Si prega di inserire almeno un orario di avvio o di stop" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Vuoi davvero eliminare tutte le voci di log comprese tra le date selezionate?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "precedenti 20 voci" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "successive 20 voci" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Errore durante l'inserimento dei dati nel database:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "I dati sono stati inseriti correttamente nel database!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Diritti di gruppo per l'accesso agli oggetti del menu:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Definizione diritti di accesso al menu" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Per consentire l'accesso ad un utente occore che sia membro del gruppo qui selezionato." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitoraggio" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Definizione di supervisione host e comandi, e di gruppi di host e servizi." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Servizi" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Gruppi di servizi" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Modelli di host" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Modelli di servizi" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Disponibile" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Selezionato" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "File di configurazione generale di Nagios" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Password modificata con successo" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Password troppo breve o password differenti!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "La vecchia password e' errata" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Salva" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Le nuove password non sono uguali!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "La nuova password e' troppo breve - usare almeno 6 caratteri!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Inserita nuova dipendenza dal servizio:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Dipendenza dal servizio modificata:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definizione dipendenze da servizi (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Servizio dipendente" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Inserita nuova escalation di servizio:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Escalation di servizio modificata:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definizione escalation di servizi (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Inserita nuova informazione aggiuntiva sul servizio:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Informazione aggiuntiva sul servizio modificata:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Definizione informazione aggiuntiva sul servizio (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Nome host" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Servizio" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Inserito nuovo gruppo di servizi:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Gruppo di servizi modificato:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definizione gruppi di servizi (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Attenzione, nessun servizio definito!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Gruppo di servizi" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Inserito nuovo servizio:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Servizio modificato:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "File servizio eliminato:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Definizione servizio (servicetemplates.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Attenzione nessun host o gruppo di host definito!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Attenzione, nessun comando check definito!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Nome servizio" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Tutte le configurazioni" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Inserito nuovo modello di servizio:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Modello di servizio modificato:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Definizione modelli di servizi (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nome modello" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Descrizione servizio" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Modulo Curl non caricato, il Proxy verrà disattivato!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Errore nel settaggio della localizzazione, riportare questo errore con l'output del comando 'locale -a' a bugs@nagiosql.org" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Le impostazioni sono state modificate" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Errore durante la scrittura di settings.php, si prega di controllare i permessi!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configura impostazioni" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Cambia le attuali impostazioni di NagiosQL (p.e. utente database, lingua)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Percorso" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Directory temporanea" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protocollo del server" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Codifica" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Il database" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Server MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Porta Server MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nome database" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Utente database" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Password database" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Sicurezza" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Tempo di auto logoff della sessione" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Tipo di autenticazione" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Generale" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Righe per pagina" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Metodo di selezione" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Messaggio del modello di avvertimento " + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Proxyserver" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Indirizzo del Proxy" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Utente del Proxy (Opzionale)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Password del Proxy (opzionale)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Comandi speciali" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Definizione di host e dipendenze di servizi, escalation di host e servizi e dati aggiuntivi di host e servizi." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Dipendenze dell'host" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Host escalations" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Info estese dell'host" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "dipendenze di servizi" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Escalation servizi" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Info estese sul servizio" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "fallito" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "File processi di Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "File di comandi Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "File binario Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Su" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Giu'" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modifica" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Inserito nuovo periodo di tempo:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Periodo di tempo modificato:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Definizione periodi di tempo (timeperiods.cfg)" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Si prega di inserire una definizione ed un intervallo di tempo" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Periodo di tempo" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Strumenti vari" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Utilita' di importazione dati, configurazione principale, controllo demone, etc." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Aggiunto nuovo utente:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Amministrazione utente" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Le password non sono uguali!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Si prega di inserire la password" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "La password e' troppo breve - usare almeno 6 caratteri!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Autenticazione server web" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Scrittura configurazione host" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Nessun elemento di configurazione definito!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Scrittura configurazione servizi" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Impossibile trovare i file binary di Nagios oppure non si dispone dei diritti necessari per l'esecuzione!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "L'esecuzione remota (FTP SITE EXEC) non è supportata sul tuo sistema!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Esecuzione remota del comando di verifica nagios fallito (SSH remoto)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Binario Nagios o file di configurazione non trovato (SSH remoto)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Demone di Nagios restartato con successo" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Comando riavvio inviato con successo a Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Riavvio fallito - Impossibile trovare il command file oppure non si dispone dei diritti necessari per l'esecuzione" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "File di comando Nagios non trovato o nessun privilegio di scrittura!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Riavvio fallito - il demone Nagios non era attivo" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Il demone Nagios non e' attivo, impossibile inviare il comando di riavvio!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Riavvio fallito - restrizioni FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Impossibile riavviare Nagios tramite connessione remota FTP!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Riavvio fallito - Impossibile trovare il file di comando di Nagios oppure non si dispone dei diritti necessari per l'esecuzione (SSH remoto)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Demone di Nagios ripartito con successo (SSH remoto)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Comando riavvio inviato con successo a Nagios (SSH remoto)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "File di comando Nagios non trovato (SSH remoto)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Verificare i files di configurazione appena scritti" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Verificare i files di configurazione:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Riavvia Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Scrittura dati di monitoraggio" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Scrittura dati aggiuntivi" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Attenzione, controllare sempre i files di configurazione prima di riavviare Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Esegui" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Configurazione di Nagios controllata - Warnings/Errori:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "I files di configurazione di Nagios sono corretti, si puo' riavviare Nagios!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Installato" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Informazione" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Avete già l'ultima versione installata" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Stai usando una vecchia versione NagiosQL. Si prega di aggiornare all'ultima versione stabile" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Dominio" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nome server" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Metodo" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Directory con la coppia di chiavi SSH" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Directory di configurazione" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Directory base" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Directory host" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Directory servizi" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Directory backup" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Directory backup host" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Directory backup servizio" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Directory base delle immagini" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Usa dominio comune" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Decodifica le informazioni UTF8 nei file di configurazione" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Fessure per chiavi di accesso" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Chiavi di accesso" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Funzione" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Selezionato" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Aggiungi" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Formcheck" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Domanda di sicurezza" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Si" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "No" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Ora" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Utente" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "Indirizzo IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entry" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Da" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "A" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Elimina log" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copia" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Conferma la password" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Vecchia password" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Nuova password" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Cambia password" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Pagina menu" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Parola chiave" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Scrivi file di configurazione" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Comando" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Tipo di comando" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Escludi" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Includi" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Definizioni temporali" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Giorno della settimana" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Intervallo temporale" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Definizione di tempo" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Inserisci" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modifica selezione" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Periodo per host" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Periodo per servizi" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Opzioni host" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Opzioni servizio" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Comando host" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Comando servizio" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Indirizzo e-mail" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Numero pager" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Indirizzo alternativo" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Abilita notifica host" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Abilita notifica servizio" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Puo' inviare comandi" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Conserva le informazioni di status" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Conserva informazioni di altro tipo" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Membri" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Membri del gruppo" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Impostazioni generali" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Impostazioni del servizio" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Aggiungi questa configurazione dell'host a definizioni di servizi esistenti" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Host a monte" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Comandi check" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Comando di veduta" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Modelli aggiuntivi" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Impostazioni del check" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Stato iniziale" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Intervallo di retry" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Numero max tentativi" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Intervallo check" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Check attivi abilitati" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Check passivi abilitati" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Periodo di check" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Limite di Freschezza (Freshness)" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Freschezza del check" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Concentrazione sull'host" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Concentrazione sul servizio" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Gestore degli eventi" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Gestore degli eventi abilitato" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Soglia inferiore" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Soglia superiore" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Rilevamento di costanza abilitato" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Opzioni rilevatore di costanza" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Mantiene staus info" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Mantiene altre info" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Dati su performance dei processi" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Impostazioni di allarme" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contatti" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Periodo di notifica" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Opzioni di notifica" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Intervallo di notifica" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Ritardo prima notifica" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notifica abilitata" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Opzioni di monitoraggio" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Ulteriori impostazioni" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Immagine VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "URL di note" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Immagine di status" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Immagine icona" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "URL di azione" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "Coordinate 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "Coordinate 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Immagine icona testo ALT" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "on" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "off" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "salta" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Definizione libera di variabili" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Nome variabile" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Valore variabile" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Attivato" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Disattivare" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Vuoi davvero eliminare questa voce dal database:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Vuoi davvero eliminare tutte le voci selezionate?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Evidenzia tutti gli oggetti mostrati" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "File" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Scrivi tutti i file di configurazione" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Indirizzo" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Nome visualizzato" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Usa questa configurazione come modello" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Nome generico" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Selezionare almeno una opzione tra:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Nome gruppo host" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Membri del gruppo host" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "E' discontinuo" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Controlli paralleli" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Filtro nome configurazione" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Directory di importazione" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Si prega di inserire un nome per la variabile e una definizione" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Attenzione:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Non sono stati riempiti alcuni campi obbligatori!

Se questi valori vengono impostati da un modello, e' possibile comunque salvare - altrimenti la configurazione risultera' non corretta!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Directory base di Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Scrivi configurazione" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Non sono stati riempiti alcuni campi obbligatori (ARGx)

Se questi argomenti sono opzionali, e' possibile comunque salvare - altrimenti la configurazione risultera' non corretta!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Membri del gruppo di servizi" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Nome del gruppo di servizi" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Gruppi host" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Dipendenza" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Criteri di errore d'esecuzione" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Notifica errore d'esecuzione" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Periodo di dipendenza" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Periodo di escalation" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Opzioni di escalation" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Prima notifica" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Ultima notifica" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Aiuto" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendario" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Nome Gruppo" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Utenti" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Gruppo Accesso" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Definizioni utente" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Nome utente" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Permessi utente" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Restrizioni all'accesso dell'oggetto" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Abilita l'amministrazione di gruppo" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Mostra relazione tra i dati" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Nascondi relazione tra i dati" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Lunedi" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Martedi" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "mercoledi" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Giovedi" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Venerdì" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Sabato" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Domenica" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Pagina principale" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Supervisione" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Comandi" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Specialita'" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Strumenti" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "dipendenze del servizio" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Escalation del servizio" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Dipendenza host" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Escalation host" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Extended Host" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Servizio esteso" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Importazione dati" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Amministrazione utente" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Amministrazione Gruppo" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Controllo Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logbook" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Configurazione Nagios" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Parametri" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definizioni" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "Configurazione CGI" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Accesso menu" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domini" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Help Editor" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Attenzione: il file di configurazione non e' aggiornato!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Impossibile salvare ed eliminare il vecchio file di configurazione (controllare i permessi)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Impossibile salvare il vecchio file di configurazione perche' i permessi non sono corretti (FTP remoto)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Impossibile salvare il vecchio file di configurazione perche' i permessi non sono corretti (SFTP remoto)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Impossibile cencallare il file perche' i permessi non sono corretti (FTP remoto)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Impossibile cencallare il file perche' non esiste (FTP remoto)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Impossibile cencallare il file perche' i permessi non sono corretti (SFTP remoto)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Impossibile cencallare il file perche' non esiste (SFTP remoto)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Impossibile recuperare il file di configurazione (connessione FTP fallita)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Impossibile scrivere il file di configurazione (connessione FTP fallita)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Impossibile recuperare il file di configurazione (connessione SSH fallita)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Impossibile recuperare il file di configurazione (il file remoto non esiste)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Impossibile scrivere il file di configurazione (connessione SSH fallita)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Non è possibile scrivere i file di configurazione direttamente dal dominio comune!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Scrittura della configurazione fallita (connessione FTP fallita):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Impossibile aprire/sovrascrivere il file di configurazione (connessione FTP fallita)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Non posso aprire/sovrascrivere il file di configurazione (SFTP remoto)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "La connessione al sistema remoto non è riuscita (connessione SSH2 fallita):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "La chiave pubblica SSH non esiste o non è leggibile" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "la chiave privata SSH non esiste o non è leggibile" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Connessione al sistema remoto fallita (connessione FTP):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Impossibile aprire la directory" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "non aggiornato" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "saltato" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "aggiornato" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Ultimo aggiornamento del database:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Eliminazione fallita a causa di un problema nel database:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Nessun dato eliminato. Probabilmente il record non esiste o e' protetto dall'eliminazione." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Eliminare record con id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- dalla tabella:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- con righe interessate:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Cancella dati dalla tabella:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Copia dei record fallita - Tabella [Nuovo nome]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Dati copiati nella tabella - Tabella [Nuovo nome]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Dataset attivato con successo. Righe interessate:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Attivare dataset dalla tabella:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Dataset disattivato con successo. Righe interessate:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " dalla tabella " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "collegato a " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", entry " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "eliminazione possibile" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "eliminazione non possibile" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Impossibile ricevere il file di configurazione (connessione FTP)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Non posso ricevere il file di configurazione (connessione SSH)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Definizione della tabella per l'importazione" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "non e' disponibile!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "entro" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "esiste e non e' stato sovrascritto" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "non e' stato scritto" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "impossibile inserirli:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "inseriti con successo" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Errore: numero di argomenti non corretto - impossibile importare membri del gruppo servizi" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Mancano i parametri per la connessione al server!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "La connessione al database è fallita. La causa è:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Mancano i parametri per la connessione al database!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Nascondi menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Mostra Menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Pagina" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Accesso illimitato" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Errore durante la connessione al database:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Errore nel settaggio della localizzazione, riportare questo errore con l'output del comando 'locale -a' a bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Login al webserver riuscito" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Accesso eseguito" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Accesso fallito!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Raggiunto il timeout della sessione - Secondi:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Accesso riservato al sito:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Utente non presente in database" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Amministratore" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Accesso effettuato:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Logout" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Attenzione - file di modello non trovato o non leggibile, si prega di controllare le autorizzazioni file! - File:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "L'utente admin non puo' essere eliminato" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost non può essere eliminato" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Non ci sono i permessi per aprire la configurazione!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Inglese" + +#: functions/translator.php:60 +msgid "German" +msgstr "Tedesco" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Cinese (semplificato)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiano" + +#: functions/translator.php:72 +msgid "French" +msgstr "Francese" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russo" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Spagnolo" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portoghese (Brasiliano)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Olandese" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Danese" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Documentazione online" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Benvenuti nella procedura guidata di installazione di NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Questa procedura guidata ti aiutera' ad installare e configurare NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Per domande, visita" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Prima di tutto controllare il proprio ambiente locale e scoprire se tutto ciò che serve a NagiosQL è disponibile." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "I requisiti base sono:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 o maggiore includendo:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "Moduli PHP:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(opzionale)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "Estensioni PECL:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "opzioni php.ini" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads on (per le caratteristiche di upload)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start deve essere a off" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Un Database server MySQL" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "Inizia Installazione" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "Inizia Aggiornamento" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Requisiti" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Fine" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Verifica dei requisiti" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Verifica del client" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Verifica Versione PHP" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Controllo delle estensioni PHP" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Verifica le interfacce di database disponibili" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Verifica parametri in php.ini/.htaccess" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Controllare permessi di sistema" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "I seguenti moduli/estensioni sono richiesti per eseguire NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "Il prossimo paio di estensioni sono opzionali , ma consigliate" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Verificare quali tra le estensioni supportate sono installate. Almeno una di esse è richiesta." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Le seguenti impostazioni sono richieste per eseguire NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "Abilitato" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "Non Abilitato" + +#: install/step1.php:113 +msgid "Version" +msgstr "Versione" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "rilevato" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "o maggiore è richiesto" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Potrebbe essere caricato. Si prega di aggiungerlo in php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "Non Disponibile" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "non può essere vuoto e deve essere configurato" + +#: install/step1.php:184 +msgid "should be" +msgstr "dovrebbe essere" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Test di lettura del file delle impostazioni (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Il file delle impostazioni non esiste (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "verra' creato" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Test di scrittura del file delle impostazioni (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Test di scrittura nella directory delle impostazionii (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Test di lettura di un file di classi (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Test di lettura del file home del sito (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Test di lettura di un file template (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Test di lettura di un file Admin-Template (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Test di lettura di un file template (templates/files/contacts.tpl.da)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Test di lettura di un'immagine (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Si sono verificati degli errori. Si prega di verificare le impostazioni e di leggere i requisiti di sistema nella documentazione!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Leggere il file INSTALLATION per capire come risolvere i problemi." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Effettuate le modifiche, aggiornare la pagina per procedere" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Aggiorna" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Test dell'ambiente superato" + +#: install/step1.php:264 +msgid "Next" +msgstr "Avanti" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Setup" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Si prega di compilare il modulo sottostante. Campi obbligatori contrassegnati con * " + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Configurazione Database" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Utente DB NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Password DB NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Cancellare il database se esiste già?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "Configurazione Utente NagiosQL" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Utente amministratore di NagiosQL" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Password dell'utente di amministrazione di NagiosQL" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Ripetere la password" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Configurazione Nagios" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importare i file di configurazione di esempio di Nagios?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Eseguire una copia di backup del database prima di procedere!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Termine setup" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "configurare le impostazioni di NagiosQL," + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Cancellare il database esistente di NagiosQL" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Creazione il nuovo database" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Settare l'amministratore iniziale di NagiosQL" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Scrittura settaggi globali sul database" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Scrittura configurazione database nel file settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importare configurazioni di esempio di Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Aggiornando il database esistente di NagiosQL" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Versione di NagiosQL installata" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Aggiornamento da versione" + +#: install/step3.php:86 +msgid "to" +msgstr "in" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Convertendo il database al character set utf8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Convertendo le tabelle del database al character set utf8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Convertendo i campi del database al charcter set utf8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Crea nuovo database NagiosQL" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Il database esiste e non è stata selezionato di cancellare il database, correggere o gestire manualmente" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "superato" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Indietro" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Si prega di eliminare la directory di installazione per continuare!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "supportata" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "non supportata" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "fatto" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/it_IT/index.html b/config/locale/it_IT/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/ja_JP/LC_MESSAGES/index.html b/config/locale/ja_JP/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/ja_JP/LC_MESSAGES/ja_JP.mo b/config/locale/ja_JP/LC_MESSAGES/ja_JP.mo new file mode 100644 index 0000000000000000000000000000000000000000..18550c483264ae162c7e97cdf9c01e0bed5b133f GIT binary patch literal 47189 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 literal 0 HcmV?d00001 diff --git a/config/locale/ja_JP/LC_MESSAGES/ja_JP.po b/config/locale/ja_JP/LC_MESSAGES/ja_JP.po new file mode 100644 index 0000000..95e460f --- /dev/null +++ b/config/locale/ja_JP/LC_MESSAGES/ja_JP.po @@ -0,0 +1,3699 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:52+0100\n" +"PO-Revision-Date: 2012-03-09 22:52+0100\n" +"Last-Translator: \n" +"Language-Team: Japanese (Japan) (http://www.transifex.net/projects/p/nagiosql/language/ja_JP/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ja_JP\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL 管理" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "ようこそ" + +#: index.php:46 +msgid "Welcome" +msgstr "ようこそ" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "" + +#: index.php:48 +msgid "Username" +msgstr "ユーザ名" + +#: index.php:49 +msgid "Password" +msgstr "パスワード" + +#: index.php:50 +msgid "Login" +msgstr "ログイン" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "管理" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "NagiosQL V3管理者の機能" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "警告通知" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "連絡先データ、連絡先テンプレートそして連絡先グループと時間間隔を定義する" + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "統計データ" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "グループ" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "アクティブ" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "インアクティブ" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "連絡先データ" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "連絡先グループ" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "時間間隔" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "連絡先テンプレート" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "設定ファイルの書き込みは成功しました!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "設定の書き込み成功:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "設定ファイルのオープン/上書きが出来ません(許可を確認)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "設定の書き込み失敗:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI設定ファイル" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "データファイルをオープンできません(許可を確認)" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "一時ファイルをオープンできません" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "今、コマンドが挿入されました:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "コマンドが修正されました:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "データベースエントリー失敗! 必要なデータが入っていません!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "コマンド定義" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "保存できません!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "分類なし" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "チェック・コマンド" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "様々なコマンド" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "エントリーは他の設定で使われているので起動できません" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "コマンド名" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "コマンド行" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "エラー データ・ベースからデータ選択中" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "チェックコマンド" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "チェックやその他のコマンド、通知コマンドや特別なコマンドを定義" + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "書き込みできません" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSHモジュールがロードされていません!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTPモジュールがロードされていません!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "今、新しいドメインが挿入されました" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "ドメインが修正されました:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "警告, ひとつ以上のエラーがあります。 チェックしてください!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "*がマークされた全てのフィールドを埋めてください" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "以下のフィールドには許可されない文字が含まれています" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "記述" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "新しい連絡先グループが挿入されました:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "連絡先グループが修正されました:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "連絡先グループの定義(contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "注意、連絡先定義がありません!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "連絡先グループ" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "新しい連絡先が挿入されました:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "連絡先が修正されました:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "連絡先定義 (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "注意.時間範囲の定義がありません!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "注意, コマンド定義がありません!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "連絡先名" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "連絡先テンプレートの定義 (contacttemplatges.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "可能" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "ファイルが削除されました" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "削除成功" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "バックアップファイルを削除" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "フィルター文字" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "検索" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "削除" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "バックアップファイル" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "必要" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "中止" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "CTRLを押したまま
1つ以上のエントリを選択" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "ダウンロード" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "ユーザが修正されました:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "" + +#: admin/group.php:114 +msgid "Read" +msgstr "" + +#: admin/group.php:115 +msgid "Write" +msgstr "書き込み" + +#: admin/group.php:116 +msgid "Link" +msgstr "" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "データなし" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "ヘルプ テキストエディター" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "メイン・キー" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "サブ・キー" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "言語" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagiosバージョン" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "ディフォルト・テキストのロード" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "新しいホスト定義が挿入されました:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "ホスト依存が修正されました:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "ホスト依存定義(hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "注意,ホストかホストグループ定義がありません!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "設定名" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "依存ホスト" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "依存ホストグループ" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "今、ホストエスカレーションが挿入されました:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "ホストエスカレーションが修正されました:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "ホストエスカレーションの定義 (hostescalation.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "注意、 連絡先と連絡先グループが定義されていません!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "ホスト" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "ホスト・グループ" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "今、ホスト拡張情報が挿入されました:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "ホスト拡張情報が変更されました:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "ホスト拡張情報の定義 (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "注意、ホスト定義がありません" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "ホスト名" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "注意" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "今、ホストグループが挿入されました。" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "ホストグループが変更されました" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "ホストグループ定義 (hostgroup.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "ホスト・グループ" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "今、ホストが挿入されました:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "ホスト 修正されました:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "指定された使われていない設定ファイルの削除に成功しました!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "ホストファイルは削除されました:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "エラー 古い設定ファイルの削除中 - 確認してください!" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "ホスト定義(hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "注意: 連絡先グループの定義がありません!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "今、ホスト・テンプレートが挿入されました:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "ホスト・テンプレート変更されました:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "ホスト・テンプレート定義 (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "ホスト・テンプレート名" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "ファイルアップロードエラー:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "ファイルが取り込まれました - ファイル{上書きフラグ]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "設定の取り込み" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "テンプレート定義" + +#: admin/import.php:91 +msgid "Import file" +msgstr "取り込みファイル" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "データベース上書き" + +#: admin/import.php:94 +msgid "Import" +msgstr "取り込み" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "CTRLを押しながら
1つ以上を選択" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "これは、NagioSQLインストールの相対パスです。" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "これはNagiosQLインストールの絶対パスです。" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "安全な接続が必要な場合、HTTPの代わりにHTTPSを選択" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "書き込み許可したテンポラリディレクトリを選択してください。ディフォルトのディレクトリはOSで決められた値です。" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "アプリケーション言語を選んでください" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "エンコードはUTF-8 以外に設定するべきではありません。変更はあなたの責任で" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "データベースサーバのIPアドレスやホスト名
すなわち localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQLサーバポートはディフォルトで3306です" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "NagiosQLデータベースの名前
すなわち db_nagiosql_ve" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "NagiosQLデータベースの十分な許可を使用
最低このユーザーはSELECT,INSERT,UPDATE,DELETEの許可が必要です" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "上で記述されたユーザのパスワード" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "定義された秒数を使った後、セッションはセキュリティの理由で終了します" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Webサーバーに基づいた認証によって決定
すなわちApache設定(設定ファイルかhtaccess) またはNagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "どれだけの面のエントリーを見るべきですか(すなわちホストやサービス)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "新しいダイアログかNagiosQL2の様にCTRLを押したまま、左クリックを使って複数のエントリーを選択" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "自動オンラインバージョンチェックを有効、もしくは無効にする" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "" + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "プロキシサーバへ接続するためのユーザ名(オプション)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "プロキシサーバへ接続するためのパスワード(オプション)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "何の情報もありません" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "データセットの削除成功.影響した列:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "ログ・ブックを参照" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "ログ・エントリー削除 範囲:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "開始または停止時間のいずれかを設定してください" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "指定された日付の全てのログ・エントリーを本当に削除したいですか?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "前の20エントリ" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "次の20エントリ" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "エラー データのデータベース挿入中:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "データのデータベース挿入成功!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "メニューアクセス権を定義" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "" + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "監視" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "ホストとサービス・グループと同様ホストとサービス管理を定義" + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "サービス" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "サービス・グループ" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "ホスト・テンプレート" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "サービス・テンプレート" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "可能" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "選択済" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Nagiosメイン設定ファイル" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "パスワードの変更成功しました" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "パスワードが短すぎるかパスワードの入力が同じでありません!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "旧パスワードが誤っています" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "保存" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "新しいパスワードが一致しません!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "新しいパスワードが短すぎます - 最低6文字使用!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "今、サービス依存が挿入されました:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "サービス依存が変更されました;" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "サービス依存定義 (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "依存サービス" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "今、サービス・エスカレーションが挿入されました:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "サービス・エスカレーションは修正されました:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "サービス・エスカレーション定義 (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "今、サービス拡張情報が挿入されました:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "サービス拡張情報が修正されました:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "サービス拡張情報を定義(serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "ホスト名" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "サービス" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "今、サービスグループが挿入されました:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "サービスグループが修正されました:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "サービスグループ定義 (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "注意、サービス定義がありません!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "サービスグループ" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "新しいサービスが挿入されました:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "サービスが変更されました:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "サービスファイルが削除されました:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "サービス定義(services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "注意,ホストかホストグループが定義されていません!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "注意,チェックコマンドが定義されていません!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "サービス名" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "全設定" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "新しいサービステンプレートが挿入されました:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "サービステンプレートが変更されました:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "サービス・テンプレート定義(servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "テンプレート名" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "サービス記述" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curlモジュールがロードされていません。Proxyは無効になります!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "設定は変更されました" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "settings.phpの書き込みでエラーが起こりました. 許可を確認してください!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "設定のセッティング" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "現在のNagiosQLセッティングを変更します(すなわち データベースユーザ,言語)" + +#: admin/settings.php:158 +msgid "Path" +msgstr "パス" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "テンポラリ・ディレクトリ" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "サーバ・プロトコール" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "エンコード" + +#: admin/settings.php:187 +msgid "Database" +msgstr "データベース" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQLサーバ" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQLサーバのポート" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "データベース名" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "データベース・ユーザ" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "データベース・パスワード" + +#: admin/settings.php:201 +msgid "Security" +msgstr "セキュリティ" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "セッションの自動ログアウト時間" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "認証の種類" + +#: admin/settings.php:209 +msgid "Common" +msgstr "共通" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "ページ毎のデータ行数" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "選択方法" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "プロキシサーバ" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "プロキシユーザ名(オプション)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "プロキシパスワード(オプション)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "様々なコマンド" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "ホストとサービス依存、ホストとサービス・エスカレーションと同様にストとサービスの付加データを定義します" + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "ホスト依存" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "ホスト・エスカレーション" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "ホスト拡張情報" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "サービス依存" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "サービス・エスカレーション" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "サービス拡張情報" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "失敗" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagiosプロセスファイル" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagiosコマンドファイル" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagiosバイナリファイル" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "上へ" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "下へ" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "修正" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "今、時間間隔が挿入されました:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "時間間隔が修正されました:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "時間間隔定義:" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "時間定義と時間範囲を挿入してください" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "時間範囲" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "定義ツール" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "メイン設定、デーモン制御、その他、データを取り組む有用な機能" + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "新しいユーザが追加されました:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "ユーザ管理" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "パスワードが一致しません!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "パスワードを入れてください" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "パスワードが短すぎます - 6文字以上を使ってください" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Webサーバ認証" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "ホストコマンドの書き込み" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "サービス設定の書き込み" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Nagiosバイナリーがないか実行権がありません!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "リモート実行(FTPサイト実行)がシステムでサポートされていません!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagiosデーモンの再起動成功" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Nagiosの再起動コマンドを送るのに成功" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "再起動失敗 - Nagiosコマンドファイルが見つからないか実行権がありません" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Nagiosコマンドファイルが見つからないか書き込み権がありません!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "再起動失敗 - Nagiosデーモンが実行していません" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Nagiosデーモンが実行していません、リスタートコマンドが送れません!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "再起動失敗 - FTP制限" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Nagios再起動がFTPリモート接続では不可能です!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "設定ファイルの書き込みをチェック" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "設定ファイルをチェック" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Nagiosの再起動" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "監視データ書き込み" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "追加データ書き込み" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "警告、Nagios起動前には、何時も設定ファイルのチェック" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "実行" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "書き込まれたNagios設定はチェックされました - 警告/エラー:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "書かれた設定ファイルは正しいので、Nagiosは再起動できます!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "インストールが完了しました。" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "情報" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "既に最新のバージョンがインストールされています。" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "古いバージョンのNagiosQLを使用されています。最新のバージョンにアップデートして下さい。" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "ドメイン" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "サーバ名" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "方式" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "設定ディレクトリ" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "ベース・ディレクトリ" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "ホスト・ディレクトリ" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "サービス・ディレクトリ" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "バックアップ・ディレクトリ" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "ホスト・バックアップ・ディレクトリ" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "サービス・バックアップ・ディレクトリ" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "アクセスキーの穴" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "アクセスキー" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "機能" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "マーク済" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "追加" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "書式チェック" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "安全な質問" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "はい" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "いいえ" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "時間" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "ユーザ" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "エントリー" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "発信元" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "発信先" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "ログエントリの削除" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "コピー" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "パスワードの確認" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "旧パスワード" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "新パスワード" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "パスワード変更" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "メニュー・ページ" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "検索文字列" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "設定ファイルの書き込み" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "コマンド" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "コマンドタイプ" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "実行" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "時間定義" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "週」" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "時間範囲" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "時間定義" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "挿入" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "修正選択" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "ホストの時間範囲" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "サービスの時間範囲" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "ホストのオプション" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "サービスのオプション" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "ホスト コマンド" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "サービス コマンド" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "電子メールアドレス" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "ポケベル番号" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "アドオン・アドレス" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "ホスト通知許可" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "サービス通知許可" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "コマンドを送れます" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "ステータス情報の保持" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "ステイタス以外の情報保持" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "メンバー" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "グループメンバー" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "コマンド設定" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "親" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "チェックコマンド" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "コマンド表示" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "追加テンプレート" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "チェック設定" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "初期状態" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "再確認間隔" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "最大チェック回数" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "チェック間隔" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "アクティブ・チェック許可" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "パッシブ・チェック許可" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "チェック間隔" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "新鮮さ閾値" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "新鮮さのチェック" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "分散ホストの監視" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "分散サービス監視" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "イベン・トハンドラ" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "イベント・ハンドラ許可" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "バタツキの下限閾値" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "バタツキの上限閾値" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "バタツキ検知許可" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "バタツキ検知オプション" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "ステータス情報の保持" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "ステータス以外の情報保持" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "性能データの処理" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "警報設定" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "連絡先" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "通知間隔" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "通知オプション" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "通知間隔" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "最初の通知ディレイ" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "通知許可" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "追跡オプション" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "アドオン設定" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRMLイメージ" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "注意URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "ステータス・イメージ" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "アイコン・イメージ" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "行動URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2次元座標" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3次元座標" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "アイコン・イメージ代替えテキスト" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "基準" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "オン" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "オフ" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "スキップ" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "フリー変数定義" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "変数名" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "変数値" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "本当にデータベース・エントリを削除したいですか:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "本当に全てのマークしたエントリを削除したいですか?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "見えている全データセットをマーク" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "ファイル" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "全ての設定ファイル書き込み" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "アドレス" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "表示名" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "この設定をテンプレートとして使用" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "一般名" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "次から最低ひとつのオプションをチェックしてください:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "ホストグループ名" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "ホストグループ・メンバー" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "不安定ですか" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "チェックを並行実行" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "設定名フィルター" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "取り込みディレクトリ" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "変数名と変数地を挿入してください" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "警告:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "幾つかの要求さえれたフィールドを埋めなければいけません
この値がテンプレートから設定される場合は、なんにしても保存できます - さもなければ誤った設定をすることになります!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagiosベース・ディレクトリ" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "設定の書き込み" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "選択したコマンドの全てのコマンド引数(ARGx)を指定しない場合!

この引数がオプションなら、どちらにしても保存できます - さもなければ誤った設定となります!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "サービスグループ・メンバー" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "サービスグループ名" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "ループ" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "親子関係の引き継ぎ" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "実行失敗の基準" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "通知失敗の基準" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "依存期間" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "エスカレーション期間" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "エスカレーションオプション" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "最初の通知" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "最後の通知" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "ヘルプ" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "カレンダー" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "月曜" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "火曜" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "水曜" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "木曜" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "金曜" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "土曜" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "日曜" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "メインページ" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "監視対象" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "コマンド" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "特別" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "ツール" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "ホスト依存" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "ホストエスカレート" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "データ取り込み" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "ユーザ 管理" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagios 制御" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "ログブック" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios 設定" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "設定" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "定義" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI 設定" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "メニュー アクセス" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "ドメイン" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "ヘルプ エディタ" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "注意: 設定ファイルは期限切れです!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "旧設定ファイルのバックアップと削除が出来ませんでした。(許可を確認)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "旧設定ファイルのバックアップができませんでした。それは、許可が誤っているためです(remoto FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "許可が誤っているためファイルが削除できませんでした(FTP 接続失敗)" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "設定ファイルを得られません(FTP接続失敗)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "設定ファイルを書き込めません(FTP 接続失敗)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "設定書き込み失敗(FTP接続失敗)" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "設定ファイルのオープン/上書きできません(FTP接続失敗)" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "ディレクトリを開けません" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "期限切れ" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "誤り" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "更新" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "最後のデータベース更新:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "データベースエラーのため削除失敗:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "削除データなし.多分、データセットが存在しないか削除禁止されています。" + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "削除したデータセット id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- テーブルから:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- 影響される列:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "データをテーブルから削除:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "データセットのコピー失敗 - テーブル [新しい名前]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "データセットコピー完了 - テーブル [新しい名前]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr "のテーブル" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "保持" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ",エントリ" + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "削除 不可" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "取り込み定義テーブル" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "は利用できません!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "内部" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "存在するので上書きできませんでした" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "書かれていません" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "挿入できませんでした" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "挿入成功" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "エラー:引数の数が誤っています - サービスグループ・メンバーを取り込めません" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "サーバー接続パラメータが誤っています" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "データベースサーバへの接続に失敗しました 理由:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "データベース接続パラメータが誤っています" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "メニューを隠す" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "メニュー表示" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "エラー データ・ベースへの接続中" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "エラー 正しいローケルを設定中、 'local -a' で関連した出力をbaugs@nagiosql.orgに送ってください。" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "ログイン成功" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "ログイン失敗" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "セッションのタイムアウトに達しました - 秒:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "サイトへのサクセス制限:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "ユーザはデータ・ベースにありません。" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "管理" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "ログイン:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "管理は削除できません" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "ローカルホストは削除できません" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "" + +#: functions/translator.php:56 +msgid "English" +msgstr "英語" + +#: functions/translator.php:60 +msgid "German" +msgstr "ドイツ語" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "中国語 (簡略)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "イタリア" + +#: functions/translator.php:72 +msgid "French" +msgstr "フランス" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "ロシア" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "スペイン" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "ポルトガル (ブラジル)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "オンライン・ドキュメント" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "ようこそNagiosQLインストール機能に" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "この機能はNagiosQLのインストールと設定を助けてくれます。" + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "疑問はこちらを見てください。" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "" + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "要求条件" + +#: install/step1.php:82 +msgid "Finish" +msgstr "完了" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "必要事項の確認中" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "システム許可の確認中" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "" + +#: install/step1.php:113 +msgid "Version" +msgstr "" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "" + +#: install/step1.php:184 +msgid "should be" +msgstr "" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "設定ファイルの読み出しテスト(config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "設定ファイルが存在しません(config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "作成されます。" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "設定ファイルの書き込み試験(config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "設定ディレクトリの書き込み試験(config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "クラスファイルの読み込みテスト(functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "スタートサイトファイルの読み込みテスト(admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "テンプレート・ファイルの読み込みテスト(templates/index.tpl.html)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "管理テンプレート・ファイルの読み込みテスト(templates/admin/admin_master.tpl.html)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "テンプレート・ファイル読み込み試験(templates/files/contact.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "イメージファイルの読み込みテスト(images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "幾つかのエラーがあります。 - システム設定を確認しNagiosQLに必要事項を読んでください!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "NagiosQLのINSTALLATIONファイルを読んでどのように治すか見つけてください。" + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "その後 - 続けるためにこのページを更新してください。" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "リフレッシュ" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "環境試験は成功しました。" + +#: install/step1.php:264 +msgid "Next" +msgstr "次" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL DBユーザ" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL DB パスワード" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "すでにデータベースが存在していたら削除しますか?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "最初のNagiosQLユーザ" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "最初のNagiosQLパスワード" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "パスワードを繰り返してください。" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Nagiosサンプル設定の取込" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "設定終了" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "新しいデータベース作成" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "初期NagiosQL管理を設定" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "グローバル設定をデータベースに書き込み中" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "データベース設定を settings.phpに書き込み中" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Nagiosのサンプルデータを取り込み" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "バージョンからの更新" + +#: install/step3.php:86 +msgid "to" +msgstr "へ" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "データベースは既に存在します。データベースを削除が選択されていません。管理を手動で変更してください。" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "パス" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "前に" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "インストール・ディレクトリを削除して続けてください!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "サポート済み" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "サポート無し" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "完了" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/ja_JP/index.html b/config/locale/ja_JP/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/nl_NL/LC_MESSAGES/index.html b/config/locale/nl_NL/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/nl_NL/LC_MESSAGES/nl_NL.mo b/config/locale/nl_NL/LC_MESSAGES/nl_NL.mo new file mode 100644 index 0000000000000000000000000000000000000000..64025da24989d3422897a7bffbc1c98910603a6f GIT binary patch literal 55694 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 literal 0 HcmV?d00001 diff --git a/config/locale/nl_NL/LC_MESSAGES/nl_NL.po b/config/locale/nl_NL/LC_MESSAGES/nl_NL.po new file mode 100644 index 0000000..35be2af --- /dev/null +++ b/config/locale/nl_NL/LC_MESSAGES/nl_NL.po @@ -0,0 +1,3699 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:52+0100\n" +"PO-Revision-Date: 2012-03-09 22:52+0100\n" +"Last-Translator: \n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.net/projects/p/nagiosql/language/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL - Configuratie Beheer" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Welkom bij" + +#: index.php:46 +msgid "Welcome" +msgstr "Welkom" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Vul uw gebruikersnaam en wachtwoord in om toegang te krijgen tot NagiosQL.
Neem contact op met de beheerder als u uw logingegevens vergeten bent." + +#: index.php:48 +msgid "Username" +msgstr "Gebruikersnaam" + +#: index.php:49 +msgid "Password" +msgstr "Wachtwoord" + +#: index.php:50 +msgid "Login" +msgstr "Inloggen" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Beheer" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Functies om NagiosQL V3 te beheren" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Alarmering" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Om contactgegevens, contact-sjablonen, contact-groepen en tijdsperioden te definiëren." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Configuratie overzicht:" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Groep" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Actief" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inactief" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Contact gegevens" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Contact groepen" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Tijdsperiodes" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Contact sjablonen" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Configuratiebestand is succesvol opgeslagen!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configuratie succesvol opgeslagen:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Kan het configuratiebestand niet openen of overschrijven (bekijk de rechten)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Het opslaan van de configuratie is mislukt:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Kan het configuratiebestand niet openen of overschrijven (bekijk de rechten)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Het opslaan van de configuratie is mislukt (elders):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI configuratiebestand" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Kan het gegevensbestand niet openen (controleer de rechten)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Kan het tijdelijke bestand niet openen" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Het opslaan van de configuratie is mislukt (elders):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Nieuw commando toegevoegd:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Commando aangepast:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Databank invoer is mislukt! Niet alle verplichte velden zijn ingevuld!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Opdracht-definities" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Opslaan niet mogelijk!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "niet geclassificeerd" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "controle-opdracht" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "speciale opdracht" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Invoer kan niet gebruikt worden om het al in gebruik is door een andere configuratie" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Opdracht naam" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Opdrachtregel" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Fout opgetreden bij het opvragen van gegevens uit de database:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Check commando's" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Om controle en overige commando's, notificatie commando's en speciale commando's te definiëren." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "is niet beschrijfbaar" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Nagios configuratiebestand" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSH module niet geladen!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTP module niet geladen!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Nieuw domein toegevoegd:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domein gewijzigd:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Waarschuwing, minstens één fout is opgetreden, controleer deze!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Vul alle velden gemarkeerd met een * in" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Het volgende veld bevat niet toegestane tekens:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Beschrijving" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Nieuwe contact groep toegevoegd:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Contact-groep aangepast:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Contact-groepen definiëren (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Let op, geen contacten gedefinieerd!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Contactgroep" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Nieuw contact toegevoegd:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contact is aangepast:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Contacten definiëren (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Attentie, geen tijd periode gedefineerd!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Let op, geen opdrachten gedefinieerd!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Contact-naam" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Nieuw contact-sjabloon toegevoegd:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Contact-sjabloon aangepast:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Contact-sjablonen definiëren (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Inschakelen" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Uitschakelen" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Bestand is verwijderd" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "succesvol verwijderd" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Verwijder de backup bestanden" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filter tekst" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Zoeken" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Verwijderen" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Filter opnieuw instellen" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Backup bestand" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "vereist" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Annuleren" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Gebruik CTRL om
meer dan 1 item te selecteren" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Verwijder configuratie bestanden" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "Downloaden" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Een nieuwe groep toegevoegd:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Gebruiker aangepast:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Groepen beheer" + +#: admin/group.php:114 +msgid "Read" +msgstr "Lees" + +#: admin/group.php:115 +msgid "Write" +msgstr "Schrijf" + +#: admin/group.php:116 +msgid "Link" +msgstr "Link" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Groep-naam" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Geen gegevens" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Help tekst editor" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Hoofdsleutel" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Subsleutel" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Taal" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagios versie" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Standaard tekst laden" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Nieuwe host-afhankelijkheid toegevoegd:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Host afhankelijkheid aangepast:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definieer host afhankelijkheden (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Attentie, geen hosts en hostgroepen gedefinieerd!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Configuratienaam" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Afhankelijke hosts" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Afhankelijke host groepen" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Nieuw host-escalatie toegevoegd:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Host-escalatie aangepast:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Definieer host-escalatie (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Let op, geen contacten en contact-groepen gedefinieerd!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Host-groepen" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Nieuwe host-informatie toegevoegd:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Host-informatie gewijzigd:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definieer host-informatie (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Attentie, geen hosts gedefinieerd!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Host naam" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notities" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Nieuwe host groep toegevoegd:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Host-groep aangepast:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Definieer host-groepen (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Host groepen" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Nieuwe host toegevoegd:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host aangepast:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "De toegekende, niet langer gebruikte configuratiebestanden zijn met succes verwijderd!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Host bestand verwijderd:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Algemene bestanden kunnen niet verwijderd worden van het system - controleer aub handmatig" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Fout, tijdens het verwijderen van het oude configuratie bestand - a.u.b. nakijken!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Host definiëren (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Attentie, geen contact-groepen gedefinieerd!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Nieuw host-sjabloon toegevoegd:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Host-sjabloon aangepast:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Host-sjabloon definitie (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Host-sjabloon naam" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Fout bij upload van bestand:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Bestand geïmporteerd - Bestand [overwrite flag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Configuratie import" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Sjabloon definitie" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Import bestand" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Lokaal import bestand" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Database overschrijven" + +#: admin/import.php:94 +msgid "Import" +msgstr "Importeren" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Gebruik CTRL om
meer dan 1 te selecteren" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Dit is het relatieve pad van uw NagiosQL installatie" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Dit is het absolute pad naar uw NagiosQL installatie" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Als een beveiligde verbinding gewenst is, selecteer HTTPS in plaats van HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Kies een tijdelijke map met schrijf rechten. Standaard waarde is de temp map die gedefinieerd is door uw besturingssysteem" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Kies uw programma taal" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Codering hoort niet anders ingesteld te zijn dan utf-8. Wijzigingen zijn op uw eigen risico" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "IP-adres of hostnaam van de databaseserver
b.v. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQL server poort, standaard is 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Naam van de NagiosQL database
b.v. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Gebruiker met voldoende rechten op de NagiosQL database
Minimale rechten zijn:SELECT, INSERT, UPDATE, DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Wachtwoord voor de hierboven genoemde gebruiker" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Als extra veiligheid, zal de sessie na de gedefinieerde seconden verbroken worden." + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Kies tussen de authenticatie methoden
b.v. Apache configuratie (config file of htaccess) of NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Hoeveel regels per kant moeten zichtbaar zijn (b.v. services of hosts)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Selectie van meerdere items door gebruik van het nieuw scherm of met CTRL + linkermuisknop zoals in NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Schakel de waarschuwing in of uit, als bij objecten met voorbeelden een verplicht veld geen gegevens bevat." + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "In-of uitschakelen van de automatische online versie te controleren." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Als een proxyserver nodig is om verbinding te maken met Internet (poort 80), gelieve dat op te geven." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Adres van de proxyserver; bijvoorbeeld proxy.yourdomain.com:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Gebruikersnaam voor verbinding via de proxyserver (optioneel)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Wachtwoord voor verbinding via de proxyserver (optioneel)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Informatie popup" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Geen informatie beschikbaar" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Gegevens set met succes verwijderd. Beïnvloede rijen:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Logboek bekijken" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Verwijderen van logs tussen:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Vul op zijn minst een start of stop tijd in" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Weet u zeker dat u alle log regels tussen de geselecteerde datums wilt verwijderen?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "vorige 20" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "volgende 20" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Fout tijdens het invoegen van gegevens in de database:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Gegevens zijn succesvol toegevoegd aan de database!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Toegangs groep ingesteld voor menu onderdeel:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Definieer Menu toegangsrechten" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Een gebruiker moet lid zijn van de hier geselecteerde groep, om toegang te krijgen." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitoring" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Het definiëren van host- en service supervisions net als host en service groepen." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Services" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Service groepen" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Host sjablonen" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Service sjablonen" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Beschikbaar" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Geselecteerd" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Nagios hoofd-configuratiebestand" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Wachtwoord is succesvol gewijzigd" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Wachtwoord is te kort of de wachtwoord velden ongelijk!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Oud wachtwoord is niet correct" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Opslaan" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "De nieuwe wachtwoorden zijn niet gelijk!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Het nieuwe wachtwoord is te kort - gebruik minimaal 6 tekens!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Nieuwe service-afhankelijkheid toegevoegd:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Service-afhankelijkheid aangepast:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definieer service-afhankelijkheden (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Afhankelijke services" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Nieuwe service-escalatie toegevoegd:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Service-escalatie aangepast:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definieer service-escalatie (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Nieuwe service-informatie toegevoegd:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Service-informatie aangepast:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Definieer service-informatie (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Hostnaam" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Service" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Nieuwe service-groep toegevoegd:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Service-groep aangepast:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definieer service-groepen (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Attentie, geen services gedefinieerd!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Service-groep" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Nieuwe service toegevoegd:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Service aangepast:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Service bestand is verwijderd:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Definieer services (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Attentie, geen hosts of host-groepen gedefinieerd!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Attentie, geen controle-opdrachten gedefinieerd!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Service naam" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Alle configuraties" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Nieuw service-sjabloon toegevoegd:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Service-sjabloon aangepast:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Definieer service-sjablonen (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Sjabloon naam" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Service omschrijving" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl module is niet geladen, Proxy zal worden gedeactiveerd!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Fout in het declareren van de omgevingsvariabelen. A.u.b. deze fout melden met het resultaat van 'locale -a'" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Instellingen zijn gewijzigd" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Een fout is opgetreden tijdens het opslaan van settings.php, controleer de rechten!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Configureer Instellingen" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Wijzig de huidige NagiosQL instellingen (b.v. Database gebruiker, Taal)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Pad" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Tijdelijke Map" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Server protocol" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Codering" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Database" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQL Server" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQL Server Poort" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Database naam" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Database gebruiker" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Database wachtwoord" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Beveiliging" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Sessie automatische uitlogtijd" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Authenticatie type" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Algemeen" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Gegevens regels per pagina" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Selectiemethode" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Sjabloon waarschuwingsbericht" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Proxyserver" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Proxy-adres" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Proxyserver gebruikersnaam (optioneel)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Proxyserver wachtwoord (optioneel)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Diverse opdrachten" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Om host- en service-afhankelijkheden, host- en service-escalaties en ook host- en service-informatie te definiëren." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Host-afhankelijkheden" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Host-escalaties" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Host-informatie" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Service-afhankelijkheden" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Service-escalaties" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Service-informatie" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "mislukt" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagios process bestand" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagios commando bestand" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagios binary bestand" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Omhoog" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Omlaag" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Wijzigen" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Nieuwe tijdsperiode toegevoegd:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Tijdsperiode aangepast:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Tijdsperiode definities" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Vul een tijd definitie en een tijdsperiode in" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Tijdsperiode" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Diverse gereedschappen" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Nuttige functies voor gegevens import, hoofd configuratie, daemon beheer enz." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Nieuwe gebruiker toegevoegd:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Gebruiker beheer" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "De wachtwoorden zijn niet gelijk!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Vul het wachtwoord in" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Het wachtwoord is te kort - gebruik minimaal 6 tekens!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Webserver authenticatie" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Sla host configuraties op" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Geen configuratie onderdelen gedefinieerd!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Sla service configuraties op" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Kan de Nagios binary niet vinden of geen rechten om die uit te voeren!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Uitvoer op afstand (FTP SITE EXEC) wordt niet ondersteund door uw systeem!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Op afstand uitvoeren van het nagios verificatie commando mislukt (remote SSH)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Nagios binary of configuratie bestand niet gevonden (remote SSH)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios daemon is succesvol opnieuw gestart" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Herstart commando is succesvol gestuurd naar Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Herstart mislukt - Nagios opdrachtbestand niet gevonden of geen rechten om het uit te voeren" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Nagios opdrachtbestand niet gevonden of geen rechten om op te slaan!!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Herstart mislukt - Nagios daemon was niet gestart" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Nagios daemon is niet gestart, kan herstart opdracht niet sturen!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Herstart mislukt - FTP restricties" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Nagios herstart niet mogelijk via FTP remote verbinding!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Herstart mislukt - Nagios commando bestand niet gevonden of geen rechten om uit te voeren (remote SSH)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios daemon succesvol opnieuw gestart (remote SSH)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Herstart commando succesvol gestuurd naar Nagios (remote SSH)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Nagios commando bestand niet gevonden (remote SSH)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Controleer geschreven configuratiebestanden" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Controleer configuratiebestanden:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Herstart Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Sla monitoring gegevens op" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Sla additionele gegevens op" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Waarschuwing, controleer altijd de configuratiebestanden alvorens Nagios te herstarten!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Doe het" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Controle van geschreven Nagios configuratiebestanden- Waarschuwingen/Fouten:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Geschreven configuratiebestanden zijn geldig, Nagios kan opnieuw gestart worden!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Geïnstalleerd" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Informatie" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "De laatste versie is al geïnstalleerd." + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "U gebruikt een oudere versie van NagiosQL. Gelieve te updaten naar de nieuwste stabiele versie." + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domein" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Servernaam" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Methode" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Map met SSH key pair" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Configuratie mappen" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Basis map" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Host map" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Service map" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Backup map" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Host backup map" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Service backup map" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Afbeelding basis map" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Gebruik algemeen domein" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Decodeer UTF8 gegevens in configuratie bestanden" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Access key holes" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Toegangs sleutels" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Functie" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Gemarkeerd" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Toevoegen" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Formuliercontrole" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Beveiligde vraag" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Ja" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Nee" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Tijd" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Gebruiker" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Invoer" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Van" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Aan" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Verwijder log regels" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Kopiëren" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Bevestig wachtwoord" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Oud wachtwoord" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Nieuw wachtwoord" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Wijzig wachtwoord" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Menu pagina" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Zoek tekst" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Sla configuratiebestand op" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Opdracht" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Opdrachttype" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Uitsluiten" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Insluiten" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Tijd definities" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Weekdag" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Tijd bereik" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Tijd definitie" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Toevoegen" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Wijzig selectie" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Tijdsperiode hosts" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Tijd periode services" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Host opties" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Service opties" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Host commando" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Service opdracht" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "E-mail adres" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Pieper nummer" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Adres toevoegsel" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Host kennisgevingen inschakelen" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Service kennisgevingen inschakelen" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Kan opdrachten indienen" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Behoud status info" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Behoud nonstatus info" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Leden" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Groepsleden" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Algemene instellingen" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Service instelingen" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Voeg deze host configuratie toe aan bestaande service definities" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Ouders" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Controle commando" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Opdracht weergave" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Additionele sjablonen" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Controle instellingen" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Initiële toestand" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Opnieuw proberen interval" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Max controle pogingen" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Controle interval" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Actieve controles ingeschakeld" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Passieve controles ingeschakeld" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Controle periode" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Freshness grenswaarde" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Controle versheid" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Beschik over host" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Beschik over service" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Event handler" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Event handler ingeschakeld" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Low flap grenswaarde" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "High flap grenswaarde" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Flap detectie ingeschakeld" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Flap detectie opties" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Bewaar status informatie" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Bewaar nonstatus informatie" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Verwerk prestatie gegevens" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Alarm instellingen" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contacten" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Notificatie periode" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Notificatie opties" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Notificatie interval" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Eerste notificatie vertraging" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notificaties ingeschakeld" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Stalking opties" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Addon instellingen" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRML afbeelding" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notities URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Status afbeelding" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Icoon afbeelding" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Actie URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D coördinaten" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D coördinaten" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Icoon afbeelding ALT tekst" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standaard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "aan" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "uit" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "overslaan" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Vrije variabele definities" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Variabele naam" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Variabele waarde" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Activeren" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Deactiveren" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Weet u zeker dat u dit database item wilt verwijderen:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Weet u zeker dat u alle gemarkeerde onderdelen wilt verwijderen?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Markeer alle weergegeven gegevens sets" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Bestand" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Schrijf alle configuratie bestanden" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Adres" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Weergave naam" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Gebruik deze configuratie als sjabloon" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Algemene naam" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Vink minimaal 1 van de volgende opties aan:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Host-groep naam" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Host-groep leden" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Is vluchtig" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Paralleliseer controles" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Config naam filter" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Import map" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Vul een variabele naam en een variabele definitie in" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Waarschuwing:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "U heeft niet alle vereiste velden ingevuld!

Als deze waardes door een sjabloon ingevuld worden dan kunt u opslaan - anders krijgt u een ongeldige configuratie!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagios basis map" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Schrijf config" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "U heeft niet alle comanndo argumenten (ARGx) ingevuld voor het geselecteerde commando!

Als deze argumenten optioneel zijn, dan kun u opslaan - anders krijgt u een ongeldige configuratie!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Service groep leden" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Service groep naam" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Host-groepen" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Neem over van bovenliggende" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Uitvoer fout criteria" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Notificatie fout criteria" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Afhankelijkheden periode" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Escalatie periode" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Escalatie opties" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Eerste notificatie" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Laatste notificatie" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Help" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Kalender" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Groep naam" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Gebruikers" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Toegangs groep" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Gebruiker definities" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Gebruikersnaam" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Gebruiker rechten" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Object toegangs restricties" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Groep beheer inschakelen" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Toon relatie gegevens" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Verberg relatie gegevens" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Maandag" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Dinsdag" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Woensdag" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Donderdag" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Vrijdag" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Zaterdag" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Zondag" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Inleiding" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Configuratie" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Opdrachten" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Speciale Configuratie" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Gereedschap" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Service-afhankelijkheden" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Service escalatie" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Host-afhankelijkheid" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Host-escalatie" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Uitgebreide Host" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Service-informatie" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Importeer gegevens" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Gebruikersbeheer" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Groepsbeheer" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagios beheer" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Logboek" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios config" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Instellingen" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definities" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI config" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Menu toegang" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domeinen" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Help editor" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Waarschuwing: het configuratiebestand is verouderd!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Kan het oude configuratiebestand niet back-uppen en verwijderen. (controleer de rechten)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Kan geen backup maken van het oude configuratiebestand omdat de rechten fout staan (remote FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Kan geen backup maken van het oude configuratiebestand omdat de rechten fout staan (remote SFTP)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Kan het bestand niet verwijderen omdat de rechten fout zijn (remote FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Kan het bestand niet verwijderen omdat het niet bestaat (remote FTP)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Kan het bestand niet verwijderen omdat de rechten fout zijn (remote FTP)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Kan het bestand niet verwijderen omdat het niet bestaat (remote SFTP)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Kan het configuratie bestand niet ophalen (FTP verbinding mislukt)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Kan het configuratie bestand niet opslaan (FTP verbinding mislukt)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Kan het configuratie bestand niet ophalen (SSH verbinding mislukt)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Kan het configuratiebestand niet ophalen (bestand op afstand bestaat niet)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Kan het configuratiebestand niet opslaan (SSH verbinding mislukt)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Het is niet mogelijk om configuratie bestanden direct vanaf het algemene domein te schrijven!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Het opslaan van de configuratie is mislukt (FTP verbinding mislukt):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Kan het configuratiebestand niet openen of opslaan (FTP verbinding mislukt)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Kan het configuratiebestand niet openen of opslaan (remote SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Verbinding met remote systeem mislukt (SSH2 verbinding):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "SSH public key bestaat niet of is niet leesbaar" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "SSH private key bestaat niet of is niet leesbaar" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Verbinding met remote systeem mislukt (FTP verbinding):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Kan de map niet openen" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "verouderd" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "gemist" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "actueel" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Laatste database update:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Verwijderen mislukt door een database fout:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Geen gegevens verwijderd. Waarschijnlijk bestaat de gegevens set niet of is beveiligd tegen verwijderen." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Verwijder gegevens set met id:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- van tabel:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- aantal aangepaste rijen:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Gegevens verwijderd uit de tabel:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Gegevens-set kopiëren is mislukt - tabel [new name]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Gegevens-set gekopieerd - tabel [nieuwe naam]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Gegevens-set succesvol geactiveerd. Beïnvloede rijen:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Activeer gegevens-set van tabel:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Gegevens-set succesvol gedeactiveerd. Beïnvloede rijen:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " van de tabel " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relatie naar " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", invoer " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "verwijderen mogelijk" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "verwijderen niet mogelijk" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Kan het configuratiebestand niet ontvangen (FTP verbinding)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Kan het configuratiebestand niet ontvangen (SSH verbinding)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabel voor de importeer definities" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "is niet beschikbaar!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "binnen" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "bestaat al en werd niet overschreven" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "kon niet opgeslagen worden" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "kon niet ingevoegd worden:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "succesvol ingevoegd" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Fout: verkeerd aantal argumenten - kan de service-groep leden niet importeren" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Verbindings parameter van server ontbreekt!!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Verbinding met de databaseserver is mislukt met reden:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Verbindings parameter van database ontbreekt!!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Menu verbergen" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Menu tonen" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Pagina" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Onbeperkte toegang" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Fout tijdens het verbinden met de database:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Fout bij het declareren van de omgevingsvariabelen. A.u.b. deze fout melden met het resultaat van 'locale -a' aan bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Webserver login succesvol" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Login succesvol" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Login mislukt!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Sessie timeout bereikt - Seconden:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Beveiligde sitetoegang:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Gebruiker niet in de database gevonden" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Admin" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Ingelogd:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Afmelden" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Waarschuwing - sjabloonbestand niet gevonden of niet leesbaar, controleer de bestandsrechten! - Bestand: " + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin kan niet verwijderd worden" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost kan niet worden verwijderd" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Geen rechten om de configuratie te openen!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Engels" + +#: functions/translator.php:60 +msgid "German" +msgstr "Duits" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chinees (Vereenvoudigd)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiaans" + +#: functions/translator.php:72 +msgid "French" +msgstr "Frans" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russisch" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Spaans" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugees (Braziliaans)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Nederlands" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Deens" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Online Documentatie" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Welkom bij de NagiosQL Installatie Assistent" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Deze Assistent zal u helpen om NagiosQL te installeren en configureren." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Voor vragen bezoek a.u.b" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Als eerste wordt uw lokale omgeving gecontroleerd om te bepalen of alle vereisten voor NagiosQL aanwezig zijn." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "De basis vereisten zijn:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 of hoger inclusief:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "PHP Module:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(optioneel)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "PECL Extensie:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "php.ini opties" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads aan (voor upload mogelijkheden)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start moet uit zijn" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Een MySQL database server" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "START INSTALLATIE" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "START UPDATE" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Benodigheden" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Einde" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Vereisten aan het nakijken" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Controleren Client" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Controleren PHP versie" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Controleren PHP extensies" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Controleren van beschikbare database interfaces" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Controleren php.ini/.htaccess settings" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Controleren van Systeem permissies" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "De volgende modules/extensies zijn vereist om NagiosQL te kunnen gebruiken" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "De volgende extensies zijn optioneel maar aanbevolen" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Controle welke van de ondersteunde extensies geïnstalleerd zijn. Minimaal 1 is vereist." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "De volgens instellingen zijn vereist om NagiosSQL te kunnen gebruiken" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "INGESCHAKELD" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "UITGESCHAKELD" + +#: install/step1.php:113 +msgid "Version" +msgstr "Versie" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "gedetecteerd" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "of hoger is vereist" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Kon niet worden geladen. Voeg toe in php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NIET BESCHIKBAAR" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "kan niet leeg zijn en moet ingesteld zijn" + +#: install/step1.php:184 +msgid "should be" +msgstr "dient te zijn" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Lees test op het configuratiebestand (config/settings.php" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Configuratiebestand bestaat niet (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "zal aangemaakt worden" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Schrijf test op het configuratiebestand (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Schrijf test op de configuratie directory (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Lees test op een klassificatie bestand (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Lees test op het start site bestand (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Lees test op een template bestand (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Lees test op een admin template bestand (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Lees test op een template bestand (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Lees test op een beeld bestand (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Er zijn een aantal fouten opgetreden, kijk a.u.b de systeem instellingen na en lees de systeem vereisten van NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Lees het bestand INSTALLATION van NagiosQL om uit te vinden hoe de fouten op te lossen." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Na dit gedaan te hebben, ververs deze pagina om verder te gaan" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Verversen" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Omgevings test successvol verwerkt" + +#: install/step1.php:264 +msgid "Next" +msgstr "Volgende" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Installatie" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Vul het formulier hieronder in. Verplichte velden zijn gemarkeerd met *" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Database Configuratie" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL Database Gebruiker" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL Database Wachtwoord" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Database verwijderen als deze al bestaat?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "NagiosSQL Gebruiker Setup" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Eerste NagiosQL Gebruiker" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Eerste NagiosQL Wachtwoord" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Wachtwoord nogmaals herhalen" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios Configuratie" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importeren van de Nagios voorbeeld configuratie?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Maak eerst een backup van uw database voordat u verder gaat!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Setup Afronden" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Verspreid NagiosQL instellingen" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Verwijder bestaande NagiosQL database" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Nieuwe database aanmaken" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Initiëele NagiosQL Beheerder" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Globale instellingen worden in de database opgeslagen" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Database configuratie wordt in settings.php opgeslagen" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importeer Nagios vooorbeeld gegevens" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Werk de bestaande NagiosQL database bij" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Geïnstalleerde NagiosQL versie" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Vernieuwen van versie" + +#: install/step3.php:86 +msgid "to" +msgstr "naar" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Converteren database naar utf8 teken set" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Converteren database tabellen naar utf8 teken set" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Converteren database velden naar utf8 teken set" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Nieuwe NagiosQL database aanmaken" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Database bestaat al en het verwijderen van de database was niet geselecteerd, pas de optie aan of verwijder de database handmatig" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "werkt" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Terug" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Verwijder a.u.b. de installatie map om verder te gaan!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "ondersteund" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "niet ondersteund" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "klaar" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/nl_NL/index.html b/config/locale/nl_NL/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/pl_PL/LC_MESSAGES/index.html b/config/locale/pl_PL/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/pl_PL/LC_MESSAGES/pl_PL.mo b/config/locale/pl_PL/LC_MESSAGES/pl_PL.mo new file mode 100644 index 0000000000000000000000000000000000000000..c51c39f42a6f6550ce685c6c991a03ea388c6b99 GIT binary patch literal 42483 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

"; + $strMenuHTML .= "\n"; + } else { + // Menu invisible + $strMenuHTML = "\n"; + $strMenuHTML .= "arrSettings['path']['base_url']."images/menu.gif\" alt=\"".translate('Show menu')."\" border=\"0\" >\n"; + $strMenuHTML .= "\n"; + } + return($strMenuHTML); + + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Menu help functions + /////////////////////////////////////////////////////////////////////////////////////////// + // Recursive function to build the main menu + function getMenuRecursive($intTopId,&$strMenuHTML,$strCSS,$intCntId) { + // Check depth + $intLevel = substr_count($strCSS,'_sub') + 1; + // Define SQL + $strSQL = "SELECT mnuId, mnuName, mnuTopId, mnuLink FROM tbl_menu + WHERE mnuTopId=$intTopId AND mnuCntId=$intCntId AND mnuActive <> 0 AND mnuGrpId IN (".$this->getAccGroups('read').") ORDER BY mnuOrderId"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if (($booRet != false) && ($intDataCount != 0)) { + $strMenuHTMLTemp = ""; + $booReturn1 = false; + // Menu items + foreach ($arrData AS $elem) { + $strName = translate($elem['mnuName']); + $strLink = $this->arrSettings['path']['base_url'].$elem['mnuLink']; + $strMenuHTMLTemp .= " \n"; + if (($elem['mnuId'] == $this->intPageId) || ($this->checkMenuActive($elem['mnuId']) == true)) { + $strMenuHTMLTemp .= " "; + $strMenuHTMLTemp .= "".$strName."\n"; + $booReturn1 = true; + } else { + $strMenuHTMLTemp .= " "; + $strMenuHTMLTemp .= "".$strName."\n"; + } + $strMenuHTMLTemp .= " \n"; + // Recursive call to get submenu items + if (($elem['mnuId'] == $this->intPageId) || ($this->checkMenuActive($elem['mnuId']) == true)) { + if ($this->getMenuRecursive($elem['mnuId'],$strMenuHTMLTemp,$strCSS."_sub",$intCntId) == true) $booReturn1 = true; + } + if ($intTopId == $this->intPageId) $booReturn1 = true; + } + if ($booReturn1 == true) { + $strMenuHTML .= $strMenuHTMLTemp; + return true; + } else { + if ($intLevel == 1) { + $strMenuHTML .= $strMenuHTMLTemp; + } + return false; + } + } else { + $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + return false; + } + } + // Function to find active top menu items + function checkMenuActive($intMenuId) { + $strSQL = "SELECT mnuTopId FROM tbl_menu WHERE mnuId=".$this->intPageId." AND mnuActive <> 0 AND mnuGrpId IN (".$this->getAccGroups('read').")"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if (($booRet != false) && ($intDataCount != 0)) { + foreach ($arrData AS $elem) { + if ($elem['mnuTopId'] == $intMenuId) return true; + } + return false; + } else { + $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + return false; + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Process "null" values + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Replaces "NULL" with -1 + // + // Parameters: $strKey Process string + // + // Return value: Modified process string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function checkNull($strKey) { + if (strtoupper($strKey) == "NULL") { + return("-1"); + } + return($strKey); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Process text values + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Add security features to text values + // + // Parameters: $strKey Process string + // + // Return value: Modified process string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function tfSecure($strKey) { + $strKey = stripslashes($strKey); + $strKey = mysql_real_escape_string($strKey); + return($strKey); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Check browser + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Checks the remote browser + // + // Return value: Browser String + // + /////////////////////////////////////////////////////////////////////////////////////////// + function browserCheck() { + if(stristr($_SERVER['HTTP_USER_AGENT'], 'msie')) { + return("msie"); + } else if(stristr($_SERVER['HTTP_USER_AGENT'], 'firefox')) { + return("firefox"); + } else if(stristr($_SERVER['HTTP_USER_AGENT'], 'opera')) { + return("opera"); + } + return("unknown"); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Processing path strings + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Adds a "/" after a parh string and replaces double "//" with "/" + // + // Parameters: $strPath Path string + // + // Return value: Modified path string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function addSlash($strPath) { + if ($strPath == "") return(""); + $strPath = $strPath."/"; + while(substr_count($strPath,"//") != 0) { + $strPath = str_replace("//","/",$strPath); + } + return ($strPath); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Processing message strings + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Merge message strings and check for duplicate messages + // + // Parameters: $strNewMessage Message to add + // $strSeparate Separate string (
or \n) + // + // Return value: &$strOldMessage Modified message string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function processMessage($strNewMessage,&$strOldMessage,$strSeparate="
") { + $strNewMessage = str_replace("::::","::",$strNewMessage); + $strNewMessage = str_replace("::",$strSeparate,$strNewMessage); + if (($strOldMessage != "") && ($strNewMessage != "")) { + if (substr_count($strOldMessage,$strNewMessage) == 0) { + if (substr_count(substr($strOldMessage,-5),$strSeparate) == 0) { + $strOldMessage .= $strSeparate.$strNewMessage; + } else { + $strOldMessage .= $strNewMessage; + } + } + } else { + $strOldMessage .= $strNewMessage; + } + // Reset message variable (prevent duplicates) + $strNewMessage = ""; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Check account group + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Checks if an user has acces to an account group + // + // Parameters: $intGroupId Group ID + // $strType Access type (read,write,link) + // + // Return value: 0 = access granted + // 1 = no access + // + /////////////////////////////////////////////////////////////////////////////////////////// + function checkAccGroup($intGroupId,$strType) { + // Admin braucht keine Berechtigung + if ($_SESSION['userid'] == 1) return(0); + // Gruppe 0 hat uneingeschränkte Rechte + if ($intGroupId == 0) return(0); + // Datenbank abfragen + switch($strType) { + case 'read': $strTypeValue = "`read`='1'"; break; + case 'write': $strTypeValue = "`write`='1'"; break; + case 'link': $strTypeValue = "`link`='1'"; break; + default: return(1); + } + $strSQL = "SELECT * FROM `tbl_lnkGroupToUser` WHERE `idMaster` = $intGroupId + AND `idSlave`=".$_SESSION['userid']." AND $strTypeValue"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataMain,$intDataCount); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if (($booReturn != false) && ($intDataCount != 0)) { + return(0); + } + return(1); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Returns read groups + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Returns any group ID with read access for the submitted user id + // + // Parameters: $strType Access type (read,write,link) + // + // Return value: Comma separated string with group id's + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getAccGroups($strType) { + $strReturn = "0,"; + // Admin becomes rights to all groups + if ($_SESSION['userid'] == 1) { + $strSQL = "SELECT `id`FROM `tbl_group`"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intCount); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intCount != 0)) { + foreach ( $arrData AS $elem ) { + $strReturn .= $elem['id'].","; + } + } + $strReturn = substr($strReturn,0,-1); + return $strReturn; + } + switch($strType) { + case 'read': $strTypeValue = "`read`='1'"; break; + case 'write': $strTypeValue = "`write`='1'"; break; + case 'link': $strTypeValue = "`link`='1'"; break; + default: $strTypeValue = "'1'='2'"; + } + $strSQL = "SELECT `idMaster` FROM `tbl_lnkGroupToUser` WHERE `idSlave`=".$_SESSION['userid']." AND $strTypeValue"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intCount); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intCount != 0)) { + foreach ( $arrData AS $elem ) { + $strReturn .= $elem['idMaster'].","; + } + } + $strReturn = substr($strReturn,0,-1); + return $strReturn; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Build site numbers + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Build a string which contains links for additional pages. This is used in data lists + // with more items then defined in settings "lines per page limit" + // + // Parameters: $strSite Link to page + // $intDataCount Sum of all data lines + // $chkLimit Actual data limit + // $strOrderBy OrderBy Field + // $strOrderDir Order direction + // + // Return value: HTML string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function buildPageLinks($strSite,$intDataCount,$chkLimit,$strOrderBy="",$strOrderDir="") { + $intMaxLines = $this->arrSettings['common']['pagelines']; + $intCount = 1; + $intCheck = 0; + $strSiteHTML = "\n\n\n"; + for ($i=0;$i<$intDataCount;$i=$i+$intMaxLines) { + $strLink1 = ""; + $strLink2 = "onclick=\"location.href='".$strSite."?limit=$i&orderby=$strOrderBy&orderdir=$strOrderDir'\""; + if ((!(($chkLimit >= ($i+($intMaxLines*5))) || ($chkLimit <= ($i-($intMaxLines*5))))) || ($i==0) || ($i>=($intDataCount-$intMaxLines))) { + if ($chkLimit == $i) { + $strSiteHTML .= "\n"; + } else { + $strSiteHTML .= "\n"; + } + $intCheck = 0; + } else if ($intCheck == 0) { + $strSiteHTML .= "\n"; + $intCheck = 1; + } + $intCount++; + } + $strSiteHTML .= "\n
".translate('Page').": $intCount".$strLink1.$intCount."...
\n"; + if ($intCount > 2) { + return($strSiteHTML); + } else { + return(""); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Insert Domain list + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts the domain list to the list view template + // + // Parameters: $resTemplate Template object + // + // Return value: HTML string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function insertDomainList($resTemplate) { + $strSQL = "SELECT * FROM `tbl_datadomain` WHERE `active` <> '0' ORDER BY `domain`"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataDomain,$intDataCount); + if ($booReturn == false) { + $strErrorMessage .= translate('Error while selecting data from database:')."::".$myDBClass->strErrorMessage; + } else { + if ($intDataCount != 0) { + foreach($arrDataDomain AS $elem) { + // Check acces rights + if ($this->checkAccGroup($elem['access_group'],'read') == 0) { + $resTemplate->setVariable("DOMAIN_ID",$elem['id']); + $resTemplate->setVariable("DOMAIN_NAME",$elem['domain']); + if ($_SESSION['domain'] == $elem['id']) { + $resTemplate->setVariable("DOMAIN_SEL","selected"); + } + $resTemplate->parse("domainlist"); + } + } + } + } + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Parse selection field (simple) + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Builds a simple selection field inside a template + // + // Parameters: $strTable Table name (source data) + // $strTabField Field name (source data) + // $strTemplKey Template key + // $intModeId 0=only data, 1=with empty line at the beginning, + // 2=with empty line and 'null' line at the beginning + // $intSelId Selected data ID (from master table) + // $intExclId Exclude ID + // + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function parseSelectSimple($strTable,$strTabField,$strTemplKey,$intModeId=0,$intSelId=-9,$intExclId=-9) { + // Compute option value + $intOption = 0; + if ($strTemplKey == 'hostcommand') $intOption = 1; + if ($strTemplKey == 'servicecommand') $intOption = 1; + if ($strTemplKey == 'eventhandler') $intOption = 2; + if ($strTemplKey == 'service_extinfo') $intOption = 7; + // Get version + $this->myConfigClass->getDomainData("version",$intVersion); + // Get link rights + $strAccess = $this->getAccGroups('link'); + // Get raw data + $booRaw = $this->getSelectRawdata($strTable,$strTabField,$arrData,$intOption); + if ($booRaw == 0) { + // Insert an empty line in mode 1 + if (($intModeId == 1) || ($intModeId == 2)) { + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)," "); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',0); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + $this->myContentTpl->parse($strTemplKey); + } + // Insert a 'null' line in mode 2 + if ($intModeId == 2) { + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),"null"); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',-1); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + if ($intSelId == -1) $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_SEL","selected"); + $this->myContentTpl->parse($strTemplKey); + } + // Insert data sets + foreach ($arrData AS $elem) { + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + if ($elem['key'] == $intExclId) continue; + if (isset($elem['active']) && $elem['active'] == 0) { + $strActive=' [inactive]'; + $this->myContentTpl->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + } + if (isset($elem['config_id']) && $elem['config_id'] == 0) { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').' [common]'.$strActive); + } else { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').$strActive); + } + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_ID",$elem['key']); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + if ($intSelId == $elem['key']) { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_SEL","selected"); + } + $this->myContentTpl->parse($strTemplKey); + } + return(0); + } + return(1); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Parse selection field (multi) + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Builds a multi selection field inside a template + // + // Parameters: $strTable Table name (source data) + // $strTabField Field name (source data) + // $strTemplKey Template key + // $intDataId Data ID of master table + // $intModeId 0 = only data + // 1 = with empty line at the beginning + // 2 = with * line at the beginning + // $intTypeId Type ID (from master table) + // $intExclId Exclude ID + // $strRefresh Session token for refresh mode + // + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function parseSelectMulti($strTable,$strTabField,$strTemplKey,$strLinkTable,$intModeId=0,$intTypeId=-9,$intExclId=-9,$strRefresh='') { + // Compute option value + $intOption = 0; + $intRefresh = 0; + if ($strLinkTable == 'tbl_lnkContactToCommandHost') $intOption = 2; + if ($strLinkTable == 'tbl_lnkContactToCommandService') $intOption = 2; + if ($strLinkTable == 'tbl_lnkContacttemplateToCommandHost') $intOption = 2; + if ($strLinkTable == 'tbl_lnkContacttemplateToCommandService') $intOption = 2; + if ($strLinkTable == 'tbl_lnkServicegroupToService') $intOption = 3; + if ($strLinkTable == 'tbl_lnkServicedependencyToService_DS') $intOption = 4; + if ($strLinkTable == 'tbl_lnkServicedependencyToService_S') $intOption = 5; + if ($strLinkTable == 'tbl_lnkServiceescalationToService') $intOption = 6; + if ($strTemplKey == 'host_services') $intOption = 8; + // Get version + $this->myConfigClass->getDomainData("version",$intVersion); + // Get raw data + $booRaw = $this->getSelectRawdata($strTable,$strTabField,$arrData,$intOption); + // Get selected data + $booSel = $this->getSelectedItems($strLinkTable,$arrSelected,$intOption); + // Get additional selected data + if ($strLinkTable == 'tbl_lnkHostToHostgroup') { + $booSelAdd = $this->getSelectedItems("tbl_lnkHostgroupToHost",$arrSelectedAdd,8); + } + if ($strLinkTable == 'tbl_lnkHostgroupToHost') { + $booSelAdd = $this->getSelectedItems("tbl_lnkHostToHostgroup",$arrSelectedAdd,8); + } + // Get browser + $strBrowser = $this->browserCheck(); + // Refresh processing (replaces selection array) + if ($strRefresh != '') { + if (isset($_SESSION['refresh']) && isset($_SESSION['refresh'][$strRefresh]) && is_array($_SESSION['refresh'][$strRefresh])) { + $arrSelected = $_SESSION['refresh'][$strRefresh]; + $intRefresh = 1; + $booSel = 0; + } + } + if ($booRaw == 0) { + $intCount = 0; + // Insert an empty line in mode 1 + if ($intModeId == 1) { + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + $this->myContentTpl->setVariable("OPTION_DISABLED",""); + if (($strBrowser == "msie") && ($this->arrSettings['common']['seldisable'] != 0)) $this->myContentTpl->setVariable("OPTION_DISABLED","disabled=\"disabled\""); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)," "); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',0); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + $this->myContentTpl->parse($strTemplKey); + $intCount++; + } + // Insert an * line in mode 2 + if ($intModeId == 2) { + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + $this->myContentTpl->setVariable("OPTION_DISABLED",""); + if (($strBrowser == "msie") && ($this->arrSettings['common']['seldisable'] != 0)) $this->myContentTpl->setVariable("OPTION_DISABLED","disabled=\"disabled\""); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),"*"); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',"*"); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + if ($intTypeId == 2) $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_SEL","selected"); + if (($intRefresh == 1) && (in_array('*',$arrSelected))) { + $this->myContentTpl->setVariable("DAT_".strtoupper($strTemplKey)."_SEL","selected"); + $this->myContentTpl->setVariable("IE_".strtoupper($strTemplKey)."_SEL","ieselected"); + } + $intCount++; + $this->myContentTpl->parse($strTemplKey); + } + // Insert data sets + foreach ($arrData AS $elem) { + if ($elem['key'] == $intExclId) continue; + if ($elem['value'] == "") continue; + $intIsSelected = 0; + $intIsExcluded = 0; + $intIsForeign = 0; + $this->myContentTpl->setVariable("SPECIAL_STYLE",""); + $this->myContentTpl->setVariable("OPTION_DISABLED",""); + if (($strBrowser == "msie") && ($this->arrSettings['common']['seldisable'] != 0)) $this->myContentTpl->setVariable("OPTION_DISABLED","disabled=\"disabled\""); + if (isset($elem['active']) && $elem['active'] == 0) { + $strActive=' [inactive]'; + $this->myContentTpl->setVariable("SPECIAL_STYLE","inactive_option"); + } else { + $strActive = ""; + } + if (isset($elem['config_id']) && $elem['config_id'] == 0) { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').' [common]'.$strActive); + } else { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').$strActive); + } + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_ID",$elem['key']); + $this->myContentTpl->setVariable('CLASS_SEL',""); + if ($intVersion != 3) $this->myContentTpl->setVariable("VERSION_20_MUST","inpmust"); + if (($booSel == 0) && (in_array($elem['key'],$arrSelected))) $intIsSelected = 1; + if (($booSel == 0) && (in_array($elem['value'],$arrSelected))) $intIsSelected = 1; + if (isset($booSelAdd) && ($booSelAdd == 0) && (in_array($elem['key'],$arrSelectedAdd))) $intIsForeign = 1; + if (isset($booSelAdd) && ($booSelAdd == 0) && (in_array($elem['value'],$arrSelectedAdd))) $intIsForeign = 1; + if (($intIsForeign == 1) && ($strActive == "")) { + $this->myContentTpl->setVariable("SPECIAL_STYLE","foreign_option"); + } + // Exclude rule + if (($booSel == 0) && (in_array("e".$elem['key'],$arrSelected))) $intIsExcluded = 1; + if (($booSel == 0) && (in_array("e"."::".$elem['value'],$arrSelected))) $intIsExcluded = 1; + if ($intIsExcluded == 1) { + if (isset($elem['config_id']) && $elem['config_id'] == 0) { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),'!'.htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').' [common]'.$strActive); + } else { + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey),'!'.htmlspecialchars($elem['value'],ENT_QUOTES,'UTF-8').$strActive); + } + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)."_ID",'e'.$elem['key']); + } + if (($intIsSelected == 1) || ($intIsExcluded == 1)) { + $this->myContentTpl->setVariable("DAT_".strtoupper($strTemplKey)."_SEL","selected"); + $this->myContentTpl->setVariable("IE_".strtoupper($strTemplKey)."_SEL","ieselected"); + } + $intCount++; + $this->myContentTpl->parse($strTemplKey); + } + if ($intCount == 0) { + // Insert an empty line to create valid HTML select fields + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)," "); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',0); + $this->myContentTpl->parse($strTemplKey); + } + return(0); + } + // Insert an empty line to create valid HTML select fields + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey)," "); + $this->myContentTpl->setVariable('DAT_'.strtoupper($strTemplKey).'_ID',0); + $this->myContentTpl->parse($strTemplKey); + return(1); + } + + //3.1 HELP FUNCTIONS + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get raw data + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTable -> Table name + // $strTabField -> Data field name + // $arrData -> Raw data array + // $intOption -> Option value + // Return value -> 0=successful / 1=error + /////////////////////////////////////////////////////////////////////////////////////////// + function getSelectRawdata($strTable,$strTabField,&$arrData,$intOption=0) { + // Get link rights + $strAccess = $this->getAccGroups('link'); + // Common domain is enabled? + $this->myConfigClass->getDomainData("enable_common",$intCommonEnable); + if ($intCommonEnable == 1) { + $strDomainWhere1 = " (`config_id`=".$this->intDomainId." OR `config_id`=0) "; + $strDomainWhere2 = " (`tbl_service`.`config_id`=".$this->intDomainId." OR `tbl_service`.`config_id`=0) "; + } else { + $strDomainWhere1 = " `config_id`=".$this->intDomainId." "; + $strDomainWhere2 = " `tbl_service`.`config_id`=".$this->intDomainId." "; + } + // Define SQL commands + if ($strTable == 'tbl_group') { + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `".$strTable."` WHERE `active`='1' + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL ORDER BY `".$strTabField."`"; + } else if (($strTable == 'tbl_configtarget') || ($strTable == 'tbl_datadomain') || ($strTable == 'tbl_language')) { + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `".$strTable."` WHERE `".$strTabField."` <> '' AND + `".$strTabField."` IS NOT NULL ORDER BY `".$strTabField."`"; + } else if (($strTable == 'tbl_command') && ($intOption == 1)) { + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `config_id`, `active` FROM `".$strTable."` WHERE $strDomainWhere1 + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + AND (`command_type` = 0 OR `command_type` = 1) ORDER BY `".$strTabField."`"; + } else if (($strTable == 'tbl_command') && ($intOption == 2)) { + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `config_id`, `active` FROM `".$strTable."` WHERE $strDomainWhere1 + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + AND (`command_type` = 0 OR `command_type` = 2) ORDER BY `".$strTabField."`"; + } else if (($strTable == 'tbl_timeperiod') && ($strTabField == 'name')) { + $strSQL = "SELECT `id` AS `key`, `timeperiod_name` AS `value`, `config_id`, `active` FROM `tbl_timeperiod` WHERE $strDomainWhere1 + AND `timeperiod_name` <> '' AND `timeperiod_name` IS NOT NULL AND `access_group` IN ($strAccess) + UNION + SELECT `id` AS `key`, `name` AS `value`, `config_id`, `active` FROM `tbl_timeperiod` WHERE $strDomainWhere1 + AND `name` <> '' AND `name` IS NOT NULL AND `name` <> `timeperiod_name` AND `access_group` IN ($strAccess) + ORDER BY value"; + } else if (($strTable == 'tbl_service') && ($intOption == 3)) { + // Service groups + $strSQL = "SELECT CONCAT_WS('::',`tbl_host`.`id`,'0',`tbl_service`.`id`) AS `key`, + CONCAT('H:',`tbl_host`.`host_name`,',',`tbl_service`.`service_description`) AS `value`, `tbl_service`.`active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHost` ON `tbl_service`.`id` = `tbl_lnkServiceToHost`.`idMaster` + LEFT JOIN `tbl_host` ON `tbl_lnkServiceToHost`.`idSlave` = `tbl_host`.`id` + WHERE $strDomainWhere2 AND `tbl_service`.`service_description` <> '' + AND `tbl_service`.`service_description` IS NOT NULL AND `tbl_service`.`host_name` <> 0 AND `tbl_service`.`access_group` IN ($strAccess) + UNION + SELECT CONCAT_WS('::','0',`tbl_hostgroup`.`id`,`tbl_service`.`id`) AS `key`, + CONCAT('HG:',`tbl_hostgroup`.`hostgroup_name`,',',`tbl_service`.`service_description`) AS `value`, `tbl_service`.`active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_hostgroup` ON `tbl_lnkServiceToHostgroup`.`idSlave` = `tbl_hostgroup`.`id` + WHERE $strDomainWhere2 AND `tbl_service`.`service_description` <> '' + AND `tbl_service`.`service_description` IS NOT NULL AND `tbl_service`.`hostgroup_name` <> 0 AND `tbl_service`.`access_group` IN ($strAccess) + UNION + SELECT CONCAT_WS('::',`tbl_host`.`id`,'0',`tbl_service`.`id`) AS `key`, + CONCAT('HHG:',`tbl_host`.`host_name`,',',`tbl_service`.`service_description`) AS `value`, `tbl_service`.`active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostgroupToHost` ON `tbl_lnkHostgroupToHost`.`idMaster` = `tbl_lnkServiceToHostgroup`.`idSlave` + LEFT JOIN `tbl_host` ON `tbl_lnkHostgroupToHost`.`idSlave` = `tbl_host`.`id` + WHERE $strDomainWhere2 AND `tbl_service`.`service_description` <> '' + AND `tbl_service`.`service_description` IS NOT NULL AND `tbl_service`.`hostgroup_name` <> 0 AND `tbl_service`.`access_group` IN ($strAccess) + UNION + SELECT CONCAT_WS('::',`tbl_host`.`id`,'0',`tbl_service`.`id`) AS `key`, + CONCAT('HGH:',`tbl_host`.`host_name`,',',`tbl_service`.`service_description`) AS `value`, `tbl_service`.`active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostToHostgroup` ON `tbl_lnkHostToHostgroup`.`idSlave` = `tbl_lnkServiceToHostgroup`.`idSlave` + LEFT JOIN `tbl_host` ON `tbl_lnkHostToHostgroup`.`idMaster` = `tbl_host`.`id` + WHERE $strDomainWhere2 AND `tbl_service`.`service_description` <> '' + AND `tbl_service`.`service_description` IS NOT NULL AND `tbl_service`.`hostgroup_name` <> 0 AND `tbl_service`.`access_group` IN ($strAccess) + ORDER BY value"; + } else if (($strTable == 'tbl_service') && (($intOption == 4) || ($intOption == 5) || ($intOption == 6))) { + // Define session variables + if ($intOption == 6) { + $strHostVar = 'se_host'; + $strHostGroupVar = 'se_hostgroup'; + } else if ($intOption == 4) { + $strHostVar = 'sd_dependent_host'; + $strHostGroupVar = 'sd_dependent_hostgroup'; + } else { + $strHostVar = 'sd_host'; + $strHostGroupVar = 'sd_hostgroup'; + } + $arrHosts = $_SESSION['refresh'][$strHostVar]; + $arrHostgroups = $_SESSION['refresh'][$strHostGroupVar]; + $arrServices = array(); + $arrServiceId = array(); + if ((count($arrHosts) == 1) && $arrHosts[0] == "") $arrHosts = array(); + if ((count($arrHostgroups) == 1) && $arrHostgroups[0] == "") $arrHostgroups = array(); + if (isset($_SESSION['refresh']) && + (isset($_SESSION['refresh']['sd_dependent_service']) && is_array($_SESSION['refresh']['sd_dependent_service'])) || + (isset($_SESSION['refresh']['sd_service']) && is_array($_SESSION['refresh']['sd_service'])) || + (isset($_SESSION['refresh']['se_service']) && is_array($_SESSION['refresh']['se_service']))){ + // * Value in hosts -> disabled in NagiosQL 3.2 + if (in_array('*',$_SESSION['refresh'][$strHostVar])) { + $strSQL = "SELECT id FROM tbl_host WHERE $strDomainWhere1 + AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataHost,$intDCHost); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intDCHost != 0)) { + $arrHostTemp = ''; + foreach ($arrDataHost AS $elem) { + if (in_array("e".$elem['id'],$_SESSION['refresh'][$strHostVar])) continue; + $arrHostTemp[] = $elem['id']; + } + } + $strHosts = 1; + $arrHosts = $arrHostTemp; + } else { + $strHosts = count($arrHosts)+0; + } + // * Value in host groups -> disabled in NagiosQL 3.2 + if (in_array('*',$_SESSION['refresh'][$strHostGroupVar])) { + $strSQL = "SELECT id FROM tbl_hostgroup WHERE $strDomainWhere1 + AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataHost,$intDCHost); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intDCHost != 0)) { + $arrHostgroupTemp = ''; + foreach ($arrDataHost AS $elem) { + if (in_array("e".$elem['id'],$_SESSION['refresh'][$strHostGroupVar])) continue; + $arrHostgroupTemp[] = $elem['id']; + } + } + $strHostsGroup = 1; + $arrHostgroups = $arrHostgroupTemp; + } else { + $strHostsGroup = count($arrHostgroups)+0; + } + // Special method - only host_name or hostgroup_name selected + if (($strHostVar == 'sd_dependent_host') && ($strHosts == 0) && ($strHostsGroup == 0)) { + $arrHosts = $_SESSION['refresh']['sd_host']; + $arrHostgroups = $_SESSION['refresh']['sd_hostgroup']; + if ((count($arrHosts) == 1) && $arrHosts[0] == "") $arrHosts = array(); + if ((count($arrHostgroups) == 1) && $arrHostgroups[0] == "") $arrHostgroups = array(); + $strHosts = count($arrHosts)+0; + $strHostsGroup = count($arrHostgroups)+0; + } + // If no hosts and hostgroups are selected show any service + if (($strHosts == 0) && ($strHostsGroup == 0)) { + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `tbl_service` + WHERE $strDomainWhere1 + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + GROUP BY `value` ORDER BY `value`"; + } else { + if ($strHosts != 0) { + $intCounter = 0; + foreach ($arrHosts AS $elem) { + if (($intCounter != 0) && (count($arrServices) == 0)) continue; + $arrTempServ = array(); + $arrTempServId = array(); + $elem = str_replace("e","",$elem); + $strSQLTmp = "SELECT `id`, `service_description` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHost` ON `tbl_service`.`id` = `tbl_lnkServiceToHost`.`idMaster` + WHERE $strDomainWhere1 + AND `tbl_lnkServiceToHost`.`idSlave` = $elem + AND `service_description` <> '' AND `service_description` IS NOT NULL AND `access_group` IN ($strAccess) + UNION + SELECT `id`, `service_description` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostToHostgroup` ON `tbl_lnkServiceToHostgroup`.`idSlave` = `tbl_lnkHostToHostgroup`.`idSlave` + WHERE $strDomainWhere1 + AND `tbl_lnkHostToHostgroup`.`idMaster` = $elem + AND `service_description` <> '' AND `service_description` IS NOT NULL AND `access_group` IN ($strAccess) + UNION + SELECT `id`, `service_description` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostgroupToHost` ON `tbl_lnkServiceToHostgroup`.`idSlave` = `tbl_lnkHostgroupToHost`.`idMaster` + WHERE $strDomainWhere1 + AND `tbl_lnkHostgroupToHost`.`idSlave` = $elem + AND `service_description` <> '' AND `service_description` IS NOT NULL AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQLTmp,$arrDataTmp,$intDataTmp); + if ($booReturn && ($intDataTmp != 0)) { + foreach ($arrDataTmp AS $elem2) { + if ($intCounter == 0) { + $arrTempServ[] = $elem2['service_description']; + $arrTempServId[] = $elem2['id']; + } else if (in_array($elem2['service_description'],$arrServices) && !in_array($elem2['service_description'],$arrTempServ)) { + $arrTempServ[] = $elem2['service_description']; + $arrTempServId[] = $elem2['id']; + } + } + } + $arrServices = $arrTempServ; + $arrServicesId = $arrTempServId; + $intCounter++; + } + } + if ($strHostsGroup != 0) { + if ($strHosts == 0) $intCounter = 0; + foreach ($arrHostgroups AS $elem) { + if (($intCounter != 0) && (count($arrServices) == 0)) continue; + $arrTempServ = array(); + $arrTempServId = array(); + $elem = str_replace("e","",$elem); + $strSQLTmp = "SELECT `id`, `service_description` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + WHERE $strDomainWhere1 + AND `tbl_lnkServiceToHostgroup`.`idSlave` = $elem + AND `service_description` <> '' AND `service_description` IS NOT NULL AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQLTmp,$arrDataTmp,$intDataTmp); + if ($booReturn && ($intDataTmp != 0)) { + foreach ($arrDataTmp AS $elem2) { + if ($intCounter == 0) { + $arrTempServ[] = $elem2['service_description']; + $arrTempServId[] = $elem2['id']; + } else if (in_array($elem2['service_description'],$arrServices) && !in_array($elem2['service_description'],$arrTempServ)) { + $arrTempServ[] = $elem2['service_description']; + $arrTempServId[] = $elem2['id']; + } + } + } + $arrServices = $arrTempServ; + $arrServicesId = $arrTempServId; + $intCounter++; + } + } + if (count($arrServices) != 0) { + $strServices = "'".implode("','",$arrServices)."'"; + $strServicesId = implode(",",$arrServicesId); + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHost` ON `tbl_service`.`id` = `tbl_lnkServiceToHost`.`idMaster` + WHERE $strDomainWhere1 + AND `tbl_service`.`service_description` IN ($strServices) + AND `tbl_service`.`id` IN ($strServicesId) + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + GROUP BY `value` + UNION + SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `tbl_service`.`id` = `tbl_lnkServiceToHostgroup`.`idMaster` + WHERE $strDomainWhere1 + AND `tbl_service`.`service_description` IN ($strServices) + AND `tbl_service`.`id` IN ($strServicesId) + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + GROUP BY `value` + UNION + SELECT `id` AS `key`, `".$strTabField."` AS `value`, `active` FROM `tbl_service` + WHERE $strDomainWhere1 + AND `host_name`=2 OR `hostgroup_name`=2 + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) + GROUP BY `value` ORDER BY `value`"; + } else { + $strSQL = ""; + } + } + } else { + $strSQL = ""; + } + } else if (($strTable == 'tbl_service') && ($intOption == 7)) { + if (isset($_SESSION['refresh']) && isset($_SESSION['refresh']['se_host'])) { + $strHostId = $_SESSION['refresh']['se_host']; + $strSQL = "SELECT `tbl_service`.`id` AS `key`, `tbl_service`.`".$strTabField."` AS `value`, `tbl_service`.`active` FROM `tbl_service` + LEFT JOIN `tbl_lnkServiceToHost` ON `tbl_service`.`id` = `tbl_lnkServiceToHost`.`idMaster` + WHERE $strDomainWhere1 AND `tbl_lnkServiceToHost`.`idSlave` = $strHostId + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) ORDER BY `".$strTabField."`"; + } else { + $strSQL = ""; + } + } else if (($strTable == 'tbl_service') && ($intOption == 8)) { + // Service selection inside Host definition + $strSQL = "SELECT `tbl_service`.`id` AS `key`, CONCAT(`tbl_service`.`config_name`, ' - ', `tbl_service`.`service_description`) AS `value`, `active` + FROM `tbl_service` WHERE $strDomainWhere1 AND `tbl_service`.`config_name` <> '' + AND `tbl_service`.`config_name` IS NOT NULL AND `tbl_service`.`service_description` <> '' AND `tbl_service`.`service_description` IS NOT NULL + AND `access_group` IN ($strAccess) ORDER BY `value"; + } else { + // Common statement + $strSQL = "SELECT `id` AS `key`, `".$strTabField."` AS `value`, `config_id`, `active` FROM `".$strTable."` WHERE $strDomainWhere1 + AND `".$strTabField."` <> '' AND `".$strTabField."` IS NOT NULL AND `access_group` IN ($strAccess) ORDER BY `".$strTabField."`"; + } + // Process data + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataRaw,$intDataCount); + if (($booReturn == false) && ($strSQL != "")) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($strTable == 'tbl_group') { + $arrTemp = ""; + $arrTemp['key'] = 0; + $arrTemp['value'] = translate('Unrestricted access'); + $arrData[] = $arrTemp; + } + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrDataRaw AS $elem) { + $arrData[] = $elem; + } + return(0); + } else { + if ($strTable == 'tbl_group') return(0); + $arrData = array('key' => 0, 'value' => 'no data'); + return(1); + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get selected data + /////////////////////////////////////////////////////////////////////////////////////////// + // $strLinkTable -> Link table name + // $arrSelect -> Selected data array + // $intOption -> Option parameter + // Return value -> 0=successful / 1=error + /////////////////////////////////////////////////////////////////////////////////////////// + function getSelectedItems($strLinkTable,&$arrSelect,$intOption=0) { + // Define SQL commands + if ($intOption == 8) { + $strSQL = "SELECT * FROM `".$strLinkTable."` WHERE `idSlave`=".$this->dataId; + } else { + $strSQL = "SELECT * FROM `".$strLinkTable."` WHERE `idMaster`=".$this->dataId; + } + // Process data + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrSelectedRaw,$intDataCount); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intDataCount != 0)) { + foreach($arrSelectedRaw AS $elem) { + // Multi tables + if ($strLinkTable == 'tbl_lnkServicegroupToService') { + if (isset($elem['exclude']) && ($elem['exclude'] == 1)) { + $arrSelect[] = "e".$elem['idSlaveH']."::".$elem['idSlaveHG']."::".$elem['idSlaveS']; + } else { + $arrSelect[] = $elem['idSlaveH']."::".$elem['idSlaveHG']."::".$elem['idSlaveS']; + } + // Servicedependencies and -escalations + } else if (($strLinkTable == 'tbl_lnkServicedependencyToService_DS') || + ($strLinkTable == 'tbl_lnkServicedependencyToService_S') || + ($strLinkTable == 'tbl_lnkServiceescalationToService')) { + if (isset($elem['exclude']) && ($elem['exclude'] == 1)) { + $arrSelect[] = "e::".$elem['strSlave']; + } else { + $arrSelect[] = $elem['strSlave']; + } + // Standard tables + } else { + if ($intOption == 8) { + if (isset($elem['exclude']) && ($elem['exclude'] == 1)) { + $arrSelect[] = "e".$elem['idMaster']; + } else { + $arrSelect[] = $elem['idMaster']; + } + } else { + if (isset($elem['exclude']) && ($elem['exclude'] == 1)) { + $arrSelect[] = "e".$elem['idSlave']; + } else { + $arrSelect[] = $elem['idSlave']; + } + } + } + } + return(0); + } else { + return(1); + } + } +} +?> \ No newline at end of file diff --git a/functions/prepend_adm.php b/functions/prepend_adm.php new file mode 100644 index 0000000..fed7d6c --- /dev/null +++ b/functions/prepend_adm.php @@ -0,0 +1,581 @@ +=PHP5.1) +// ============================ +if(function_exists("date_default_timezone_set") and function_exists("date_default_timezone_get")) { + @date_default_timezone_set(@date_default_timezone_get()); +} +// +// Process post/get parameters +// =========================== +$chkInsName = isset($_POST['tfUsername']) ? $_POST['tfUsername'] : ""; +$chkInsPasswd = isset($_POST['tfPassword']) ? $_POST['tfPassword'] : ""; +$chkLogout = isset($_GET['logout']) ? htmlspecialchars($_GET['logout'], ENT_QUOTES, 'utf-8') : "rr"; +// +// Define common variables +// ======================= +$strErrorMessage = ""; // All error messages (red) +$strInfoMessage = ""; // All information messages (green) +$strConsistMessage = ""; // Consistency message +$tplHeaderVar = ""; +$chkDomainId = 0; +$chkGroupAdm = 0; +$intError = 0; +$setDBVersion = "unknown"; +$setFileVersion = "3.2.0"; +// +// Start PHP session +// ================= +session_start(); +// +// Check path settings +// =================== +if (!isset($_SESSION['SETS']['path']['base_url']) || !isset($_SESSION['SETS']['path']['base_path'])) { + if (substr_count($_SERVER['SCRIPT_NAME'],"index.php") != 0) { + $preBasePath = str_replace("//","/",dirname($_SERVER['SCRIPT_FILENAME'])."/"); + $preBaseURL = str_replace("//","/",dirname($_SERVER['SCRIPT_NAME'])."/"); + $_SESSION['SETS']['path']['base_url'] = $preBaseURL; + $_SESSION['SETS']['path']['base_path'] = $preBasePath; + } else { + header("Location: ../index.php"); + exit; + } +} else { + if (substr_count($_SERVER['SCRIPT_NAME'],"index.php") != 0) { + $preBasePath_tmp = str_replace("//","/",dirname($_SERVER['SCRIPT_FILENAME'])."/"); + $preBaseURL_tmp = str_replace("//","/",dirname($_SERVER['SCRIPT_NAME'])."/"); + if ($preBaseURL_tmp != $_SESSION['SETS']['path']['base_url']) { + $_SESSION['SETS']['path']['base_url'] = $preBaseURL_tmp; + $_SESSION['SETS']['path']['base_path'] = $preBasePath_tmp; + } + } + $preBasePath = $_SESSION['SETS']['path']['base_path']; + $preBaseURL = $_SESSION['SETS']['path']['base_url']; +} +// +// Start installer +// =============== +$preIniFile = $preBasePath.'config/settings.php'; +if (!file_exists($preIniFile) OR ! is_readable($preIniFile)) { + header("Location: ".$preBaseURL."install/index.php"); +} +// +// Read file settings +// ================== +$SETS = parse_ini_file($preBasePath.'config/settings.php',true); +if (!isset($_SESSION['SETS']['db'])) $_SESSION['SETS']['db'] = $SETS['db']; +// +// Include external function/class files - part 1 +// ============================================== +include("mysql_class.php"); +require("translator.php"); +// +// Initialize classes - part 1 +// =========================== +$myDBClass = new mysqldb; +if ($myDBClass->error == true) { + $strErrorMessage .= translate('Error while connecting to database:')."::".$myDBClass->strErrorMessage; + $intError = 1; +} +// +// Get additional configuration from the table tbl_settings +// ======================================================== +if ($intError == 0) { + $strSQL = "SELECT `category`,`name`,`value` FROM `tbl_settings`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + $strErrorMessage .= translate('Error while selecting data from database:')."::".$myDBClass->strErrorMessage; + $intError = 1; + } else if ($intDataCount != 0) { + if (isset($_SESSION['SETS']['data']['locale']) && ($_SESSION['SETS']['data']['locale'] != "")) $strStoreLanguage = $_SESSION['SETS']['data']['locale']; + // Save additional configuration information + for ($i=0;$i<$intDataCount;$i++) { + // We use the path settings from file + if ($arrDataLines[$i]['name'] == 'base_url') continue; + if ($arrDataLines[$i]['name'] == 'base_path') continue; + $SETS[$arrDataLines[$i]['category']][$arrDataLines[$i]['name']] = $arrDataLines[$i]['value']; + } + if (isset($strStoreLanguage) && ($strStoreLanguage != "")) $SETS['data']['locale'] = $strStoreLanguage; + } +} +// +// Enable PHP gettext functionality +// ================================ +if ($intError == 0) { + $arrLocale = explode(".",$SETS['data']['locale']); + $strDomain = $arrLocale[0]; + $strLocale = setlocale(LC_ALL, $SETS['data']['locale'], $SETS['data']['locale'].".utf-8", $SETS['data']['locale'].".utf-8", $SETS['data']['locale'].".utf8", "en_GB", "en_GB.utf-8", "en_GB.utf8"); + if (!isset($strLocale)) { + $strErrorMessage .= translate("Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org")."::"; + $intError = 1; + } + putenv("LC_ALL=".$SETS['data']['locale'].".utf-8"); + putenv("LANG=".$SETS['data']['locale'].".utf-8"); + bindtextdomain($strDomain, $preBasePath."config/locale"); + bind_textdomain_codeset($strDomain, $SETS['data']['encoding']); + textdomain($strDomain); +} +// +// Update class data +// ================= +$myDBClass->arrSettings = $SETS; +// +// Include external function/class files +// ===================================== +include("nag_class.php"); +include("data_class.php"); +include("config_class.php"); +include("content_class.php"); +require_once($preBasePath.'libraries/pear/HTML/Template/IT.php'); +if (isset($preFieldvars) && ($preFieldvars == 1)) { + require($preBasePath.'config/fieldvars.php'); +} +// +// Check path settings +// =================== +if (!isset($SETS['path']['base_path']) || ($preBasePath != $SETS['path']['base_path'])) { + $SETS['path']['base_path'] = $preBasePath; +} +if (!isset($SETS['path']['base_url']) || ($preBaseURL != $SETS['path']['base_url'])) { + $SETS['path']['base_url'] = $preBaseURL; +} +// +// Add data to the session +// ======================= +$_SESSION['SETS'] = $SETS; +$_SESSION['strLoginMessage'] = ""; +$_SESSION['startsite'] = $_SESSION['SETS']['path']['base_url']."admin.php"; +if (!isset($_SESSION['logged_in'])) $_SESSION['logged_in'] = 0; +if (isset($chkLogout) && ($chkLogout == "yes")) { + $_SESSION = array(); + $_SESSION['SETS'] = $SETS; + $_SESSION['logged_in'] = 0; + $_SESSION['userid'] = 0; + $_SESSION['groupadm'] = 0; + $_SESSION['strLoginMessage'] = ""; + $_SESSION['startsite'] = $_SESSION['SETS']['path']['base_url']."admin.php"; + // Get default language + $strSQL = "SELECT `value` FROM `tbl_settings` WHERE `category`='data' AND `name`='locale'"; + $strLocale = $myDBClass->getFieldData($strSQL); + if ($strLocale != "") { + $_SESSION['SETS']['data']['locale'] = $strLocale; + $SETS['data']['locale'] = $strLocale; + } + $arrLocale = explode(".",$SETS['data']['locale']); + $strDomain = $arrLocale[0]; + $strLocale = setlocale(LC_ALL, $SETS['data']['locale'], $SETS['data']['locale'].".utf-8", $SETS['data']['locale'].".utf-8", $SETS['data']['locale'].".utf8", "en_GB", "en_GB.utf-8", "en_GB.utf8"); + if (!isset($strLocale)) { + $strErrorMessage .= translate("Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org")."::"; + $intError = 1; + } + putenv("LC_ALL=".$SETS['data']['locale'].".utf-8"); + putenv("LANG=".$SETS['data']['locale'].".utf-8"); + bindtextdomain($strDomain, $preBasePath ."config/locale"); + bind_textdomain_codeset($strDomain, $SETS['data']['encoding']); + textdomain($strDomain); +} +if (isset($_GET['menu']) && (htmlspecialchars($_GET['menu'], ENT_QUOTES, 'utf-8') == "visible")) $_SESSION['menu'] = "visible"; +if (isset($_GET['menu']) && (htmlspecialchars($_GET['menu'], ENT_QUOTES, 'utf-8') == "invisible")) $_SESSION['menu'] = "invisible"; +// +// Initialize classes +// ================== +$myVisClass = new nagvisual; +$myDataClass = new nagdata; +$myConfigClass = new nagconfig; +$myContentClass = new nagcontent; +// +// Propagating the classes themselves +// ================================== +$myVisClass->myDBClass =& $myDBClass; +$myVisClass->myDataClass =& $myDataClass; +$myVisClass->myConfigClass =& $myConfigClass; +$myDataClass->myDBClass =& $myDBClass; +$myDataClass->myVisClass =& $myVisClass; +$myDataClass->myConfigClass =& $myConfigClass; +$myConfigClass->myDBClass =& $myDBClass; +$myConfigClass->myVisClass =& $myVisClass; +$myConfigClass->myDataClass =& $myDataClass; +$myContentClass->myVisClass =& $myVisClass; +$myContentClass->myDBClass =& $myDBClass; +$myContentClass->myConfigClass =& $myConfigClass; +if (isset($arrDescription)) $myContentClass->arrDescription = $arrDescription; +$strErrorMessage = str_replace("::","
",$strErrorMessage); +// +// Version management +// ================== +if ($intError == 0) { + $setDBVersion = $SETS['db']['version']; +} +// +// Version check +// ============= +if (version_compare($setFileVersion,$setDBVersion,'>') AND (file_exists($preBasePath."install") && is_readable($preBasePath."install"))) { + header("Location: ". $_SESSION['SETS']['path']['base_url']."install/index.php"); +} +// +// Browser Check +// ============= +$preBrowser = $myVisClass->browserCheck(); +// +// Login process +// ============== +if (isset($_SERVER['REMOTE_USER']) && ($_SERVER['REMOTE_USER'] != "") && ($_SESSION['logged_in'] == 0) && + ($chkLogout != "yes") && ($chkInsName == "")) { + $strSQL = "SELECT * FROM `tbl_user` WHERE `username`='".$_SERVER['REMOTE_USER']."' AND `wsauth`='1' AND `active`='1'"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount); + if ($booReturn && ($intDataCount == 1)) { + // Set session variables + $_SESSION['username'] = $arrDataUser[0]['username']; + $_SESSION['userid'] = $arrDataUser[0]['id']; + $_SESSION['groupadm'] = $arrDataUser[0]['admin_enable']; + $_SESSION['startsite'] = $_SESSION['SETS']['path']['base_url']."admin.php"; + $_SESSION['timestamp'] = time(); + $_SESSION['logged_in'] = 1; + $_SESSION['domain'] = $arrDataUser[0]['domain']; + // Update language settings + $strSQL = "SELECT `locale` FROM `tbl_language` WHERE `id`='".$arrDataUser[0]['language']."' AND `active`='1'"; + $strUserLocale = $myDBClass->getFieldData($strSQL); + if ($strUserLocale != "") { + $_SESSION['SETS']['data']['locale'] = $strUserLocale; + $SETS['data']['locale'] = $strUserLocale; + } + // Update last login time + $strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".mysql_real_escape_string($chkInsName)."'"; + $booReturn = $myDBClass->insertData($strSQLUpdate); + $myDataClass->writeLog(translate('Webserver login successfull')); + $_SESSION['strLoginMessage'] = ""; + // Redirect to start page + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['startsite']); + } +} +if (($_SESSION['logged_in'] == 0) && isset($chkInsName) && ($chkInsName != "") && ($intError == 0)) { + $chkInsName = mysql_real_escape_string($chkInsName); + $chkInsPasswd = mysql_real_escape_string($chkInsPasswd); + $strSQL = "SELECT * FROM `tbl_user` WHERE `username`='".$chkInsName."' + AND `password`=MD5('".$chkInsPasswd."') AND `active`='1'"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + $_SESSION['strLoginMessage'] = $strErrorMessage; + } else if ($intDataCount == 1) { + // Set session variables + $_SESSION['username'] = $arrDataUser[0]['username']; + $_SESSION['userid'] = $arrDataUser[0]['id']; + $_SESSION['groupadm'] = $arrDataUser[0]['admin_enable']; + $_SESSION['startsite'] = $_SESSION['SETS']['path']['base_url'] ."admin.php"; + $_SESSION['timestamp'] = time(); + $_SESSION['logged_in'] = 1; + $_SESSION['domain'] = $arrDataUser[0]['domain']; + // Update language settings + $strSQL = "SELECT `locale` FROM `tbl_language` WHERE `id`='".$arrDataUser[0]['language']."' AND `active`='1'"; + $strUserLocale = $myDBClass->getFieldData($strSQL); + if ($strUserLocale != "") { + $_SESSION['SETS']['data']['locale'] = $strUserLocale; + $SETS['data']['locale'] = $strUserLocale; + } + // Update last login time + $strSQLUpdate = "UPDATE `tbl_user` SET `last_login`=NOW() WHERE `username`='".mysql_real_escape_string($chkInsName)."'"; + $booReturn = $myDBClass->insertData($strSQLUpdate); + $myDataClass->writeLog(translate('Login successfull')); + $_SESSION['strLoginMessage'] = ""; + // Redirect to start page + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['startsite']); + } else { + $_SESSION['strLoginMessage'] = translate('Login failed!'); + $myDataClass->writeLog(translate('Login failed!')." - Username: ".$chkInsName); + $preNoMain = 0; + } +} +if (($_SESSION['logged_in'] == 0) && (!isset($intPageID) || ($intPageID != 0)) && (!isset($chkInsName) || ($chkInsName == ""))) { + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); +} +if (!isset($_SESSION['userid']) && ($_SESSION['logged_in'] == 1)) { + $_SESSION['logged_in'] = 0; + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); +} +// +// Review and update login +// ======================= +if (($_SESSION['logged_in'] == 1) && ($intError == 0)) { + $strSQL = "SELECT * FROM `tbl_user` WHERE `username`='".mysql_real_escape_string($_SESSION['username'])."'"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataUser,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else if ($intDataCount == 1) { + // Time expired? + if (time() - $_SESSION['timestamp'] > $_SESSION['SETS']['security']['logofftime']) { + // Force new login + $myDataClass->writeLog(translate('Session timeout reached - Seconds:')." ".(time() - $_SESSION['timestamp']." - User: ".$_SESSION['username'])); + $_SESSION['logged_in'] = 0; + + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); + } else { + // Check rights + if (isset($preAccess) && ($preAccess == 1) && (isset($prePageId) && ($prePageId != 0))) { + $strKey = $myDBClass->getFieldData("SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=$prePageId"); + $intResult = $myVisClass->checkAccGroup($strKey,'read'); + // If no rights - redirect to index page + if ($intResult != 0) { + $myDataClass->writeLog(translate('Restricted site accessed:')." ".filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); + } + } + // Update login time + $_SESSION['timestamp'] = time(); + if (isset($preContent) && ($preContent == "index.tpl.htm")) { + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['startsite']); + } + } + } else { + // Force new login + $myDataClass->writeLog(translate('User not found in database')); + $_SESSION['logged_in'] = 0; + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); + } +} +// +// Check access to current site +// ============================ +if (isset($prePageId) && ($prePageId != 1)) { + if (!isset($_SESSION['userid'])) { + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['SETS']['path']['base_url']."index.php"); + } + $strSQL = "SELECT `mnuGrpId` FROM `tbl_menu` WHERE `mnuId`=$prePageId"; + $prePageKey = $myDBClass->getFieldData($strSQL)+0; + if ($myVisClass->checkAccGroup($prePageKey,'read') != 0) { + header("Location: ".$_SESSION['SETS']['path']['protocol']."://".$_SERVER['HTTP_HOST'].$_SESSION['startsite']); + } +} +// +// Insert main template +// ==================== +if (isset($preContent) && ($preContent != "") && (!isset($preNoMain) || ($preNoMain != 1))) { + $arrTplOptions = array('use_preg' => false); + $maintp = new HTML_Template_IT($preBasePath ."templates/"); + $maintp->loadTemplatefile("main.tpl.htm", true, true); + $maintp->setOptions($arrTplOptions); + $maintp->setVariable("META_DESCRIPTION","NagiosQL System Monitoring Administration Tool"); + $maintp->setVariable("AUTHOR","NagiosQL Team"); + $maintp->setVariable("LANGUAGE","de"); + $maintp->setVariable("PUBLISHER","www.nagiosql.org"); + if ($_SESSION['logged_in'] == 1) { + $maintp->setVariable("ADMIN","
".translate('Administration').""); + //$maintp->setVariable("PLUGINS","".translate('Plugins').""); + } + $maintp->setVariable("BASE_PATH",$_SESSION['SETS']['path']['base_url']); + $maintp->setVariable("ROBOTS","noindex,nofollow"); + $maintp->setVariable("PAGETITLE","NagiosQL - Version ".$setDBVersion); + $maintp->setVariable("IMAGEDIR",$_SESSION['SETS']['path']['base_url'] ."images/"); + if (isset($prePageId) && ($intError == 0)) $maintp->setVariable("POSITION",$myVisClass->getPosition($prePageId,translate('Admin'))); + $maintp->parse("header"); + $tplHeaderVar = $maintp->get("header"); + // + // Read domain list + // ================ + if (($_SESSION['logged_in'] == 1) && ($intError == 0)) { + $intDomain = isset($_POST['selDomain']) ? $_POST['selDomain'] : -1; + if ($intDomain != -1) { + $_SESSION['domain'] = $intDomain; + $myVisClass->intDomainId = $intDomain; + $myDataClass->intDomainId = $intDomain; + $myConfigClass->intDomainId = $intDomain; + $myContentClass->intDomainId = $intDomain; + } + $strSQL = "SELECT * FROM `tbl_datadomain` WHERE `active` <> '0' ORDER BY `domain`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataDomain,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + $intDomain = 0; + if ($intDataCount > 0) { + foreach($arrDataDomain AS $elem) { + $intIsDomain = 0; + // Check access rights + if ($myVisClass->checkAccGroup($elem['access_group'],'read') == 0) { + $maintp->setVariable("DOMAIN_VALUE",$elem['id']); + $maintp->setVariable("DOMAIN_TEXT",$elem['domain']); + if (isset($_SESSION['domain']) && ($_SESSION['domain'] == $elem['id'])) { + $maintp->setVariable("DOMAIN_SELECTED","selected"); + $intDomain = $elem['id']; + $intIsDomain = 1; + } + if ($intDomain == -1) { + $intDomain = $elem['id']; + $intIsDomain = 1; + } + $maintp->parse("domainsel"); + } + if ($intIsDomain == 0) { + // Select available an domain + $strDomAcc = $myVisClass->getAccGroups('read'); + $strSQL = "SELECT id FROM `tbl_datadomain` WHERE `active` <> '0' AND `access_group` IN (".$strDomAcc.") ORDER BY domain LIMIT 1"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataDomain,$intDataCount); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + } else { + if ($intDataCount != 0) $intDomain = $arrDataDomain[0]['id']; + } + } + } + $maintp->setVariable("DOMAIN_INFO",translate("Domain").":"); + $maintp->parse("dselect"); + $tplHeaderVar .= $maintp->get("dselect"); + } + } + } + // + // Show login information + // ====================== + if ($_SESSION['logged_in'] == 1) { + $maintp->setVariable("LOGIN_INFO",translate('Logged in:')." ".$_SESSION['username']); + $maintp->setVariable("LOGOUT_INFO","".translate('Logout').""); + } else { + $maintp->setVariable("LOGOUT_INFO"," "); + } + // + // Build content menu + // ================== + if (isset($prePageId) && ($prePageId != 0)) $maintp->setVariable("MAINMENU",$myVisClass->getMenu($prePageId)); + $maintp->parse("header2"); + $tplHeaderVar .= $maintp->get("header2"); + if (!isset($preShowHeader) || $preShowHeader == 1) { + echo $tplHeaderVar; + } +} +// +// Insert content and master template +// ====================================== +if (isset($preContent) && ($preContent != "")) { + $arrTplOptions = array('use_preg' => false); + if (!file_exists($preBasePath ."templates/".$preContent) || !is_readable($preBasePath ."templates/".$preContent)) { + echo "".translate('Warning - template file not found or not readable, please check your file permissions! - File: '); + echo str_replace("//","/",$preBasePath ."templates/".$preContent)."
"; + exit; + } + $conttp = new HTML_Template_IT($preBasePath ."templates/"); + $conttp->loadTemplatefile($preContent, true, true); + $conttp->setOptions($arrTplOptions); + $strRootPath = $_SESSION['SETS']['path']['base_url']; + if (substr($strRootPath,-1) != "/") { + $conttp->setVariable("BASE_PATH",$strRootPath); + $conttp->setVariable("IMAGE_PATH",$strRootPath."images/"); + } else { + $conttp->setVariable("BASE_PATH",$strRootPath); + $conttp->setVariable("IMAGE_PATH",$strRootPath."images/"); + } + $mastertp = new HTML_Template_IT($preBasePath ."templates/"); + $mastertp->loadTemplatefile("admin/admin_master.tpl.htm", true, true); + $mastertp->setOptions($arrTplOptions); +} elseif (isset($pluginTemplate) && ($pluginTemplate != "")) { +// +// Insert Plugin Template +// ====================== + $arrTplOptions = array('use_preg' => false); + $conttp = new HTML_Template_IT($preBasePath ."plugins/".$pluginType."/".$pluginName."/templates/default/"); + $conttp->loadTemplatefile($pluginTemplate, true, true); + $conttp->setOptions($arrTplOptions); + $strRootPath = $_SESSION['SETS']['path']['base_url']; + if (substr($strRootPath,-1) != "/") { + $conttp->setVariable("BASE_PATH",$strRootPath."/plugins/".$pluginType."/".$pluginName."/"); + $conttp->setVariable("IMAGE_PATH",$strRootPath."/plugins/".$pluginType."/".$pluginName."/images/"); + } else { + $conttp->setVariable("BASE_PATH",$strRootPath."/plugins/".$pluginType."/".$pluginName."/"); + $conttp->setVariable("IMAGE_PATH",$strRootPath."/plugins/".$pluginType."/".$pluginName."/images/"); + } + $mastertp = new HTML_Template_IT($preBasePath ."templates/"); + $mastertp->loadTemplatefile("admin/admin_master.tpl.htm", true, true); + $mastertp->setOptions($arrTplOptions); +} +// +// Process standard get/post parameters +// ==================================== +$arrSortDir = array("ASC","DESC"); +$arrSortBy = array("1","2"); +$chkModus = isset($_GET['modus']) ? htmlspecialchars($_GET['modus'], ENT_QUOTES, 'utf-8') : "display"; +$chkModus = isset($_POST['modus']) ? htmlspecialchars($_POST['modus'], ENT_QUOTES, 'utf-8') : "display"; +$chkHidModify = isset($_POST['hidModify']) ? htmlspecialchars($_POST['hidModify'], ENT_QUOTES, 'utf-8') : ""; +$chkSelModify = isset($_POST['selModify']) ? htmlspecialchars($_POST['selModify'], ENT_QUOTES, 'utf-8') : ""; +$hidSortDir = (isset($_POST['hidSortDir']) && in_array($_POST['hidSortDir'],$arrSortDir)) ? $_POST['hidSortDir'] : "ASC"; +$hidSortBy = (isset($_POST['hidSortBy']) && in_array($_POST['hidSortBy'],$arrSortBy)) ? $_POST['hidSortBy'] : 1; +$chkLimit = isset($_POST['hidLimit']) ? $_POST['hidLimit']+0 : 0; +$chkSelTargetDomain = isset($_POST['selTargetDomain']) ? $_POST['selTargetDomain']+0 : 0; +$chkListId = isset($_POST['hidListId']) ? $_POST['hidListId']+0 : 0; +$chkDataId = isset($_POST['hidId']) ? $_POST['hidId']+0 : 0; +$chkActive = isset($_POST['chbActive']) ? $_POST['chbActive']+0 : 0; +$chkRegister = isset($_POST['chbRegister']) ? $_POST['chbRegister']+0 : 0; +$hidActive = isset($_POST['hidActive']) ? $_POST['hidActive']+0 : 0; +$hidSort = isset($_POST['hidSort']) ? $_POST['hidSort']+0 : 0; +$chkStatus = isset($_POST['hidStatus']) ? $_POST['hidStatus']+0 : 0; +if (isset($_GET['orderby']) && ($_GET['orderby'] != "")) $hidSortBy = $_GET['orderby']; +if (isset($_GET['orderdir']) && ($_GET['orderdir'] != "")) $hidSortDir = $_GET['orderdir']; +// +// Setting some variables +// ====================== +if ($chkModus == "add") $chkSelModify = ""; +if ($chkHidModify != "") $chkSelModify = $chkHidModify; +if (isset($_GET['limit'])) $chkLimit = htmlspecialchars($_GET['limit'], ENT_QUOTES, 'utf-8'); +if (isset($_SESSION['domain'])) $chkDomainId = $_SESSION['domain']; +if (isset($_SESSION['groupadm'])) $chkGroupAdm = $_SESSION['groupadm']; +if (isset($_SESSION['strLoginMessage'])) $_SESSION['strLoginMessage'] .= $strErrorMessage; +$myConfigClass->getDomainData("version",$intVersion); +$myConfigClass->getDomainData("enable_common",$setEnableCommon); +if (isset($preTableName)) { + if ($setEnableCommon != 0) { + $strDomainWhere = " (`$preTableName`.`config_id`=$chkDomainId OR `$preTableName`.`config_id`=0) "; + $strDomainWhere2 = " (`config_id`=$chkDomainId OR `config_id`=0) "; + } else { + $strDomainWhere = " (`$preTableName`.`config_id`=$chkDomainId) "; + $strDomainWhere2 = " (`config_id`=$chkDomainId) "; + } +} +// Row sort variables +if ($hidSortDir == "ASC") { $setSortDir = "DESC"; } else { $setSortDir = "ASC"; } +if (isset($preContent) && ($preContent != "")) { + if ($hidSortBy == 2) { + $mastertp->setVariable("SORT_IMAGE_1",""); + } else { + $hidSortBy = 1; + $mastertp->setVariable("SORT_IMAGE_2",""); + } + $setSortPicture = $_SESSION['SETS']['path']['base_url']."images/sort_".strtolower($hidSortDir).".png"; + $mastertp->setVariable("SORT_DIR_".$hidSortBy,$setSortDir); + $mastertp->setVariable("SORT_IMAGE_".$hidSortBy,"\"$hidSortDir\""); + $mastertp->setVariable("SORT_DIR",$hidSortDir); + $mastertp->setVariable("SORT_BY",$hidSortBy); +} +// +// Set class variables +// =================== +if (isset($preContent) && ($preContent != "")) { + $myVisClass->myContentTpl = $conttp; + $myVisClass->dataId = $chkListId; +} +?> \ No newline at end of file diff --git a/functions/prepend_content.php b/functions/prepend_content.php new file mode 100755 index 0000000..0ff6d55 --- /dev/null +++ b/functions/prepend_content.php @@ -0,0 +1,518 @@ +intLimit = $chkLimit; +$myContentClass->intVersion = $intVersion; +$myContentClass->strBrowser = $preBrowser; +$myContentClass->intGroupAdm = $chkGroupAdm; +$myContentClass->strTableName = $preTableName; +$myContentClass->strSearchSession = $preSearchSession; +$myContentClass->intSortBy = $hidSortBy; +$myContentClass->strSortDir = $hidSortDir; +// +// Process get parameters +// ====================== +$chkFromLine = isset($_GET['from_line']) ? filter_var($_GET['from_line'], FILTER_SANITIZE_NUMBER_INT) : 0; +// +// Process post parameters +// ======================= +$chkTfSearch = isset($_POST['txtSearch']) ? $_POST['txtSearch'] : ""; // Search field +$chkSelAccGr = isset($_POST['selAccGr']) ? $_POST['selAccGr']+0 : 0; // Access group +$chkSelCnfName = isset($_POST['selCnfName']) ? $_POST['selCnfName'] : ""; // Config name selection field +// +$chkTfValue1 = isset($_POST['tfValue1']) ? $_POST['tfValue1'] : ""; // Common text field value +$chkTfValue2 = isset($_POST['tfValue2']) ? $_POST['tfValue2'] : ""; // Common text field value +$chkTfValue3 = isset($_POST['tfValue3']) ? $_POST['tfValue3'] : ""; // Common text field value +$chkTfValue4 = isset($_POST['tfValue4']) ? $_POST['tfValue4'] : ""; // Common text field value +$chkTfValue5 = isset($_POST['tfValue5']) ? $_POST['tfValue5'] : ""; // Common text field value +$chkTfValue6 = isset($_POST['tfValue6']) ? $_POST['tfValue6'] : ""; // Common text field value +$chkTfValue7 = isset($_POST['tfValue7']) ? $_POST['tfValue7'] : ""; // Common text field value +$chkTfValue8 = isset($_POST['tfValue8']) ? $_POST['tfValue8'] : ""; // Common text field value +$chkTfValue9 = isset($_POST['tfValue9']) ? $_POST['tfValue9'] : ""; // Common text field value +$chkTfValue10 = isset($_POST['tfValue10']) ? $_POST['tfValue10'] : ""; // Common text field value +$chkTfValue11 = isset($_POST['tfValue11']) ? $_POST['tfValue11'] : ""; // Common text field value +$chkTfValue12 = isset($_POST['tfValue12']) ? $_POST['tfValue12'] : ""; // Common text field value +$chkTfValue13 = isset($_POST['tfValue13']) ? $_POST['tfValue13'] : ""; // Common text field value +$chkTfValue14 = isset($_POST['tfValue14']) ? $_POST['tfValue14'] : ""; // Common text field value +$chkTfValue15 = isset($_POST['tfValue15']) ? $_POST['tfValue15'] : ""; // Common text field value +$chkTfValue16 = isset($_POST['tfValue16']) ? $_POST['tfValue16'] : ""; // Common text field value +$chkTfValue17 = isset($_POST['tfValue17']) ? $_POST['tfValue17'] : ""; // Common text field value +$chkTfValue18 = isset($_POST['tfValue18']) ? $_POST['tfValue18'] : ""; // Common text field value +$chkTfValue19 = isset($_POST['tfValue19']) ? $_POST['tfValue19'] : ""; // Common text field value +$chkTfValue20 = isset($_POST['tfValue20']) ? $_POST['tfValue20'] : ""; // Common text field value +$chkTfArg1 = isset($_POST['tfArg1']) ? $_POST['tfArg1'] : ""; // Common argument text field value +$chkTfArg2 = isset($_POST['tfArg2']) ? $_POST['tfArg2'] : ""; // Common argument text field value +$chkTfArg3 = isset($_POST['tfArg3']) ? $_POST['tfArg3'] : ""; // Common argument text field value +$chkTfArg4 = isset($_POST['tfArg4']) ? $_POST['tfArg4'] : ""; // Common argument text field value +$chkTfArg5 = isset($_POST['tfArg5']) ? $_POST['tfArg5'] : ""; // Common argument text field value +$chkTfArg6 = isset($_POST['tfArg6']) ? $_POST['tfArg6'] : ""; // Common argument text field value +$chkTfArg7 = isset($_POST['tfArg7']) ? $_POST['tfArg7'] : ""; // Common argument text field value +$chkTfArg8 = isset($_POST['tfArg8']) ? $_POST['tfArg8'] : ""; // Common argument text field value +$chkMselValue1 = isset($_POST['mselValue1']) ? $_POST['mselValue1'] : array(""); // Common multi select field value +$chkMselValue2 = isset($_POST['mselValue2']) ? $_POST['mselValue2'] : array(""); // Common multi select field value +$chkMselValue3 = isset($_POST['mselValue3']) ? $_POST['mselValue3'] : array(""); // Common multi select field value +$chkMselValue4 = isset($_POST['mselValue4']) ? $_POST['mselValue4'] : array(""); // Common multi select field value +$chkMselValue5 = isset($_POST['mselValue5']) ? $_POST['mselValue5'] : array(""); // Common multi select field value +$chkMselValue6 = isset($_POST['mselValue6']) ? $_POST['mselValue6'] : array(""); // Common multi select field value +$chkMselValue7 = isset($_POST['mselValue7']) ? $_POST['mselValue7'] : array(""); // Common multi select field value +$chkMselValue8 = isset($_POST['mselValue8']) ? $_POST['mselValue8'] : array(""); // Common multi select field value +$chkChbValue1 = isset($_POST['chbValue1']) ? $_POST['chbValue1']+0 : 0; // Common checkbox field value +$chkChbValue2 = isset($_POST['chbValue2']) ? $_POST['chbValue2']+0 : 0; // Common checkbox field value +$chkDatValue1 = isset($_POST['datValue1']) ? $_POST['datValue1'] : ""; // Common file selection field +$chkTaValue1 = isset($_POST['taValue1']) ? $_POST['taValue1'] : ""; // Common text area value +$chkTaFileText = isset($_POST['taFileText']) ? $_POST['taFileText'] : ""; // Common text area value for file import (not SQL) +$chkSelValue1 = isset($_POST['selValue1']) ? $_POST['selValue1']+0 : 0; // Common select field value +$chkSelValue2 = isset($_POST['selValue2']) ? $_POST['selValue2']+0 : 0; // Common select field value +$chkSelValue3 = isset($_POST['selValue3']) ? $_POST['selValue3']+0 : 0; // Common select field value +$chkSelValue4 = isset($_POST['selValue4']) ? $_POST['selValue4']+0 : 0; // Common select field value +$chkSelValue5 = isset($_POST['selValue5']) ? $_POST['selValue5']+0 : 0; // Common select field value +$chkRadValue1 = isset($_POST['radValue1']) ? $_POST['radValue1']+0 : 2; // Common radio field value +$chkRadValue2 = isset($_POST['radValue2']) ? $_POST['radValue2']+0 : 2; // Common radio field value +$chkRadValue3 = isset($_POST['radValue3']) ? $_POST['radValue3']+0 : 2; // Common radio field value +$chkRadValue4 = isset($_POST['radValue4']) ? $_POST['radValue4']+0 : 2; // Common radio field value +$chkRadValue5 = isset($_POST['radValue5']) ? $_POST['radValue5']+0 : 2; // Common radio field value +$chkRadValue6 = isset($_POST['radValue6']) ? $_POST['radValue6']+0 : 2; // Common radio field value +$chkRadValue7 = isset($_POST['radValue7']) ? $_POST['radValue7']+0 : 2; // Common radio field value +$chkRadValue8 = isset($_POST['radValue8']) ? $_POST['radValue8']+0 : 2; // Common radio field value +$chkRadValue9 = isset($_POST['radValue9']) ? $_POST['radValue9']+0 : 2; // Common radio field value +$chkRadValue10 = isset($_POST['radValue10']) ? $_POST['radValue10']+0 : 2; // Common radio field value +$chkRadValue11 = isset($_POST['radValue11']) ? $_POST['radValue11']+0 : 2; // Common radio field value +$chkRadValue12 = isset($_POST['radValue12']) ? $_POST['radValue12']+0 : 2; // Common radio field value +$chkRadValue13 = isset($_POST['radValue13']) ? $_POST['radValue13']+0 : 2; // Common radio field value +$chkRadValue14 = isset($_POST['radValue14']) ? $_POST['radValue14']+0 : 2; // Common radio field value +$chkRadValue15 = isset($_POST['radValue15']) ? $_POST['radValue15']+0 : 2; // Common radio field value +$chkRadValue16 = isset($_POST['radValue16']) ? $_POST['radValue16']+0 : 2; // Common radio field value +$chkRadValue17 = isset($_POST['radValue17']) ? $_POST['radValue17']+0 : 2; // Common radio field value +$chkChbGr1a = isset($_POST['chbGr1a']) ? $_POST['chbGr1a']."," : ""; // Common checkbox group +$chkChbGr1b = isset($_POST['chbGr1b']) ? $_POST['chbGr1b']."," : ""; // Common checkbox group +$chkChbGr1c = isset($_POST['chbGr1c']) ? $_POST['chbGr1c']."," : ""; // Common checkbox group +$chkChbGr1d = isset($_POST['chbGr1d']) ? $_POST['chbGr1d']."," : ""; // Common checkbox group +$chkChbGr1e = isset($_POST['chbGr1e']) ? $_POST['chbGr1e']."," : ""; // Common checkbox group +$chkChbGr1f = isset($_POST['chbGr1f']) ? $_POST['chbGr1f']."," : ""; // Common checkbox group +$chkChbGr1g = isset($_POST['chbGr1g']) ? $_POST['chbGr1g']."," : ""; // Common checkbox group +$chkChbGr1h = isset($_POST['chbGr1h']) ? $_POST['chbGr1h']."," : ""; // Common checkbox group +$chkChbGr2a = isset($_POST['chbGr2a']) ? $_POST['chbGr2a']."," : ""; // Common checkbox group +$chkChbGr2b = isset($_POST['chbGr2b']) ? $_POST['chbGr2b']."," : ""; // Common checkbox group +$chkChbGr2c = isset($_POST['chbGr2c']) ? $_POST['chbGr2c']."," : ""; // Common checkbox group +$chkChbGr2d = isset($_POST['chbGr2d']) ? $_POST['chbGr2d']."," : ""; // Common checkbox group +$chkChbGr2e = isset($_POST['chbGr2e']) ? $_POST['chbGr2e']."," : ""; // Common checkbox group +$chkChbGr2f = isset($_POST['chbGr2f']) ? $_POST['chbGr2f']."," : ""; // Common checkbox group +$chkChbGr2g = isset($_POST['chbGr2g']) ? $_POST['chbGr2g']."," : ""; // Common checkbox group +$chkChbGr2h = isset($_POST['chbGr2h']) ? $_POST['chbGr2h']."," : ""; // Common checkbox group +$chkChbGr3a = isset($_POST['chbGr3a']) ? $_POST['chbGr3a']."," : ""; // Common checkbox group +$chkChbGr3b = isset($_POST['chbGr3b']) ? $_POST['chbGr3b']."," : ""; // Common checkbox group +$chkChbGr3c = isset($_POST['chbGr3c']) ? $_POST['chbGr3c']."," : ""; // Common checkbox group +$chkChbGr3d = isset($_POST['chbGr3d']) ? $_POST['chbGr3d']."," : ""; // Common checkbox group +$chkChbGr4a = isset($_POST['chbGr4a']) ? $_POST['chbGr4a']."," : ""; // Common checkbox group +$chkChbGr4b = isset($_POST['chbGr4b']) ? $_POST['chbGr4b']."," : ""; // Common checkbox group +$chkChbGr4c = isset($_POST['chbGr4c']) ? $_POST['chbGr4c']."," : ""; // Common checkbox group +$chkChbGr4d = isset($_POST['chbGr4d']) ? $_POST['chbGr4d']."," : ""; // Common checkbox group +$chkButValue1 = isset($_POST['butValue1']) ? $_POST['butValue1'] : ""; // Common button value +$chkButValue2 = isset($_POST['butValue2']) ? $_POST['butValue2'] : ""; // Common button value +$chkButValue3 = isset($_POST['butValue3']) ? $_POST['butValue3'] : ""; // Common button value +$chkButValue4 = isset($_POST['butValue4']) ? $_POST['butValue4'] : ""; // Common button value +$chkButValue5 = isset($_POST['butValue5']) ? $_POST['butValue5'] : ""; // Common button value +$chkTfNullVal1 = (isset($_POST['tfNullVal1']) && ($_POST['tfNullVal1'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal1'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal2 = (isset($_POST['tfNullVal2']) && ($_POST['tfNullVal2'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal2'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal3 = (isset($_POST['tfNullVal3']) && ($_POST['tfNullVal3'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal3'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal4 = (isset($_POST['tfNullVal4']) && ($_POST['tfNullVal4'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal4'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal5 = (isset($_POST['tfNullVal5']) && ($_POST['tfNullVal5'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal5'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal6 = (isset($_POST['tfNullVal6']) && ($_POST['tfNullVal6'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal6'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal7 = (isset($_POST['tfNullVal7']) && ($_POST['tfNullVal7'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal7'])+0 : "NULL"; // Common text NULL field value +$chkTfNullVal8 = (isset($_POST['tfNullVal8']) && ($_POST['tfNullVal8'] != "")) ? $myVisClass->checkNull($_POST['tfNullVal8'])+0 : "NULL"; // Common text NULL field value +// +// Quote special characters +// ========================== +if (get_magic_quotes_gpc() == 0) { + $chkTfSearch = addslashes($chkTfSearch); + $chkTfValue1 = addslashes($chkTfValue1); + $chkTfValue2 = addslashes($chkTfValue2); + $chkTfValue3 = addslashes($chkTfValue3); + $chkTfValue4 = addslashes($chkTfValue4); + $chkTfValue5 = addslashes($chkTfValue5); + $chkTfValue6 = addslashes($chkTfValue6); + $chkTfValue7 = addslashes($chkTfValue7); + $chkTfValue8 = addslashes($chkTfValue8); + $chkTfValue9 = addslashes($chkTfValue9); + $chkTfValue10 = addslashes($chkTfValue10); + $chkTfValue11 = addslashes($chkTfValue11); + $chkTfValue12 = addslashes($chkTfValue12); + $chkTfValue13 = addslashes($chkTfValue13); + $chkTfValue14 = addslashes($chkTfValue14); + $chkTfValue15 = addslashes($chkTfValue15); + $chkTfValue16 = addslashes($chkTfValue16); + $chkTfValue17 = addslashes($chkTfValue17); + $chkTfValue18 = addslashes($chkTfValue18); + $chkTfValue19 = addslashes($chkTfValue19); + $chkTfValue20 = addslashes($chkTfValue20); + $chkTaValue1 = addslashes($chkTaValue1); + $chkTfArg1 = addslashes($chkTfArg1); + $chkTfArg2 = addslashes($chkTfArg2); + $chkTfArg3 = addslashes($chkTfArg3); + $chkTfArg4 = addslashes($chkTfArg4); + $chkTfArg5 = addslashes($chkTfArg5); + $chkTfArg6 = addslashes($chkTfArg6); + $chkTfArg7 = addslashes($chkTfArg7); + $chkTfArg8 = addslashes($chkTfArg8); + $chkTaFileText = addslashes($chkTaFileText); +} +// +// Security function for text fields +// ================================= +$chkTfSearch = $myVisClass->tfSecure($chkTfSearch); +$chkTfValue1 = $myVisClass->tfSecure($chkTfValue1); +$chkTfValue2 = $myVisClass->tfSecure($chkTfValue2); +$chkTfValue3 = $myVisClass->tfSecure($chkTfValue3); +$chkTfValue4 = $myVisClass->tfSecure($chkTfValue4); +$chkTfValue5 = $myVisClass->tfSecure($chkTfValue5); +$chkTfValue6 = $myVisClass->tfSecure($chkTfValue6); +$chkTfValue7 = $myVisClass->tfSecure($chkTfValue7); +$chkTfValue8 = $myVisClass->tfSecure($chkTfValue8); +$chkTfValue9 = $myVisClass->tfSecure($chkTfValue9); +$chkTfValue10 = $myVisClass->tfSecure($chkTfValue10); +$chkTfValue11 = $myVisClass->tfSecure($chkTfValue11); +$chkTfValue12 = $myVisClass->tfSecure($chkTfValue12); +$chkTfValue13 = $myVisClass->tfSecure($chkTfValue13); +$chkTfValue14 = $myVisClass->tfSecure($chkTfValue14); +$chkTfValue15 = $myVisClass->tfSecure($chkTfValue15); +$chkTfValue16 = $myVisClass->tfSecure($chkTfValue16); +$chkTfValue17 = $myVisClass->tfSecure($chkTfValue17); +$chkTfValue18 = $myVisClass->tfSecure($chkTfValue18); +$chkTfValue19 = $myVisClass->tfSecure($chkTfValue19); +$chkTfValue20 = $myVisClass->tfSecure($chkTfValue20); +$chkTfArg1 = $myVisClass->tfSecure($chkTfArg1); +$chkTfArg2 = $myVisClass->tfSecure($chkTfArg2); +$chkTfArg3 = $myVisClass->tfSecure($chkTfArg3); +$chkTfArg4 = $myVisClass->tfSecure($chkTfArg4); +$chkTfArg5 = $myVisClass->tfSecure($chkTfArg5); +$chkTfArg6 = $myVisClass->tfSecure($chkTfArg6); +$chkTfArg7 = $myVisClass->tfSecure($chkTfArg7); +$chkTfArg8 = $myVisClass->tfSecure($chkTfArg8); +$chkTaValue1 = $myVisClass->tfSecure($chkTaValue1); +$chkTaFileText = stripslashes($chkTaFileText); +// +// Multiselect data processing +// =========================== +if (($chkMselValue1[0] == "") || ($chkMselValue1[0] == "0")) {$intMselValue1 = 0;} else {$intMselValue1 = 1;} +if ($chkMselValue1[0] == "*") $intMselValue1 = 2; +if (($chkMselValue2[0] == "") || ($chkMselValue2[0] == "0")) {$intMselValue2 = 0;} else {$intMselValue2 = 1;} +if ($chkMselValue2[0] == "*") $intMselValue2 = 2; +if (($chkMselValue3[0] == "") || ($chkMselValue3[0] == "0")) {$intMselValue3 = 0;} else {$intMselValue3 = 1;} +if ($chkMselValue3[0] == "*") $intMselValue3 = 2; +if (($chkMselValue4[0] == "") || ($chkMselValue4[0] == "0")) {$intMselValue4 = 0;} else {$intMselValue4 = 1;} +if ($chkMselValue4[0] == "*") $intMselValue4 = 2; +if (($chkMselValue5[0] == "") || ($chkMselValue5[0] == "0")) {$intMselValue5 = 0;} else {$intMselValue5 = 1;} +if ($chkMselValue5[0] == "*") $intMselValue5 = 2; +if (($chkMselValue6[0] == "") || ($chkMselValue6[0] == "0")) {$intMselValue6 = 0;} else {$intMselValue6 = 1;} +if ($chkMselValue6[0] == "*") $intMselValue6 = 2; +if (($chkMselValue7[0] == "") || ($chkMselValue7[0] == "0")) {$intMselValue7 = 0;} else {$intMselValue7 = 1;} +if ($chkMselValue7[0] == "*") $intMselValue7 = 2; +if (($chkMselValue8[0] == "") || ($chkMselValue8[0] == "0")) {$intMselValue8 = 0;} else {$intMselValue8 = 1;} +if ($chkMselValue8[0] == "*") $intMselValue8 = 2; +// +// Search/sort/filter - session data +// ================================= +if (!isset($_SESSION['search']) || !isset($_SESSION['search'][$preSearchSession])) $_SESSION['search'][$preSearchSession] = ""; +if (!isset($_SESSION['search']) || !isset($_SESSION['search']['config_selection'])) $_SESSION['search']['config_selection'] = ""; +if (($chkModus == "checkform") || ($chkModus == "filter")) { + $_SESSION['search'][$preSearchSession] = $chkTfSearch; + $_SESSION['search']['config_selection'] = $chkSelCnfName; +} +// +// Process additional templates/variables +// ====================================== +if (isset($_SESSION['templatedefinition']) && is_array($_SESSION['templatedefinition']) && (count($_SESSION['templatedefinition']) != 0)) { + $intTemplates = 1; +} else { + $intTemplates = 0; +} +if (isset($_SESSION['variabledefinition']) && is_array($_SESSION['variabledefinition']) && (count($_SESSION['variabledefinition']) != 0)) { + $intVariables = 1; +} else { + $intVariables = 0; +} +// +// Common SQL parts +// ================ +if ($hidActive == 1) $chkActive = 1; +if ($chkGroupAdm == 1) {$strGroupSQL = "`access_group`=$chkSelAccGr, ";} else {$strGroupSQL = "";} +$preSQLCommon1 = "$strGroupSQL `active`='$chkActive', `register`='$chkRegister', `config_id`=$chkDomainId, `last_modified`=NOW()"; +$preSQLCommon2 = "$strGroupSQL `active`='$chkActive', `register`='0', `config_id`=$chkDomainId, `last_modified`=NOW()"; +$intRet1=0;$intRet2=0;$intRet3=0;$intRet4=0;$intRet5=0;$intRet6=0;$intRet7=0;$intRet8=0; +// +// Check read and write access +// =========================== +if (isset($prePageKey)) { + $intGlobalReadAccess = $myVisClass->checkAccGroup($prePageKey,'read'); // Global read access (0 = access granted) + $intGlobalWriteAccess = $myVisClass->checkAccGroup($prePageKey,'write'); // Global write access (0 = access granted) + $myContentClass->intGlobalWriteAccess = $intGlobalWriteAccess; +} +if (!isset($preNoAccessGrp) || ($preNoAccessGrp == 0)) { + if ($chkDataId != 0) { + $strSQLWrite = "SELECT `access_group` FROM `$preTableName` WHERE id=$chkDataId"; + $intWriteAccessId = $myVisClass->checkAccGroup(($myDBClass->getFieldData($strSQLWrite)+0),'write'); + $myContentClass->intWriteAccessId = $intWriteAccessId; + } + if ($chkListId != 0) { + $strSQLWrite = "SELECT `access_group` FROM `$preTableName` WHERE id=$chkListId"; + $intReadAccessId = $myVisClass->checkAccGroup(($myDBClass->getFieldData($strSQLWrite)+0),'read'); + $intWriteAccessId = $myVisClass->checkAccGroup(($myDBClass->getFieldData($strSQLWrite)+0),'write'); + $myContentClass->intWriteAccessId = $intWriteAccessId; + } +} +// +// Data processing +// =============== +if (($chkModus == "make") && ($intGlobalWriteAccess == 0)) { + $intError = 0; + $intSuccess = 0; + // Get write access groups + $strAccess = $myVisClass->getAccGroups('write'); + // Write configuration file + if ($preTableName == 'tbl_host') { + $strSQL = "SELECT `id` FROM `$preTableName` WHERE $strDomainWhere AND `access_group` IN ($strAccess) AND `active`='1'"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("$preTableName",$data['id']); + if ($intReturn == 1){ + $intError++; + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + $intSuccess++; + } + } + } else { + $myVisClass->processMessage(translate('Some configuration files were not written. Dataset not activated, not found or you do not have write permission!'),$strErrorMessage); + } + if ($intSuccess != 0) $myVisClass->processMessage(translate('Configuration files successfully written!'),$strInfoMessage); + if ($intError != 0) $myVisClass->processMessage(translate('Some configuration files were not written. Dataset not activated, not found or you do not have write permission!'),$strErrorMessage); + } else if ($preTableName == 'tbl_service') { + $strSQL = "SELECT `id`, `$preKeyField` FROM `$preTableName` WHERE $strDomainWhere AND `access_group` IN ($strAccess) AND `active`='1' GROUP BY `$preKeyField`"; + $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("$preTableName",$data['id']); + if ($intReturn == 1){ + $intError++; + $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + } else { + $intSuccess++; + } + } + } else { + $myVisClass->processMessage(translate('Some configuration files were not written. Dataset not activated, not found or you do not have write permission!'),$strErrorMessage); + } + if ($intSuccess != 0) $myVisClass->processMessage(translate('Configuration files successfully written!'),$strInfoMessage); + if ($intError != 0) $myVisClass->processMessage(translate('Some configuration files were not written. Dataset not activated, not found or you do not have write permission!'),$strErrorMessage); + } else { + $intReturn = $myConfigClass->createConfig($preTableName,0); + if ($intReturn == 1) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myConfigClass->strInfoMessage,$strInfoMessage); + } + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "info")) { + // Display additional relation information + if ($preTableName == 'tbl_service') { + $intReturn = $myDataClass->infoRelation($preTableName,$chkListId,"$preKeyField,service_description"); + } else { + $intReturn = $myDataClass->infoRelation($preTableName,$chkListId,$preKeyField); + } + $myVisClass->processMessage($myDataClass->strInfoMessage,$strConsistMessage); + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "delete") && ($intGlobalWriteAccess == 0)) { + // Delete selected datasets + if (($preTableName == 'tbl_user') && ($chkTfValue5 == "Admin")) { + $myVisClass->processMessage(translate("Admin can't be deleted"),$strErrorMessage); + $intReturn = 0; + } else if ((($preTableName == 'tbl_datadomain') || ($preTableName == 'tbl_configtarget')) && ($chkTfValue3 == "localhost")) { + $myVisClass->processMessage(translate("Localhost can't be deleted"),$strErrorMessage); + $intReturn = 0; + } else if (($preTableName == 'tbl_user') || ($preTableName == 'tbl_datadomain') || ($preTableName == 'tbl_configtarget')) { + $intReturn = $myDataClass->dataDeleteEasy($preTableName,$chkListId); + } else { + $intReturn = $myDataClass->dataDeleteFull($preTableName,$chkListId); + } + if ($intReturn == 1) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "copy") && ($intGlobalWriteAccess == 0)) { + // Copy selected datasets + $intReturn = $myDataClass->dataCopyEasy($preTableName,$preKeyField,$chkListId,$chkSelTargetDomain); + if ($intReturn == 1) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "activate") && ($intGlobalWriteAccess == 0)) { + // Activate selected datasets + $intReturn = $myDataClass->dataActivate($preTableName,$chkListId); + if ($intReturn == 1) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "deactivate") && ($intGlobalWriteAccess == 0)) { + // Deactivate selected datasets + $intReturn = $myDataClass->dataDeactivate($preTableName,$chkListId); + if ($intReturn == 1) $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myDataClass->strInfoMessage,$strInfoMessage); + // Remove deactivated files + if ($preTableName == 'tbl_host') { + if ($chkListId != 0) { + $strChbName = "chbId_".$chkListId; + $_POST[$strChbName] = "on"; + } + // Get write access groups + $strAccess = $myVisClass->getAccGroups('write'); + // Getting data sets + $strSQL = "SELECT `id`, `host_name` FROM `".$preTableName."` WHERE `active`='0' AND `access_group` IN ($strAccess) AND `config_id`=".$chkDomainId; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0) && ($chkDomainId != 0)) { + $arrConfigID = $myConfigClass->getConfigSets(); + $intError = 0; + $intSuccess = 0; + if (($arrConfigID != 1) && is_array($arrConfigID)) { + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // was the current record is marked for deactivate? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + $intCount = 0; + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("host",$elem['host_name'].".cfg",$intConfigID); + if ($intReturn == 0) { + $myDataClass->writeLog(translate('Host file deleted:')." ".$elem['host_name'].".cfg"); + $intCount++; + } + } + if ($intReturn == 0) $intSuccess++; + if ($intReturn != 0) $intError++; + } + } + if (($intSuccess != 0) && ($intCount != 0)) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!').$intCount,$strInfoMessage); + } + if ($intError != 0) { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + } + } + } else if ($chkDomainId == 0) { + $myVisClass->processMessage(translate('Common files cannot be removed from target systems - please check manually'),$strErrorMessage); + } + } else if ($preTableName == 'tbl_service') { + if ($chkListId != 0) { + $strChbName = "chbId_".$chkListId; + $_POST[$strChbName] = "on"; + } + // Get write access groups + $strAccess = $myVisClass->getAccGroups('write'); + // Getting data sets + $strSQL = "SELECT `id`, `config_name` FROM `".$preTableName."` WHERE `active`='0' AND `access_group` IN ($strAccess) AND `config_id`=".$chkDomainId; + $booReturn = $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0) && ($chkDomainId != 0)) { + $arrConfigID = $myConfigClass->getConfigSets(); + $intError = 0; + $intSuccess = 0; + if (($arrConfigID != 1) && is_array($arrConfigID)) { + $intCount = 0; + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // was the current record is marked for deactivate? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + $intServiceCount = $myDBClass->countRows("SELECT * FROM `$preTableName` WHERE `$preKeyField`='".$elem['config_name']."' + AND `config_id`=$chkDomainId AND `active`='1'"); + if ($intServiceCount == 0) { + $intReturn = 0; + foreach($arrConfigID AS $intConfigID) { + $intReturn += $myConfigClass->moveFile("service",$elem['config_name'].".cfg",$intConfigID); + if ($intReturn == 0) $myDataClass->writeLog(translate('Service file deleted:')." ".$elem['config_name'].".cfg"); + $intCount++; + } + if ($intReturn == 0) $intSuccess++; + if ($intReturn != 0) $intError++; + } + } + } + if (($intSuccess != 0) && ($intCount != 0)) { + $myVisClass->processMessage(translate('The assigned, no longer used configuration files were deleted successfully!'),$strInfoMessage); + } + if ($intError != 0) { + $myVisClass->processMessage(translate('Errors while deleting the old configuration file - please check!:'),$strErrorMessage); + } + } + } else if ($chkDomainId == 0) { + $myVisClass->processMessage(translate('Common files cannot be removed from target systems - please check manually'),$strErrorMessage); + } + } + $chkModus = "display"; +} else if (($chkModus == "checkform") && ($chkSelModify == "modify")) { + // Open the dataset to modify + if ($intReadAccessId == 0) { + $booReturn = $myDBClass->getSingleDataset("SELECT * FROM `$preTableName` WHERE `id`=".$chkListId,$arrModifyData); + if ($booReturn == false) { + $myVisClass->processMessage(translate('Error while selecting data from database:'),$strErrorMessage); + $myVisClass->processMessage($myDBClass->strErrorMessage,$strErrorMessage); + $chkModus = "display"; + } else { + $chkModus = "add"; + } + } else { + $myVisClass->processMessage(translate('No permission to open configuration!'),$strErrorMessage); + $chkModus = "display"; + } +} else if (($chkModus == "checkform") && ($chkSelModify == "config") && ($intGlobalWriteAccess == 0)) { + // Write configuration file (hosts and services) + $intDSId = (int)substr(array_search("on",$_POST),6); + if (isset($chkListId) && ($chkListId != 0)) $intDSId = $chkListId; + $intValCount = 0; + foreach($_POST AS $key => $elem) { + if ($elem == "on") $intValCount++; + } + if ($intValCount > 1) $intDSId = 0; + $intReturn = $myConfigClass->createConfigSingle($preTableName,$intDSId); + if ($intReturn == 1) $myVisClass->processMessage($myConfigClass->strErrorMessage,$strErrorMessage); + if ($intReturn == 0) $myVisClass->processMessage($myConfigClass->strInfoMessage,$strInfoMessage); + $chkModus = "display"; +} +// +// Some common list view functions +// =============================== +if ($chkModus != "add") { + // Get Group id's with READ + $strAccess = $myVisClass->getAccGroups('read'); + // Include domain list + $myVisClass->insertDomainList($mastertp); + // Process filter string +} +?> \ No newline at end of file diff --git a/functions/prepend_scripting.php b/functions/prepend_scripting.php new file mode 100644 index 0000000..9cedb6b --- /dev/null +++ b/functions/prepend_scripting.php @@ -0,0 +1,111 @@ +=PHP5.1) +// ============================ +if(function_exists("date_default_timezone_set") and function_exists("date_default_timezone_get")) { + @date_default_timezone_set(@date_default_timezone_get()); +} +// +// Define common variables +// ======================= +$chkDomainId = 0; +$intError = 0; +// +// Define path constants +// +define('BASE_PATH', str_replace("functions","",dirname(__FILE__))); +// +// Read settings file +// ================== +$preBasePath = str_replace("scripts","",getcwd()); +$preIniFile = $preBasePath.'config/settings.php'; +// +// Read file settings +// ================== +$SETS = parse_ini_file($preIniFile,true); +// +// Include external function/class files - part 1 +// ============================================== +include("mysql_class.php"); +// +// Initialize classes - part 1 +// =========================== +$myDBClass = new mysqldb; +$myDBClass->arrSettings = $SETS; +$myDBClass->getDatabase($SETS['db']); +if ($myDBClass->error == true) { + echo str_replace("::","\n","Error while connecting to database: ".$myDBClass->strErrorMessage); + $intError = 1; +} +// +// Get additional configuration from the table tbl_settings +// ======================================================== +if ($intError == 0) { + $strSQL = "SELECT `category`,`name`,`value` FROM `tbl_settings`"; + $booReturn = $myDBClass->getDataArray($strSQL,$arrDataLines,$intDataCount); + if ($booReturn == false) { + echo str_replace("::","\n","Error while selecting data from database: ".$myDBClass->strErrorMessage); + $intError = 1; + } else if ($intDataCount != 0) { + for ($i=0;$i<$intDataCount;$i++) { + $SETS[$arrDataLines[$i]['category']][$arrDataLines[$i]['name']] = $arrDataLines[$i]['value']; + } + } +} else { + echo "Could not load configuration settings from database - abort\n"; + exit; +} +// +// Include external function/class files +// ===================================== +include("translator.php"); +include("data_class.php"); +include("config_class.php"); +include("import_class.php"); +require_once($preBasePath.'libraries/pear/HTML/Template/IT.php'); +// +// Initialize classes +// ================== +$myDataClass = new nagdata; +$myConfigClass = new nagconfig; +$myImportClass = new nagimport; +// +// Propagating the classes themselves +// ================================== +$myDataClass->myDBClass =& $myDBClass; +$myDataClass->myConfigClass =& $myConfigClass; +$myConfigClass->myDBClass =& $myDBClass; +$myConfigClass->myDataClass =& $myDataClass; +$myImportClass->myDataClass =& $myDataClass; +$myImportClass->myDBClass =& $myDBClass; +$myImportClass->myConfigClass =& $myConfigClass; +// +// Set class variables +// =================== +$myDataClass->arrSettings = $SETS; +$myConfigClass->arrSettings = $SETS; +?> \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/langs/en.js b/functions/tinyMCE/jscripts/tiny_mce/langs/en.js new file mode 100644 index 0000000..8a80d46 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/langs/en.js @@ -0,0 +1,223 @@ +tinyMCE.addI18n({en:{ +common:{ +edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?", +apply:"Apply", +insert:"Insert", +update:"Update", +cancel:"Cancel", +close:"Close", +browse:"Browse", +class_name:"Class", +not_set:"-- Not set --", +clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?", +clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.", +popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.", +invalid_data:"{#field} is invalid", +invalid_data_number:"{#field} must be a number", +invalid_data_min:"{#field} must be a number greater than {#min}", +invalid_data_size:"{#field} must be a number or percentage", +more_colors:"More colors" +}, +colors:{ +'000000':'Black', +'993300':'Burnt orange', +'333300':'Dark olive', +'003300':'Dark green', +'003366':'Dark azure', +'000080':'Navy Blue', +'333399':'Indigo', +'333333':'Very dark gray', +'800000':'Maroon', +'FF6600':'Orange', +'808000':'Olive', +'008000':'Green', +'008080':'Teal', +'0000FF':'Blue', +'666699':'Grayish blue', +'808080':'Gray', +'FF0000':'Red', +'FF9900':'Amber', +'99CC00':'Yellow green', +'339966':'Sea green', +'33CCCC':'Turquoise', +'3366FF':'Royal blue', +'800080':'Purple', +'999999':'Medium gray', +'FF00FF':'Magenta', +'FFCC00':'Gold', +'FFFF00':'Yellow', +'00FF00':'Lime', +'00FFFF':'Aqua', +'00CCFF':'Sky blue', +'993366':'Brown', +'C0C0C0':'Silver', +'FF99CC':'Pink', +'FFCC99':'Peach', +'FFFF99':'Light yellow', +'CCFFCC':'Pale green', +'CCFFFF':'Pale cyan', +'99CCFF':'Light sky blue', +'CC99FF':'Plum', +'FFFFFF':'White' +}, +contextmenu:{ +align:"Alignment", +left:"Left", +center:"Center", +right:"Right", +full:"Full" +}, +insertdatetime:{ +date_fmt:"%Y-%m-%d", +time_fmt:"%H:%M:%S", +insertdate_desc:"Insert date", +inserttime_desc:"Insert time", +months_long:"January,February,March,April,May,June,July,August,September,October,November,December", +months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", +day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday", +day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun" +}, +print:{ +print_desc:"Print" +}, +preview:{ +preview_desc:"Preview" +}, +directionality:{ +ltr_desc:"Direction left to right", +rtl_desc:"Direction right to left" +}, +layer:{ +insertlayer_desc:"Insert new layer", +forward_desc:"Move forward", +backward_desc:"Move backward", +absolute_desc:"Toggle absolute positioning", +content:"New layer..." +}, +save:{ +save_desc:"Save", +cancel_desc:"Cancel all changes" +}, +nonbreaking:{ +nonbreaking_desc:"Insert non-breaking space character" +}, +iespell:{ +iespell_desc:"Run spell checking", +download:"ieSpell not detected. Do you want to install it now?" +}, +advhr:{ +advhr_desc:"Horizontal rule" +}, +emotions:{ +emotions_desc:"Emotions" +}, +searchreplace:{ +search_desc:"Find", +replace_desc:"Find/Replace" +}, +advimage:{ +image_desc:"Insert/edit image" +}, +advlink:{ +link_desc:"Insert/edit link" +}, +xhtmlxtras:{ +cite_desc:"Citation", +abbr_desc:"Abbreviation", +acronym_desc:"Acronym", +del_desc:"Deletion", +ins_desc:"Insertion", +attribs_desc:"Insert/Edit Attributes" +}, +style:{ +desc:"Edit CSS Style" +}, +paste:{ +paste_text_desc:"Paste as Plain Text", +paste_word_desc:"Paste from Word", +selectall_desc:"Select All", +plaintext_mode_sticky:"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.", +plaintext_mode:"Paste is now in plain text mode. Click again to toggle back to regular paste mode." +}, +paste_dlg:{ +text_title:"Use CTRL+V on your keyboard to paste the text into the window.", +text_linebreaks:"Keep linebreaks", +word_title:"Use CTRL+V on your keyboard to paste the text into the window." +}, +table:{ +desc:"Inserts a new table", +row_before_desc:"Insert row before", +row_after_desc:"Insert row after", +delete_row_desc:"Delete row", +col_before_desc:"Insert column before", +col_after_desc:"Insert column after", +delete_col_desc:"Remove column", +split_cells_desc:"Split merged table cells", +merge_cells_desc:"Merge table cells", +row_desc:"Table row properties", +cell_desc:"Table cell properties", +props_desc:"Table properties", +paste_row_before_desc:"Paste table row before", +paste_row_after_desc:"Paste table row after", +cut_row_desc:"Cut table row", +copy_row_desc:"Copy table row", +del:"Delete table", +row:"Row", +col:"Column", +cell:"Cell" +}, +autosave:{ +unload_msg:"The changes you made will be lost if you navigate away from this page.", +restore_content:"Restore auto-saved content.", +warning_message:"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?." +}, +fullscreen:{ +desc:"Toggle fullscreen mode" +}, +media:{ +desc:"Insert / edit embedded media", +edit:"Edit embedded media" +}, +fullpage:{ +desc:"Document properties" +}, +template:{ +desc:"Insert predefined template content" +}, +visualchars:{ +desc:"Visual control characters on/off." +}, +spellchecker:{ +desc:"Toggle spellchecker", +menu:"Spellchecker settings", +ignore_word:"Ignore word", +ignore_words:"Ignore all", +langs:"Languages", +wait:"Please wait...", +sug:"Suggestions", +no_sug:"No suggestions", +no_mpell:"No misspellings found.", +learn_word:"Learn word" +}, +pagebreak:{ +desc:"Insert page break." +}, +advlist:{ +types:"Types", +def:"Default", +lower_alpha:"Lower alpha", +lower_greek:"Lower greek", +lower_roman:"Lower roman", +upper_alpha:"Upper alpha", +upper_roman:"Upper roman", +circle:"Circle", +disc:"Disc", +square:"Square" +}, +aria:{ +rich_text_area:"Rich Text Area" +}, +wordcount:{ +words: 'Words: ' +} +}}); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/license.txt b/functions/tinyMCE/jscripts/tiny_mce/license.txt new file mode 100644 index 0000000..60d6d4c --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js new file mode 100644 index 0000000..8e041ea --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js @@ -0,0 +1 @@ +(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(e){var h=this,f,d,i;h.editor=e;d=e.settings.contextmenu_never_use_native;h.onContextMenu=new tinymce.util.Dispatcher(this);f=e.onContextMenu.add(function(j,k){if((i!==0?i:k.ctrlKey)&&!d){return}a.cancel(k);if(k.target.nodeName=="IMG"){j.selection.select(k.target)}h._getMenu(j).showMenu(k.clientX||k.pageX,k.clientY||k.pageX);a.add(j.getDoc(),"click",function(l){g(j,l)});j.nodeChanged()});e.onRemove.add(function(){if(h._menu){h._menu.removeAll()}});function g(j,k){i=0;if(k&&k.button==2){i=k.ctrlKey;return}if(h._menu){h._menu.removeAll();h._menu.destroy();a.remove(j.getDoc(),"click",g)}}e.onMouseDown.add(g);e.onKeyDown.add(g);e.onKeyDown.add(function(j,k){if(k.shiftKey&&!k.ctrlKey&&!k.altKey&&k.keyCode===121){a.cancel(k);f(j,k)}})},getInfo:function(){return{longname:"Contextmenu",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getMenu:function(h){var l=this,f=l._menu,i=h.selection,e=i.isCollapsed(),d=i.getNode()||h.getBody(),g,k,j;if(f){f.removeAll();f.destroy()}k=b.getPos(h.getContentAreaContainer());j=b.getPos(h.getContainer());f=h.controlManager.createDropMenu("contextmenu",{offset_x:k.x+h.getParam("contextmenu_offset_x",0),offset_y:k.y+h.getParam("contextmenu_offset_y",0),constrain:1,keyboard_focus:true});l._menu=f;f.add({title:"advanced.cut_desc",icon:"cut",cmd:"Cut"}).setDisabled(e);f.add({title:"advanced.copy_desc",icon:"copy",cmd:"Copy"}).setDisabled(e);f.add({title:"advanced.paste_desc",icon:"paste",cmd:"Paste"});if((d.nodeName=="A"&&!h.dom.getAttrib(d,"name"))||!e){f.addSeparator();f.add({title:"advanced.link_desc",icon:"link",cmd:h.plugins.advlink?"mceAdvLink":"mceLink",ui:true});f.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"})}f.addSeparator();f.add({title:"advanced.image_desc",icon:"image",cmd:h.plugins.advimage?"mceAdvImage":"mceImage",ui:true});f.addSeparator();g=f.addMenu({title:"contextmenu.align"});g.add({title:"contextmenu.left",icon:"justifyleft",cmd:"JustifyLeft"});g.add({title:"contextmenu.center",icon:"justifycenter",cmd:"JustifyCenter"});g.add({title:"contextmenu.right",icon:"justifyright",cmd:"JustifyRight"});g.add({title:"contextmenu.full",icon:"justifyfull",cmd:"JustifyFull"});l.onContextMenu.dispatch(l,f,d,e);return f}});tinymce.PluginManager.add("contextmenu",tinymce.plugins.ContextMenu)})(); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css new file mode 100644 index 0000000..ecdf58c --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css @@ -0,0 +1,6 @@ +.panel_wrapper {height:85px;} +.panel_wrapper div.current {height:85px;} + +/* IE */ +* html .panel_wrapper {height:100px;} +* html .panel_wrapper div.current {height:100px;} diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js new file mode 100644 index 0000000..165bc12 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})(); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js new file mode 100644 index 0000000..80284b9 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js @@ -0,0 +1,142 @@ +tinyMCEPopup.requireLangPack(); + +var SearchReplaceDialog = { + init : function(ed) { + var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode"); + + t.switchMode(m); + + f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string"); + + // Focus input field + f[m + '_panel_searchstring'].focus(); + + mcTabs.onChange.add(function(tab_id, panel_id) { + t.switchMode(tab_id.substring(0, tab_id.indexOf('_'))); + }); + }, + + switchMode : function(m) { + var f, lm = this.lastMode; + + if (lm != m) { + f = document.forms[0]; + + if (lm) { + f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value; + f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked; + f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked; + f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked; + } + + mcTabs.displayTab(m + '_tab', m + '_panel'); + document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none"; + document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none"; + this.lastMode = m; + } + }, + + searchNext : function(a) { + var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0; + + // Get input + f = document.forms[0]; + s = f[m + '_panel_searchstring'].value; + b = f[m + '_panel_backwardsu'].checked; + ca = f[m + '_panel_casesensitivebox'].checked; + rs = f['replace_panel_replacestring'].value; + + if (tinymce.isIE) { + r = ed.getDoc().selection.createRange(); + } + + if (s == '') + return; + + function fix() { + // Correct Firefox graphics glitches + // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions? + r = se.getRng().cloneRange(); + ed.getDoc().execCommand('SelectAll', false, null); + se.setRng(r); + }; + + function replace() { + ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE + }; + + // IE flags + if (ca) + fl = fl | 4; + + switch (a) { + case 'all': + // Move caret to beginning of text + ed.execCommand('SelectAll'); + ed.selection.collapse(true); + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + while (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + replace(); + fo = 1; + + if (b) { + r.moveEnd("character", -(rs.length)); // Otherwise will loop forever + } + } + + tinyMCEPopup.storeSelection(); + } else { + while (w.find(s, ca, b, false, false, false, false)) { + replace(); + fo = 1; + } + } + + if (fo) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced')); + else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + return; + + case 'current': + if (!ed.selection.isCollapsed()) + replace(); + + break; + } + + se.collapse(b); + r = se.getRng(); + + // Whats the point + if (!s) + return; + + if (tinymce.isIE) { + ed.focus(); + r = ed.getDoc().selection.createRange(); + + if (r.findText(s, b ? -1 : 1, fl)) { + r.scrollIntoView(); + r.select(); + } else + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + + tinyMCEPopup.storeSelection(); + } else { + if (!w.find(s, ca, b, false, false, false, false)) + tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound')); + else + fix(); + } + } +}; + +tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog); diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js new file mode 100644 index 0000000..370959a --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js @@ -0,0 +1,16 @@ +tinyMCE.addI18n('en.searchreplace_dlg',{ +searchnext_desc:"Find again", +notfound:"The search has been completed. The search string could not be found.", +search_title:"Find", +replace_title:"Find/Replace", +allreplaced:"All occurrences of the search string were replaced.", +findwhat:"Find what", +replacewith:"Replace with", +direction:"Direction", +up:"Up", +down:"Down", +mcase:"Match case", +findnext:"Find next", +replace:"Replace", +replaceall:"Replace all" +}); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm new file mode 100644 index 0000000..5a22d8a --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm @@ -0,0 +1,100 @@ + + + + {#searchreplace_dlg.replace_title} + + + + + + + + +
+ + +
+
+ + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + + +
+
+
+ +
+ +
+ + + + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/cell.htm b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/cell.htm new file mode 100644 index 0000000..4afb6af --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/cell.htm @@ -0,0 +1,178 @@ + + + + {#table_dlg.cell_title} + + + + + + + + +
+ + +
+
+
+ {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ +
+
+
+ +
+
+ {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + +
 
+
+ + + + + +
 
+
+ + + + + +
 
+
+
+
+
+ +
+
+ +
+ + + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/cell.css b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/cell.css new file mode 100644 index 0000000..a067ecd --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/cell.css @@ -0,0 +1,17 @@ +/* CSS file for cell dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#class { + width: 150px; +} \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/row.css b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/row.css new file mode 100644 index 0000000..1f7755d --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/row.css @@ -0,0 +1,25 @@ +/* CSS file for row dialog in the table plugin */ + +.panel_wrapper div.current { + height: 200px; +} + +.advfield { + width: 200px; +} + +#action { + margin-bottom: 3px; +} + +#rowtype,#align,#valign,#class,#height { + width: 150px; +} + +#height { + width: 50px; +} + +.col2 { + padding-left: 20px; +} diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/table.css b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/table.css new file mode 100644 index 0000000..d11c3f6 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/css/table.css @@ -0,0 +1,13 @@ +/* CSS file for table dialog in the table plugin */ + +.panel_wrapper div.current { + height: 245px; +} + +.advfield { + width: 200px; +} + +#class { + width: 150px; +} diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/editor_plugin.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/editor_plugin.js new file mode 100644 index 0000000..727ae4e --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/editor_plugin.js @@ -0,0 +1 @@ +(function(c){var d=c.each;function b(f,g){var h=g.ownerDocument,e=h.createRange(),j;e.setStartBefore(g);e.setEnd(f.endContainer,f.endOffset);j=h.createElement("body");j.appendChild(e.cloneContents());return j.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(H,G,K){var f,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;f=[];d(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);d(O,function(P,Q){Q+=M;d(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(f[Q]){while(f[Q][R]){R++}}U=h(W,"rowspan");V=h(W,"colspan");for(T=Q;T'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!c.isIE){M.innerHTML='
'}}return M}function q(){var M=G.createRng();d(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}d(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=f[Math.min(f.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=f[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=f[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(e(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(e(P.cells[0]),P.cells[0])}}}}}function C(){d(f,function(M,N){d(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=h(P,"colspan");R=h(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&f[M-1][R]){V=f[M-1][R].elm;O=h(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=e(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function g(N){var O,M;d(f,function(P,Q){d(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});d(f,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=h(P,"colspan");Q=h(P,"rowspan");if(R==1){if(!N){G.insertAfter(e(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(e(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];d(f,function(N,O){d(N,function(Q,P){if(j(Q)&&c.inArray(M,P)===-1){d(f,function(T){var R=T[P].elm,S;S=h(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");d(Q.cells,function(S){var T=h(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);d(f[R.y],function(S){var T;S=S.elm;if(S!=O){T=h(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();d(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();d(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;d(f,function(S){var R;Q=0;d(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}d(O,function(T){var S=T.cells.length,R;for(i=0;iN){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=f[y][P];if(!S.real){if(P-(S.colspan-1)N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(f[y][x]){G.addClass(f[y][x].elm,"mceSelected")}}}}}c.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:g,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}c.create("tinymce.plugins.TablePlugin",{init:function(f,g){var e,k;function j(n){var m=f.selection,l=f.dom.getParent(n||m.getNode(),"table");if(l){return new a(l,f.dom,m)}}function h(){f.getBody().style.webkitUserSelect="";f.dom.removeClass(f.dom.select("td.mceSelected,th.mceSelected"),"mceSelected")}d([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(l){f.addButton(l[0],{title:l[1],cmd:l[2],ui:l[3]})});if(!c.isIE){f.onClick.add(function(l,m){m=m.target;if(m.nodeName==="TABLE"){l.selection.select(m);l.nodeChanged()}})}f.onPreProcess.add(function(m,n){var l,o,p,r=m.dom,q;l=r.select("table",n.node);o=l.length;while(o--){p=l[o];r.setAttrib(p,"data-mce-style","");if((q=r.getAttrib(p,"width"))){r.setStyle(p,"width",q);r.setAttrib(p,"width","")}if((q=r.getAttrib(p,"height"))){r.setStyle(p,"height",q);r.setAttrib(p,"height","")}}});f.onNodeChange.add(function(m,l,q){var o;q=m.selection.getStart();o=m.dom.getParent(q,"td,th,caption");l.setActive("table",q.nodeName==="TABLE"||!!o);if(o&&o.nodeName==="CAPTION"){o=0}l.setDisabled("delete_table",!o);l.setDisabled("delete_col",!o);l.setDisabled("delete_table",!o);l.setDisabled("delete_row",!o);l.setDisabled("col_after",!o);l.setDisabled("col_before",!o);l.setDisabled("row_after",!o);l.setDisabled("row_before",!o);l.setDisabled("row_props",!o);l.setDisabled("cell_props",!o);l.setDisabled("split_cells",!o);l.setDisabled("merge_cells",!o)});f.onInit.add(function(m){var l,p,q=m.dom,n;e=m.windowManager;m.onMouseDown.add(function(r,s){if(s.button!=2){h();p=q.getParent(s.target,"td,th");l=q.getParent(p,"table")}});q.bind(m.getDoc(),"mouseover",function(v){var t,s,u=v.target;if(p&&(n||u!=p)&&(u.nodeName=="TD"||u.nodeName=="TH")){s=q.getParent(u,"table");if(s==l){if(!n){n=j(s);n.setStartCell(p);m.getBody().style.webkitUserSelect="none"}n.setEndCell(u)}t=m.selection.getSel();try{if(t.removeAllRanges){t.removeAllRanges()}else{t.empty()}}catch(r){}v.preventDefault()}});m.onMouseUp.add(function(A,B){var s,u=A.selection,C,D=u.getSel(),r,v,t,z;if(p){if(n){A.getBody().style.webkitUserSelect=""}function w(E,G){var F=new c.dom.TreeWalker(E,E);do{if(E.nodeType==3&&c.trim(E.nodeValue).length!=0){if(G){s.setStart(E,0)}else{s.setEnd(E,E.nodeValue.length)}return}if(E.nodeName=="BR"){if(G){s.setStartBefore(E)}else{s.setEndBefore(E)}return}}while(E=(G?F.next():F.prev()))}C=q.select("td.mceSelected,th.mceSelected");if(C.length>0){s=q.createRng();v=C[0];z=C[C.length-1];w(v,1);r=new c.dom.TreeWalker(v,q.getParent(C[0],"table"));do{if(v.nodeName=="TD"||v.nodeName=="TH"){if(!q.hasClass(v,"mceSelected")){break}t=v}}while(v=r.next());w(t);u.setRng(s)}A.nodeChanged();p=n=l=null}});m.onKeyUp.add(function(r,s){h()});if(m&&m.plugins.contextmenu){m.plugins.contextmenu.onContextMenu.add(function(t,r,v){var w,u=m.selection,s=u.getNode()||m.getBody();if(m.dom.getParent(v,"td")||m.dom.getParent(v,"th")||m.dom.select("td.mceSelected,th.mceSelected").length){r.removeAll();if(s.nodeName=="A"&&!m.dom.getAttrib(s,"name")){r.add({title:"advanced.link_desc",icon:"link",cmd:m.plugins.advlink?"mceAdvLink":"mceLink",ui:true});r.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});r.addSeparator()}if(s.nodeName=="IMG"&&s.className.indexOf("mceItem")==-1){r.add({title:"advanced.image_desc",icon:"image",cmd:m.plugins.advimage?"mceAdvImage":"mceImage",ui:true});r.addSeparator()}r.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});r.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});r.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});r.addSeparator();w=r.addMenu({title:"table.cell"});w.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});w.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});w.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});w=r.addMenu({title:"table.row"});w.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});w.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});w.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});w.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});w.addSeparator();w.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});w.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});w.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!k);w.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!k);w=r.addMenu({title:"table.col"});w.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});w.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});w.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{r.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(!c.isIE){function o(){var r;for(r=m.getBody().lastChild;r&&r.nodeType==3&&!r.nodeValue.length;r=r.previousSibling){}if(r&&r.nodeName=="TABLE"){m.dom.add(m.getBody(),"p",null,'
')}}if(c.isGecko){m.onKeyDown.add(function(s,u){var r,t,v=s.dom;if(u.keyCode==37||u.keyCode==38){r=s.selection.getRng();t=v.getParent(r.startContainer,"table");if(t&&s.getBody().firstChild==t){if(b(r,t)){r=v.createRng();r.setStartBefore(t);r.setEndBefore(t);s.selection.setRng(r);u.preventDefault()}}}})}m.onKeyUp.add(o);m.onSetContent.add(o);m.onVisualAid.add(o);m.onPreProcess.add(function(r,t){var s=t.node.lastChild;if(s&&s.childNodes.length==1&&s.firstChild.nodeName=="BR"){r.dom.remove(s)}});o()}});d({mceTableSplitCells:function(l){l.split()},mceTableMergeCells:function(m){var n,o,l;l=f.dom.getParent(f.selection.getNode(),"th,td");if(l){n=l.rowSpan;o=l.colSpan}if(!f.dom.select("td.mceSelected,th.mceSelected").length){e.open({url:g+"/merge_cells.htm",width:240+parseInt(f.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(f.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:n,cols:o,onaction:function(p){m.merge(l,p.cols,p.rows)},plugin_url:g})}else{m.merge()}},mceTableInsertRowBefore:function(l){l.insertRow(true)},mceTableInsertRowAfter:function(l){l.insertRow()},mceTableInsertColBefore:function(l){l.insertCol(true)},mceTableInsertColAfter:function(l){l.insertCol()},mceTableDeleteCol:function(l){l.deleteCols()},mceTableDeleteRow:function(l){l.deleteRows()},mceTableCutRow:function(l){k=l.cutRows()},mceTableCopyRow:function(l){k=l.copyRows()},mceTablePasteRowBefore:function(l){l.pasteRows(k,true)},mceTablePasteRowAfter:function(l){l.pasteRows(k)},mceTableDelete:function(l){l.deleteTable()}},function(m,l){f.addCommand(l,function(){var n=j();if(n){m(n);f.execCommand("mceRepaint");h()}})});d({mceInsertTable:function(l){e.open({url:g+"/table.htm",width:400+parseInt(f.getLang("table.table_delta_width",0)),height:320+parseInt(f.getLang("table.table_delta_height",0)),inline:1},{plugin_url:g,action:l?l.action:0})},mceTableRowProps:function(){e.open({url:g+"/row.htm",width:400+parseInt(f.getLang("table.rowprops_delta_width",0)),height:295+parseInt(f.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:g})},mceTableCellProps:function(){e.open({url:g+"/cell.htm",width:400+parseInt(f.getLang("table.cellprops_delta_width",0)),height:295+parseInt(f.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:g})}},function(m,l){f.addCommand(l,function(n,o){m(o)})})}});c.PluginManager.add("table",c.plugins.TablePlugin)})(tinymce); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/cell.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/cell.js new file mode 100644 index 0000000..45e6061 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/js/cell.js @@ -0,0 +1,284 @@ +tinyMCEPopup.requireLangPack(); + +var ed; + +function init() { + ed = tinyMCEPopup.editor; + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') + + var inst = ed; + var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); + var formObj = document.forms[0]; + var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); + + // Get table cell data + var celltype = tdElm.nodeName.toLowerCase(); + var align = ed.dom.getAttrib(tdElm, 'align'); + var valign = ed.dom.getAttrib(tdElm, 'valign'); + var width = trimSize(getStyle(tdElm, 'width', 'width')); + var height = trimSize(getStyle(tdElm, 'height', 'height')); + var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); + var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); + var className = ed.dom.getAttrib(tdElm, 'class'); + var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + var id = ed.dom.getAttrib(tdElm, 'id'); + var lang = ed.dom.getAttrib(tdElm, 'lang'); + var dir = ed.dom.getAttrib(tdElm, 'dir'); + var scope = ed.dom.getAttrib(tdElm, 'scope'); + + // Setup form + addClassesToList('class', 'table_cell_styles'); + TinyMCE_EditableSelects.init(); + + if (!ed.dom.hasClass(tdElm, 'mceSelected')) { + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.backgroundimage.value = backgroundimage; + formObj.width.value = width; + formObj.height.value = height; + formObj.id.value = id; + formObj.lang.value = lang; + formObj.style.value = ed.dom.serializeStyle(st); + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'valign', valign); + selectByValue(formObj, 'class', className, true, true); + selectByValue(formObj, 'celltype', celltype); + selectByValue(formObj, 'dir', dir); + selectByValue(formObj, 'scope', scope); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + } else + tinyMCEPopup.dom.hide('action'); +} + +function updateAction() { + var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; + + tinyMCEPopup.restoreSelection(); + el = ed.selection.getStart(); + tdElm = ed.dom.getParent(el, "td,th"); + trElm = ed.dom.getParent(el, "tr"); + tableElm = ed.dom.getParent(el, "table"); + + // Cell is selected + if (ed.dom.hasClass(tdElm, 'mceSelected')) { + // Update all selected sells + tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { + updateCell(td); + }); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (getSelectValue(formObj, 'action')) { + case "cell": + var celltype = getSelectValue(formObj, 'celltype'); + var scope = getSelectValue(formObj, 'scope'); + + function doUpdate(s) { + if (s) { + updateCell(tdElm); + + ed.addVisual(); + ed.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + } + }; + + if (ed.getParam("accessibility_warnings", 1)) { + if (celltype == "th" && scope == "") + tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); + else + doUpdate(1); + + return; + } + + updateCell(tdElm); + break; + + case "row": + var cell = trElm.firstChild; + + if (cell.nodeName != "TD" && cell.nodeName != "TH") + cell = nextCell(cell); + + do { + cell = updateCell(cell, true); + } while ((cell = nextCell(cell)) != null); + + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i 0) { + tinymce.each(tableElm.rows, function(tr) { + var i; + + for (i = 0; i < tr.cells.length; i++) { + if (dom.hasClass(tr.cells[i], 'mceSelected')) { + updateRow(tr, true); + return; + } + } + }); + + inst.addVisual(); + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + tinyMCEPopup.close(); + return; + } + + switch (action) { + case "row": + updateRow(trElm); + break; + + case "all": + var rows = tableElm.getElementsByTagName("tr"); + + for (var i=0; i colLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit)); + return false; + } else if (rowLimit && rows > rowLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit)); + return false; + } else if (cellLimit && cols * rows > cellLimit) { + tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit)); + return false; + } + + // Update table + if (action == "update") { + dom.setAttrib(elm, 'cellPadding', cellpadding, true); + dom.setAttrib(elm, 'cellSpacing', cellspacing, true); + dom.setAttrib(elm, 'border', border); + dom.setAttrib(elm, 'align', align); + dom.setAttrib(elm, 'frame', frame); + dom.setAttrib(elm, 'rules', rules); + dom.setAttrib(elm, 'class', className); + dom.setAttrib(elm, 'style', style); + dom.setAttrib(elm, 'id', id); + dom.setAttrib(elm, 'summary', summary); + dom.setAttrib(elm, 'dir', dir); + dom.setAttrib(elm, 'lang', lang); + + capEl = inst.dom.select('caption', elm)[0]; + + if (capEl && !caption) + capEl.parentNode.removeChild(capEl); + + if (!capEl && caption) { + capEl = elm.ownerDocument.createElement('caption'); + + if (!tinymce.isIE) + capEl.innerHTML = '
'; + + elm.insertBefore(capEl, elm.firstChild); + } + + if (width && inst.settings.inline_styles) { + dom.setStyle(elm, 'width', width); + dom.setAttrib(elm, 'width', ''); + } else { + dom.setAttrib(elm, 'width', width, true); + dom.setStyle(elm, 'width', ''); + } + + // Remove these since they are not valid XHTML + dom.setAttrib(elm, 'borderColor', ''); + dom.setAttrib(elm, 'bgColor', ''); + dom.setAttrib(elm, 'background', ''); + + if (height && inst.settings.inline_styles) { + dom.setStyle(elm, 'height', height); + dom.setAttrib(elm, 'height', ''); + } else { + dom.setAttrib(elm, 'height', height, true); + dom.setStyle(elm, 'height', ''); + } + + if (background != '') + elm.style.backgroundImage = "url('" + background + "')"; + else + elm.style.backgroundImage = ''; + +/* if (tinyMCEPopup.getParam("inline_styles")) { + if (width != '') + elm.style.width = getCSSSize(width); + }*/ + + if (bordercolor != "") { + elm.style.borderColor = bordercolor; + elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; + elm.style.borderWidth = border == "" ? "1px" : border; + } else + elm.style.borderColor = ''; + + elm.style.backgroundColor = bgcolor; + elm.style.height = getCSSSize(height); + + inst.addVisual(); + + // Fix for stange MSIE align bug + //elm.outerHTML = elm.outerHTML; + + inst.nodeChanged(); + inst.execCommand('mceEndUndoLevel'); + + // Repaint if dimensions changed + if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) + inst.execCommand('mceRepaint'); + + tinyMCEPopup.close(); + return true; + } + + // Create new table + html += ''); + + tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) { + if (patt) + patt += ','; + + patt += n + ' ._mce_marker'; + }); + + tinymce.each(inst.dom.select(patt), function(n) { + inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n); + }); + + dom.setOuterHTML(dom.select('br._mce_marker')[0], html); + } else + inst.execCommand('mceInsertContent', false, html); + + tinymce.each(dom.select('table[data-mce-new]'), function(node) { + var td = dom.select('td', node); + + try { + // IE9 might fail to do this selection + inst.selection.select(td[0], true); + inst.selection.collapse(); + } catch (ex) { + // Ignore + } + + dom.setAttrib(node, 'data-mce-new', ''); + }); + + inst.addVisual(); + inst.execCommand('mceEndUndoLevel'); + + tinyMCEPopup.close(); +} + +function makeAttrib(attrib, value) { + var formObj = document.forms[0]; + var valueElm = formObj.elements[attrib]; + + if (typeof(value) == "undefined" || value == null) { + value = ""; + + if (valueElm) + value = valueElm.value; + } + + if (value == "") + return ""; + + // XML encode it + value = value.replace(/&/g, '&'); + value = value.replace(/\"/g, '"'); + value = value.replace(//g, '>'); + + return ' ' + attrib + '="' + value + '"'; +} + +function init() { + tinyMCEPopup.resizeToInnerSize(); + + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); + document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); + document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); + + var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', ''); + var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; + var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = ""; + var inst = tinyMCEPopup.editor, dom = inst.dom; + var formObj = document.forms[0]; + var elm = dom.getParent(inst.selection.getNode(), "table"); + + action = tinyMCEPopup.getWindowArg('action'); + + if (!action) + action = elm ? "update" : "insert"; + + if (elm && action != "insert") { + var rowsAr = elm.rows; + var cols = 0; + for (var i=0; i cols) + cols = rowsAr[i].cells.length; + + cols = cols; + rows = rowsAr.length; + + st = dom.parseStyle(dom.getAttrib(elm, "style")); + border = trimSize(getStyle(elm, 'border', 'borderWidth')); + cellpadding = dom.getAttrib(elm, 'cellpadding', ""); + cellspacing = dom.getAttrib(elm, 'cellspacing', ""); + width = trimSize(getStyle(elm, 'width', 'width')); + height = trimSize(getStyle(elm, 'height', 'height')); + bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); + bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); + align = dom.getAttrib(elm, 'align', align); + frame = dom.getAttrib(elm, 'frame'); + rules = dom.getAttrib(elm, 'rules'); + className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, '')); + id = dom.getAttrib(elm, 'id'); + summary = dom.getAttrib(elm, 'summary'); + style = dom.serializeStyle(st); + dir = dom.getAttrib(elm, 'dir'); + lang = dom.getAttrib(elm, 'lang'); + background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + formObj.caption.checked = elm.getElementsByTagName('caption').length > 0; + + orgTableWidth = width; + orgTableHeight = height; + + action = "update"; + formObj.insert.value = inst.getLang('update'); + } + + addClassesToList('class', "table_styles"); + TinyMCE_EditableSelects.init(); + + // Update form + selectByValue(formObj, 'align', align); + selectByValue(formObj, 'tframe', frame); + selectByValue(formObj, 'rules', rules); + selectByValue(formObj, 'class', className, true, true); + formObj.cols.value = cols; + formObj.rows.value = rows; + formObj.border.value = border; + formObj.cellpadding.value = cellpadding; + formObj.cellspacing.value = cellspacing; + formObj.width.value = width; + formObj.height.value = height; + formObj.bordercolor.value = bordercolor; + formObj.bgcolor.value = bgcolor; + formObj.id.value = id; + formObj.summary.value = summary; + formObj.style.value = style; + formObj.dir.value = dir; + formObj.lang.value = lang; + formObj.backgroundimage.value = background; + + updateColor('bordercolor_pick', 'bordercolor'); + updateColor('bgcolor_pick', 'bgcolor'); + + // Resize some elements + if (isVisible('backgroundimagebrowser')) + document.getElementById('backgroundimage').style.width = '180px'; + + // Disable some fields in update mode + if (action == "update") { + formObj.cols.disabled = true; + formObj.rows.disabled = true; + } +} + +function changedSize() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + +/* var width = formObj.width.value; + if (width != "") + st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : ""; + else + st['width'] = "";*/ + + var height = formObj.height.value; + if (height != "") + st['height'] = getCSSSize(height); + else + st['height'] = ""; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedBackgroundImage() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedBorder() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + // Update border width if the element has a color + if (formObj.border.value != "" && formObj.bordercolor.value != "") + st['border-width'] = formObj.border.value + "px"; + + formObj.style.value = dom.serializeStyle(st); +} + +function changedColor() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + st['background-color'] = formObj.bgcolor.value; + + if (formObj.bordercolor.value != "") { + st['border-color'] = formObj.bordercolor.value; + + // Add border-width if it's missing + if (!st['border-width']) + st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px"; + } + + formObj.style.value = dom.serializeStyle(st); +} + +function changedStyle() { + var formObj = document.forms[0]; + var st = dom.parseStyle(formObj.style.value); + + if (st['background-image']) + formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); + else + formObj.backgroundimage.value = ''; + + if (st['width']) + formObj.width.value = trimSize(st['width']); + + if (st['height']) + formObj.height.value = trimSize(st['height']); + + if (st['background-color']) { + formObj.bgcolor.value = st['background-color']; + updateColor('bgcolor_pick','bgcolor'); + } + + if (st['border-color']) { + formObj.bordercolor.value = st['border-color']; + updateColor('bordercolor_pick','bordercolor'); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/langs/en_dlg.js b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/langs/en_dlg.js new file mode 100644 index 0000000..8352d9f --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/langs/en_dlg.js @@ -0,0 +1,74 @@ +tinyMCE.addI18n('en.table_dlg',{ +general_tab:"General", +advanced_tab:"Advanced", +general_props:"General properties", +advanced_props:"Advanced properties", +rowtype:"Row in table part", +title:"Insert/Modify table", +width:"Width", +height:"Height", +cols:"Columns", +rows:"Rows", +cellspacing:"Cellspacing", +cellpadding:"Cellpadding", +border:"Border", +align:"Alignment", +align_default:"Default", +align_left:"Left", +align_right:"Right", +align_middle:"Center", +row_title:"Table row properties", +cell_title:"Table cell properties", +cell_type:"Cell type", +valign:"Vertical alignment", +align_top:"Top", +align_bottom:"Bottom", +bordercolor:"Border color", +bgcolor:"Background color", +merge_cells_title:"Merge table cells", +id:"Id", +style:"Style", +langdir:"Language direction", +langcode:"Language code", +mime:"Target MIME type", +ltr:"Left to right", +rtl:"Right to left", +bgimage:"Background image", +summary:"Summary", +td:"Data", +th:"Header", +cell_cell:"Update current cell", +cell_row:"Update all cells in row", +cell_all:"Update all cells in table", +row_row:"Update current row", +row_odd:"Update odd rows in table", +row_even:"Update even rows in table", +row_all:"Update all rows in table", +thead:"Table Head", +tbody:"Table Body", +tfoot:"Table Foot", +scope:"Scope", +rowgroup:"Row Group", +colgroup:"Col Group", +col_limit:"You've exceeded the maximum number of columns of {$cols}.", +row_limit:"You've exceeded the maximum number of rows of {$rows}.", +cell_limit:"You've exceeded the maximum number of cells of {$cells}.", +missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.", +caption:"Table caption", +frame:"Frame", +frame_none:"none", +frame_groups:"groups", +frame_rows:"rows", +frame_cols:"cols", +frame_all:"all", +rules:"Rules", +rules_void:"void", +rules_above:"above", +rules_below:"below", +rules_hsides:"hsides", +rules_lhs:"lhs", +rules_rhs:"rhs", +rules_vsides:"vsides", +rules_box:"box", +rules_border:"border" +}); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/merge_cells.htm b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/merge_cells.htm new file mode 100644 index 0000000..d231090 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/merge_cells.htm @@ -0,0 +1,32 @@ + + + + {#table_dlg.merge_cells_title} + + + + + + +
+
+ {#table_dlg.merge_cells_title} + + + + + + + + + +
:
:
+
+ +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/row.htm b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/row.htm new file mode 100644 index 0000000..c197ff6 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/row.htm @@ -0,0 +1,157 @@ + + + + {#table_dlg.row_title} + + + + + + + + +
+ + +
+
+
+ {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+
+
+ +
+
+ {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + + + + +
 
+
+ + + + + + +
 
+
+
+
+
+
+ +
+
+ +
+ + + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/plugins/table/table.htm b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/table.htm new file mode 100644 index 0000000..4a873b0 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/plugins/table/table.htm @@ -0,0 +1,188 @@ + + + + {#table_dlg.title} + + + + + + + + + + +
+ + +
+
+
+ {#table_dlg.general_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+ {#table_dlg.advanced_props} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + +
 
+
+ +
+ +
+ +
+ + + + + +
 
+
+ + + + + +
 
+
+
+
+
+ +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/about.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/about.htm new file mode 100644 index 0000000..7a97cb7 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/about.htm @@ -0,0 +1,52 @@ + + + + {#advanced_dlg.about_title} + + + + + + + +
+
+

{#advanced_dlg.about_title}

+

Version: ()

+

TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL + by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.

+

Copyright © 2003-2008, Moxiecode Systems AB, All rights reserved.

+

For more information about this software visit the TinyMCE website.

+ +
+ Got Moxie? +
+
+ +
+
+

{#advanced_dlg.about_loaded}

+ +
+
+ +

 

+
+
+ +
+
+
+
+ +
+ +
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/anchor.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/anchor.htm new file mode 100644 index 0000000..75c93b7 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/anchor.htm @@ -0,0 +1,26 @@ + + + + {#advanced_dlg.anchor_title} + + + + +
+ + + + + + + + +
{#advanced_dlg.anchor_title}
+ +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/charmap.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/charmap.htm new file mode 100644 index 0000000..2c3b3f2 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/charmap.htm @@ -0,0 +1,51 @@ + + + + {#advanced_dlg.charmap_title} + + + + + + + + + + + + + + + +
+ + + + + + + + + +
 
 
+
+ + + + + + + + + + + + + + + + +
 
 
 
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/color_picker.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/color_picker.htm new file mode 100644 index 0000000..ad1bb0f --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/color_picker.htm @@ -0,0 +1,74 @@ + + + + {#advanced_dlg.colorpicker_title} + + + + + + +
+ + +
+
+
+ {#advanced_dlg.colorpicker_picker_title} +
+ + +
+ +
+ +
+
+
+
+ +
+
+ {#advanced_dlg.colorpicker_palette_title} +
+ +
+ +
+
+
+ +
+
+ {#advanced_dlg.colorpicker_named_title} +
+ +
+ +
+ +
+ {#advanced_dlg.colorpicker_name} +
+
+
+
+ +
+ + +
+ +
+ +
+
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/editor_template.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/editor_template.js new file mode 100644 index 0000000..ba8dd4c --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/editor_template.js @@ -0,0 +1 @@ +(function(e){var d=e.DOM,b=e.dom.Event,h=e.extend,f=e.each,a=e.util.Cookie,g,c=e.explode;e.ThemeManager.requireLangPack("advanced");e.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(j,k){var l=this,m,i,n;l.editor=j;l.url=k;l.onResolveName=new e.util.Dispatcher(this);j.forcedHighContrastMode=j.settings.detect_highcontrast&&l._isHighContrast();j.settings.skin=j.forcedHighContrastMode?"highcontrast":j.settings.skin;l.settings=m=h({theme_advanced_path:true,theme_advanced_toolbar_location:"bottom",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:j.settings.readonly},j.settings);if(!m.font_size_style_values){m.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(e.is(m.theme_advanced_font_sizes,"string")){m.font_size_style_values=e.explode(m.font_size_style_values);m.font_size_classes=e.explode(m.font_size_classes||"");n={};j.settings.theme_advanced_font_sizes=m.theme_advanced_font_sizes;f(j.getParam("theme_advanced_font_sizes","","hash"),function(q,p){var o;if(p==q&&q>=1&&q<=7){p=q+" ("+l.sizes[q-1]+"pt)";o=m.font_size_classes[q-1];q=m.font_size_style_values[q-1]||(l.sizes[q-1]+"pt")}if(/^\s*\./.test(q)){o=q.replace(/\./g,"")}n[p]=o?{"class":o}:{fontSize:q}});m.theme_advanced_font_sizes=n}if((i=m.theme_advanced_path_location)&&i!="none"){m.theme_advanced_statusbar_location=m.theme_advanced_path_location}if(m.theme_advanced_statusbar_location=="none"){m.theme_advanced_statusbar_location=0}if(j.settings.content_css!==false){j.contentCSS.push(j.baseURI.toAbsolute(k+"/skins/"+j.settings.skin+"/content.css"))}j.onInit.add(function(){if(!j.settings.readonly){j.onNodeChange.add(l._nodeChanged,l);j.onKeyUp.add(l._updateUndoStatus,l);j.onMouseUp.add(l._updateUndoStatus,l);j.dom.bind(j.dom.getRoot(),"dragend",function(){l._updateUndoStatus(j)})}});j.onSetProgressState.add(function(q,o,r){var s,t=q.id,p;if(o){l.progressTimer=setTimeout(function(){s=q.getContainer();s=s.insertBefore(d.create("DIV",{style:"position:relative"}),s.firstChild);p=d.get(q.id+"_tbl");d.add(s,"div",{id:t+"_blocker","class":"mceBlocker",style:{width:p.clientWidth+2,height:p.clientHeight+2}});d.add(s,"div",{id:t+"_progress","class":"mceProgress",style:{left:p.clientWidth/2,top:p.clientHeight/2}})},r||0)}else{d.remove(t+"_blocker");d.remove(t+"_progress");clearTimeout(l.progressTimer)}});d.loadCSS(m.editor_css?j.documentBaseURI.toAbsolute(m.editor_css):k+"/skins/"+j.settings.skin+"/ui.css");if(m.skin_variant){d.loadCSS(k+"/skins/"+j.settings.skin+"/ui_"+m.skin_variant+".css")}},_isHighContrast:function(){var i,j=d.add(d.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});i=(d.getStyle(j,"background-color",true)+"").toLowerCase().replace(/ /g,"");d.remove(j);return i!="rgb(171,239,86)"&&i!="#abef56"},createControl:function(l,i){var j,k;if(k=i.createControl(l)){return k}switch(l){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((j=this.controls[l])){return i.createButton(l,{title:"advanced."+j[0],cmd:j[1],ui:j[2],value:j[3]})}},execCommand:function(k,j,l){var i=this["_"+k];if(i){i.call(this,j,l);return true}return false},_importClasses:function(k){var i=this.editor,j=i.controlManager.get("styleselect");if(j.getLength()==0){f(i.dom.getClasses(),function(n,l){var m="style_"+l;i.formatter.register(m,{inline:"span",attributes:{"class":n["class"]},selector:"*"});j.add(n["class"],m)})}},_createStyleSelect:function(m){var k=this,i=k.editor,j=i.controlManager,l;l=j.createListBox("styleselect",{title:"advanced.style_select",onselect:function(o){var p,n=[];f(l.items,function(q){n.push(q.value)});i.focus();i.undoManager.add();p=i.formatter.matchAll(n);if(!o||p[0]==o){if(p[0]){i.formatter.remove(p[0])}}else{i.formatter.apply(o)}i.undoManager.add();i.nodeChanged();return false}});i.onInit.add(function(){var o=0,n=i.getParam("style_formats");if(n){f(n,function(p){var q,r=0;f(p,function(){r++});if(r>1){q=p.name=p.name||"style_"+(o++);i.formatter.register(q,p);l.add(p.title,q)}else{l.add(p.title)}})}else{f(i.getParam("theme_advanced_styles","","hash"),function(r,q){var p;if(r){p="style_"+(o++);i.formatter.register(p,{inline:"span",classes:r,selector:"*"});l.add(k.editor.translate(q),p)}})}});if(l.getLength()==0){l.onPostRender.add(function(o,p){if(!l.NativeListBox){b.add(p.id+"_text","focus",k._importClasses,k);b.add(p.id+"_text","mousedown",k._importClasses,k);b.add(p.id+"_open","focus",k._importClasses,k);b.add(p.id+"_open","mousedown",k._importClasses,k)}else{b.add(p.id,"focus",k._importClasses,k)}})}return l},_createFontSelect:function(){var k,j=this,i=j.editor;k=i.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(l){var m=k.items[k.selectedIndex];if(!l&&m){i.execCommand("FontName",false,m.value);return}i.execCommand("FontName",false,l);k.select(function(n){return l==n});if(m&&m.value==l){k.select(null)}return false}});if(k){f(i.getParam("theme_advanced_fonts",j.settings.theme_advanced_fonts,"hash"),function(m,l){k.add(i.translate(l),m,{style:m.indexOf("dings")==-1?"font-family:"+m:""})})}return k},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(i){var o=n.items[n.selectedIndex];if(!i&&o){o=o.value;if(o["class"]){k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}return}if(i["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:i["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,i.fontSize)}n.select(function(p){return i==p});if(o&&(o.value.fontSize==i.fontSize||o.value["class"]==i["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(o,i){var p=o.fontSize;if(p>=1&&p<=7){p=m.sizes[parseInt(p)-1]+"pt"}n.add(i,o,{style:"font-size:"+p,"class":"mceFontSize"+(l++)+(" "+(o["class"]||""))})})}return n},_createBlockFormats:function(){var k,i={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},j=this;k=j.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(l){j.editor.execCommand("FormatBlock",false,l);return false}});if(k){f(j.editor.getParam("theme_advanced_blockformats",j.settings.theme_advanced_blockformats,"hash"),function(m,l){k.add(j.editor.translate(l!=m?l:i[m]),m,{"class":"mce_formatPreview mce_"+m})})}return k},_createForeColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_text_colors){l.colors=i}if(k.theme_advanced_default_foreground_color){l.default_color=k.theme_advanced_default_foreground_color}l.title="advanced.forecolor_desc";l.cmd="ForeColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("forecolor",l);return m},_createBackColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_background_colors){l.colors=i}if(k.theme_advanced_default_background_color){l.default_color=k.theme_advanced_default_background_color}l.title="advanced.backcolor_desc";l.cmd="HiliteColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("backcolor",l);return m},renderUI:function(k){var m,l,q,v=this,r=v.editor,w=v.settings,u,j,i;if(r.settings){r.settings.aria_label=w.aria_label+r.getLang("advanced.help_shortcut")}m=j=d.create("span",{role:"application","aria-labelledby":r.id+"_voice",id:r.id+"_parent","class":"mceEditor "+r.settings.skin+"Skin"+(w.skin_variant?" "+r.settings.skin+"Skin"+v._ufirst(w.skin_variant):"")});d.add(m,"span",{"class":"mceVoiceLabel",style:"display:none;",id:r.id+"_voice"},w.aria_label);if(!d.boxModel){m=d.add(m,"div",{"class":"mceOldBoxModel"})}m=u=d.add(m,"table",{role:"presentation",id:r.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});m=q=d.add(m,"tbody");switch((w.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":l=v._rowLayout(w,q,k);break;case"customlayout":l=r.execCallback("theme_advanced_custom_layout",w,q,k,j);break;default:l=v._simpleLayout(w,q,k,j)}m=k.targetNode;i=u.rows;d.addClass(i[0],"mceFirst");d.addClass(i[i.length-1],"mceLast");f(d.select("tr",q),function(o){d.addClass(o.firstChild,"mceFirst");d.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(d.get(w.theme_advanced_toolbar_container)){d.get(w.theme_advanced_toolbar_container).appendChild(j)}else{d.insertAfter(j,m)}b.add(r.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){v._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return b.cancel(n)}});if(!r.getParam("accessibility_focus")){b.add(d.add(j,"a",{href:"#"},""),"focus",function(){tinyMCE.get(r.id).focus()})}if(w.theme_advanced_toolbar_location=="external"){k.deltaHeight=0}v.deltaHeight=k.deltaHeight;k.targetNode=null;r.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){v.toolbarGroup.focus();return b.cancel(n)}else{if(n.keyCode===o){d.get(p.id+"_path_row").focus();return b.cancel(n)}}}});r.addShortcut("alt+0","","mceShortcuts",v);return{iframeContainer:l,editorContainer:r.id+"_parent",sizeContainer:u,deltaHeight:k.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:e.majorVersion+"."+e.minorVersion}},resizeBy:function(i,j){var k=d.get(this.editor.id+"_ifr");this.resizeTo(k.clientWidth+i,k.clientHeight+j)},resizeTo:function(i,m,k){var j=this.editor,l=this.settings,n=d.get(j.id+"_tbl"),o=d.get(j.id+"_ifr");i=Math.max(l.theme_advanced_resizing_min_width||100,i);m=Math.max(l.theme_advanced_resizing_min_height||100,m);i=Math.min(l.theme_advanced_resizing_max_width||65535,i);m=Math.min(l.theme_advanced_resizing_max_height||65535,m);d.setStyle(n,"height","");d.setStyle(o,"height",m);if(l.theme_advanced_resize_horizontal){d.setStyle(n,"width","");d.setStyle(o,"width",i);if(i"));d.setHTML(l,q.join(""))},_addStatusBar:function(m,j){var k,v=this,p=v.editor,w=v.settings,i,q,u,l;k=d.add(m,"tr");k=l=d.add(k,"td",{"class":"mceStatusbar"});k=d.add(k,"div",{id:p.id+"_path_row",role:"group","aria-labelledby":p.id+"_path_voice"});if(w.theme_advanced_path){d.add(k,"span",{id:p.id+"_path_voice"},p.translate("advanced.path"));d.add(k,"span",{},": ")}else{d.add(k,"span",{}," ")}if(w.theme_advanced_resizing){d.add(l,"a",{id:p.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize"});if(w.theme_advanced_resizing_use_cookie){p.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+p.id+"_size"),r=d.get(p.id+"_tbl");if(!n){return}v.resizeTo(n.cw,n.ch)})}p.onPostRender.add(function(){b.add(p.id+"_resize","click",function(n){n.preventDefault()});b.add(p.id+"_resize","mousedown",function(D){var t,r,s,o,C,z,A,F,n,E,x;function y(G){G.preventDefault();n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E)}function B(G){b.remove(d.doc,"mousemove",t);b.remove(p.getDoc(),"mousemove",r);b.remove(d.doc,"mouseup",s);b.remove(p.getDoc(),"mouseup",o);n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E,true)}D.preventDefault();C=D.screenX;z=D.screenY;x=d.get(v.editor.id+"_ifr");A=n=x.clientWidth;F=E=x.clientHeight;t=b.add(d.doc,"mousemove",y);r=b.add(p.getDoc(),"mousemove",y);s=b.add(d.doc,"mouseup",B);o=b.add(p.getDoc(),"mouseup",B)})})}j.deltaHeight-=21;k=m=null},_updateUndoStatus:function(j){var i=j.controlManager;i.setDisabled("undo",!j.undoManager.hasUndo()&&!j.typing);i.setDisabled("redo",!j.undoManager.hasRedo())},_nodeChanged:function(m,r,D,q,E){var y=this,C,F=0,x,G,z=y.settings,w,k,u,B,l,j,i;e.each(y.stateControls,function(n){r.setActive(n,m.queryCommandState(y.controls[n][1]))});function o(p){var s,n=E.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s0){y.statusKeyboardNavigation=new e.ui.KeyboardNavigation({root:m.id+"_path_row",items:d.select("a",C),excludeFromTabOrder:true,onCancel:function(){m.focus()}},d)}}},_sel:function(i){this.editor.execCommand("mceSelectNodeDepth",false,i)},_mceInsertAnchor:function(k,j){var i=this.editor;i.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(i.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(i.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var i=this.editor;i.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(i.getLang("advanced.charmap_delta_width",0)),height:250+parseInt(i.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var i=this.editor;i.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var i=this.editor;i.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(k,j){var i=this.editor;j=j||{};i.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(i.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(i.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:j.color,func:j.func,theme_url:this.url})},_mceCodeEditor:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(i.getParam("theme_advanced_source_editor_width",720)),height:parseInt(i.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(j,k){var i=this.editor;if(i.dom.getAttrib(i.selection.getNode(),"class").indexOf("mceItem")!=-1){return}i.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(i.getLang("advanced.image_delta_width",0)),height:275+parseInt(i.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(i.getLang("advanced.link_delta_width",0)),height:200+parseInt(i.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var i=this.editor;i.windowManager.confirm("advanced.newdocument",function(j){if(j){i.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var i=this;this._mceColorPicker(0,{color:i.fgColor,func:function(j){i.fgColor=j;i.editor.execCommand("ForeColor",false,j)}})},_mceBackColor:function(){var i=this;this._mceColorPicker(0,{color:i.bgColor,func:function(j){i.bgColor=j;i.editor.execCommand("HiliteColor",false,j)}})},_ufirst:function(i){return i.substring(0,1).toUpperCase()+i.substring(1)}});e.ThemeManager.add("advanced",e.themes.AdvancedTheme)}(tinymce)); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/image.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/image.htm new file mode 100644 index 0000000..b8ba729 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/image.htm @@ -0,0 +1,80 @@ + + + + {#advanced_dlg.image_title} + + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
 
+ x +
+
+
+ +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/colorpicker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4c542d107b25f68a9d4f9d7a109d0565d1f1437 GIT binary patch literal 3189 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 literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/flash.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/flash.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a GIT binary patch literal 241 zcmVOzlLa+Za}7>m0&NpCfJ0FQc3~F7DE)S%o1)Qi1n@vxX46qnD4hRS-NE*Pw!4UvE=#^N( literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/icons.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/icons.gif new file mode 100644 index 0000000000000000000000000000000000000000..e46de5333082869b9bdab2576a554a2f9d01a966 GIT binary patch literal 11794 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 F{{gR&nqvR} literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/iframe.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/iframe.gif new file mode 100644 index 0000000000000000000000000000000000000000..410c7ad084db698e9f35e3230233aa4040682566 GIT binary patch literal 600 zcmZ?wbhEHb6krfwcoxm@|NsB$<##6SeDUYszh8g<{{H*-%a7k_-3KZc-T3+YPwBiX zzyAIE^Y`z!U%$Wp{QdX;|FQ*Fw;jIy{pasbUw?o3{yVB>Q_sRgx-G9iegFLZcfrha#d9w;%sU=Zx~6K$tw~$%z4`#O^Y@3Z zKV#~)MpSKh@#b63l#}6=>yq2|{`&JLqwny)|NnC)o%r$l&-Y)yKYjo8?#quSuRaGB zt_&<%`RV)bl#YEr{`~p)?RU|v^Y1_Z`u*?Ux8J`*N>>+5JlMAOZr+qr@y$D{mfVhO z+zt#7208-8pDc_F4ABfaAUi>E!oa?@A-bu#r8Qd6oKeb*Lx9UTz)0QBL@+vxY38ii zvqGa87c5+~h&?)zVa3W-D;=U$88}^qMBJ^ERU|z17!;#97+4%Rd1XcXJq#>t8KR;E z7zr5i6BgH5y=gAD)sAQlGB zh8au?j!n~E(Pks?@!j1fR&j*RWY8GF(-=x H6d0@lT&58X literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/pagebreak.gif new file mode 100644 index 0000000000000000000000000000000000000000..acdf4085f3068c4c0a1d6855f4b80dae8bac3068 GIT binary patch literal 325 zcmV-L0lNN2Nk%w1VPpUd0J9GO`>v<{=;ru;boX6P{`2zsmyZ3>&HK5t_;hIbi-G;z z+4`cI{KdfcXj}GCLjV8&A^8LW000jFEC2ui0Av6R000E?@X1N5y*TU5yZ>M)j$|1M z4Ouvb$pHu>IW8BZq|n;U0s@T!VM5~w1_+1X!EiVl!&PITYdjT!ffYfpt{jAfv%qvh zA63WUHSlr7LkeyaV4(pM0f50(II?RD4RtMg4-E+tFhdAy5{3c=0}3Bg9Y8`B2To20 zR%SO62L%9}0H+dzoKB$+2TOwzUrwi{XiBM^4V#>63q3!LsU3u93zH8CdwqY%62;1g z0g8ze$k93lWExp`CUe|K4qOWk17ZeJ0|5pDP6+}};{>bI@lOWj=kf}r2sHp7w9-Ie XK%9UG6W(*AX-vY05F<*&5CH%?Gwy&_ literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/quicktime.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/quicktime.gif new file mode 100644 index 0000000000000000000000000000000000000000..3b0499145b16138249f653a1a3f2c80230fb292c GIT binary patch literal 303 zcmV+~0nq+ONk%w1VGsZi0K^{vH>m7Qv+~s9^fsC5ZpZP=*zu3F=Jxpf8k_5u%JNv6 z=md-84VLU4w)kSE=yI&-yw>b=v+SqE?+kq47pC+YrR?bJ^yu>Zyvpn;hTp*6^mM!O zu+8$^=JX7bb<~J01ZTA{q@86#&8&6~H`Ss{{?p%K!-p%L6P2TpFYz90?pD06UU# BbnE~C literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/realmedia.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/realmedia.gif new file mode 100644 index 0000000000000000000000000000000000000000..fdfe0b9ac05869ae845fdd828eaad97cc0c69dbc GIT binary patch literal 439 zcmV;o0Z9HwNk%w1VI=?(0K^{vQcz8xz}f&njBB06v9GQ`Jv%NdDHCI&z`wqZw$(Lw zuFTBL!Pe#<92tv>h)9OE1Xh}vnVEHSaeb-GByg#tqM_B*)YRkdSdqTuipLaF8n=^^LJP4|1^gGRdo_Rl+a*grZQ1hw@Zo1ikN$oB{QbRq&z?QIckdq1aE3;Fq_(WV>Kc7gjQtQh+9OrtFhn-)LUqD<|MOIl_!(Ed#pPRE;S)g;ew3>pd zn`Wa(lc2DGa)peFw3f88dp-|`@*)AXj;@(8hwDr|7Sxsp;&YxjN*Y{PBB!TIU|!b7Zgv0OaG5)&Kwi literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/trans.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/trans.gif new file mode 100644 index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a GIT binary patch literal 43 ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/video.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/img/video.gif new file mode 100644 index 0000000000000000000000000000000000000000..3570104077a3b3585f11403c8d4c3fc9351f35d2 GIT binary patch literal 597 zcmZ?wbhEHb6krfwc$UTx9v<%P?Ok48Ze?YanwpxCkzrwBk(ZYzB_&l;Qw!gmM(Ep^QBwbzIoSdAh>*2n> zz9l6k0Xw#(?);y5^ls9w|LObxXI*si^YfcEYu3*P8J(S-PEJlaNB-yTd}C^Ax@_69 zzP`Ryt5)S5`=P3;TDk9SbaeFk_3NiTjGA~aFd-pf@}tlxQ>GLb7jM|Gp`oFHlaq7F zk|nvhxjsHV=g+oST3Rl6T(N1>rn0iK*Ed>3MMVn>3vF#}**q!otE>Sy|^jDoRUBoBANRc=wyaJged$+}u3x zK}ld>puWET{||NozXdO-0f3nK$V8iNkVNKl+Guy1NeYie$3 zZB}=&Zex!RYq8YfVwgNdMpdFkN|rU!Fha}0m66q>CDxczOhH^pM9qvxw1p`;Rftzu zQJ&9}g>iErlc2ORw;aC_=l*6UJ=st%r*ISVV2jgDT<)w>rXHGL<21Kdo z#uyug^O^t z0hZGrt*x!>$1C!zn`W5@`ts6_uMW)2%<0NUEKIo?SIPPE=}U0}7Z(?JcX!y=*;bF< zCWz-=h7+2ao9)(dOHM;+X=xs9)%!~xc&ICMZdRYdUQ2$^@9y(6X3NCIz{cM7f^Z=Q z1_tQ95kgl8b%R%OiYTIo7LSdE^@}A^8LW002J#EC2ui01p5U000KOz@O0K01zUifeIyT9%!RzMDgehG|mwLz+Eh; z7Z~iE zrX?OfJ^>XeDJK)xJuWOB3_l1N0Ra>g4Gk^=ED0V6LI?>4;Q|6OB{LplLMRLg8U5-E J?0y6R06W6!pgRBn literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/about.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/about.js new file mode 100644 index 0000000..5b35845 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/about.js @@ -0,0 +1,73 @@ +tinyMCEPopup.requireLangPack(); + +function init() { + var ed, tcont; + + tinyMCEPopup.resizeToInnerSize(); + ed = tinyMCEPopup.editor; + + // Give FF some time + window.setTimeout(insertHelpIFrame, 10); + + tcont = document.getElementById('plugintablecontainer'); + document.getElementById('plugins_tab').style.display = 'none'; + + var html = ""; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + html += ''; + + tinymce.each(ed.plugins, function(p, n) { + var info; + + if (!p.getInfo) + return; + + html += ''; + + info = p.getInfo(); + + if (info.infourl != null && info.infourl != '') + html += ''; + else + html += ''; + + if (info.authorurl != null && info.authorurl != '') + html += ''; + else + html += ''; + + html += ''; + html += ''; + + document.getElementById('plugins_tab').style.display = ''; + + }); + + html += ''; + html += '
' + ed.getLang('advanced_dlg.about_plugin') + '' + ed.getLang('advanced_dlg.about_author') + '' + ed.getLang('advanced_dlg.about_version') + '
' + info.longname + '' + info.longname + '' + info.author + '' + info.author + '' + info.version + '
'; + + tcont.innerHTML = html; + + tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; + tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; +} + +function insertHelpIFrame() { + var html; + + if (tinyMCEPopup.getParam('docs_url')) { + html = ''; + document.getElementById('iframecontainer').innerHTML = html; + document.getElementById('help_tab').style.display = 'block'; + document.getElementById('help_tab').setAttribute("aria-hidden", "false"); + } +} + +tinyMCEPopup.onInit.add(init); diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/anchor.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/anchor.js new file mode 100644 index 0000000..e528e4f --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/anchor.js @@ -0,0 +1,42 @@ +tinyMCEPopup.requireLangPack(); + +var AnchorDialog = { + init : function(ed) { + var action, elm, f = document.forms[0]; + + this.editor = ed; + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + v = ed.dom.getAttrib(elm, 'name'); + + if (v) { + this.action = 'update'; + f.anchorName.value = v; + } + + f.insert.value = ed.getLang(elm ? 'update' : 'insert'); + }, + + update : function() { + var ed = this.editor, elm, name = document.forms[0].anchorName.value; + + if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) { + tinyMCEPopup.alert('advanced_dlg.anchor_invalid'); + return; + } + + tinyMCEPopup.restoreSelection(); + + if (this.action != 'update') + ed.selection.collapse(1); + + elm = ed.dom.getParent(ed.selection.getNode(), 'A'); + if (elm) + elm.name = name; + else + ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, '')); + + tinyMCEPopup.close(); + } +}; + +tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/charmap.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/charmap.js new file mode 100644 index 0000000..1cead6d --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/charmap.js @@ -0,0 +1,355 @@ +/** + * charmap.js + * + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing + */ + +tinyMCEPopup.requireLangPack(); + +var charmap = [ + [' ', ' ', true, 'no-break space'], + ['&', '&', true, 'ampersand'], + ['"', '"', true, 'quotation mark'], +// finance + ['¢', '¢', true, 'cent sign'], + ['€', '€', true, 'euro sign'], + ['£', '£', true, 'pound sign'], + ['¥', '¥', true, 'yen sign'], +// signs + ['©', '©', true, 'copyright sign'], + ['®', '®', true, 'registered sign'], + ['™', '™', true, 'trade mark sign'], + ['‰', '‰', true, 'per mille sign'], + ['µ', 'µ', true, 'micro sign'], + ['·', '·', true, 'middle dot'], + ['•', '•', true, 'bullet'], + ['…', '…', true, 'three dot leader'], + ['′', '′', true, 'minutes / feet'], + ['″', '″', true, 'seconds / inches'], + ['§', '§', true, 'section sign'], + ['¶', '¶', true, 'paragraph sign'], + ['ß', 'ß', true, 'sharp s / ess-zed'], +// quotations + ['‹', '‹', true, 'single left-pointing angle quotation mark'], + ['›', '›', true, 'single right-pointing angle quotation mark'], + ['«', '«', true, 'left pointing guillemet'], + ['»', '»', true, 'right pointing guillemet'], + ['‘', '‘', true, 'left single quotation mark'], + ['’', '’', true, 'right single quotation mark'], + ['“', '“', true, 'left double quotation mark'], + ['”', '”', true, 'right double quotation mark'], + ['‚', '‚', true, 'single low-9 quotation mark'], + ['„', '„', true, 'double low-9 quotation mark'], + ['<', '<', true, 'less-than sign'], + ['>', '>', true, 'greater-than sign'], + ['≤', '≤', true, 'less-than or equal to'], + ['≥', '≥', true, 'greater-than or equal to'], + ['–', '–', true, 'en dash'], + ['—', '—', true, 'em dash'], + ['¯', '¯', true, 'macron'], + ['‾', '‾', true, 'overline'], + ['¤', '¤', true, 'currency sign'], + ['¦', '¦', true, 'broken bar'], + ['¨', '¨', true, 'diaeresis'], + ['¡', '¡', true, 'inverted exclamation mark'], + ['¿', '¿', true, 'turned question mark'], + ['ˆ', 'ˆ', true, 'circumflex accent'], + ['˜', '˜', true, 'small tilde'], + ['°', '°', true, 'degree sign'], + ['−', '−', true, 'minus sign'], + ['±', '±', true, 'plus-minus sign'], + ['÷', '÷', true, 'division sign'], + ['⁄', '⁄', true, 'fraction slash'], + ['×', '×', true, 'multiplication sign'], + ['¹', '¹', true, 'superscript one'], + ['²', '²', true, 'superscript two'], + ['³', '³', true, 'superscript three'], + ['¼', '¼', true, 'fraction one quarter'], + ['½', '½', true, 'fraction one half'], + ['¾', '¾', true, 'fraction three quarters'], +// math / logical + ['ƒ', 'ƒ', true, 'function / florin'], + ['∫', '∫', true, 'integral'], + ['∑', '∑', true, 'n-ary sumation'], + ['∞', '∞', true, 'infinity'], + ['√', '√', true, 'square root'], + ['∼', '∼', false,'similar to'], + ['≅', '≅', false,'approximately equal to'], + ['≈', '≈', true, 'almost equal to'], + ['≠', '≠', true, 'not equal to'], + ['≡', '≡', true, 'identical to'], + ['∈', '∈', false,'element of'], + ['∉', '∉', false,'not an element of'], + ['∋', '∋', false,'contains as member'], + ['∏', '∏', true, 'n-ary product'], + ['∧', '∧', false,'logical and'], + ['∨', '∨', false,'logical or'], + ['¬', '¬', true, 'not sign'], + ['∩', '∩', true, 'intersection'], + ['∪', '∪', false,'union'], + ['∂', '∂', true, 'partial differential'], + ['∀', '∀', false,'for all'], + ['∃', '∃', false,'there exists'], + ['∅', '∅', false,'diameter'], + ['∇', '∇', false,'backward difference'], + ['∗', '∗', false,'asterisk operator'], + ['∝', '∝', false,'proportional to'], + ['∠', '∠', false,'angle'], +// undefined + ['´', '´', true, 'acute accent'], + ['¸', '¸', true, 'cedilla'], + ['ª', 'ª', true, 'feminine ordinal indicator'], + ['º', 'º', true, 'masculine ordinal indicator'], + ['†', '†', true, 'dagger'], + ['‡', '‡', true, 'double dagger'], +// alphabetical special chars + ['À', 'À', true, 'A - grave'], + ['Á', 'Á', true, 'A - acute'], + ['Â', 'Â', true, 'A - circumflex'], + ['Ã', 'Ã', true, 'A - tilde'], + ['Ä', 'Ä', true, 'A - diaeresis'], + ['Å', 'Å', true, 'A - ring above'], + ['Æ', 'Æ', true, 'ligature AE'], + ['Ç', 'Ç', true, 'C - cedilla'], + ['È', 'È', true, 'E - grave'], + ['É', 'É', true, 'E - acute'], + ['Ê', 'Ê', true, 'E - circumflex'], + ['Ë', 'Ë', true, 'E - diaeresis'], + ['Ì', 'Ì', true, 'I - grave'], + ['Í', 'Í', true, 'I - acute'], + ['Î', 'Î', true, 'I - circumflex'], + ['Ï', 'Ï', true, 'I - diaeresis'], + ['Ð', 'Ð', true, 'ETH'], + ['Ñ', 'Ñ', true, 'N - tilde'], + ['Ò', 'Ò', true, 'O - grave'], + ['Ó', 'Ó', true, 'O - acute'], + ['Ô', 'Ô', true, 'O - circumflex'], + ['Õ', 'Õ', true, 'O - tilde'], + ['Ö', 'Ö', true, 'O - diaeresis'], + ['Ø', 'Ø', true, 'O - slash'], + ['Œ', 'Œ', true, 'ligature OE'], + ['Š', 'Š', true, 'S - caron'], + ['Ù', 'Ù', true, 'U - grave'], + ['Ú', 'Ú', true, 'U - acute'], + ['Û', 'Û', true, 'U - circumflex'], + ['Ü', 'Ü', true, 'U - diaeresis'], + ['Ý', 'Ý', true, 'Y - acute'], + ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], + ['Þ', 'Þ', true, 'THORN'], + ['à', 'à', true, 'a - grave'], + ['á', 'á', true, 'a - acute'], + ['â', 'â', true, 'a - circumflex'], + ['ã', 'ã', true, 'a - tilde'], + ['ä', 'ä', true, 'a - diaeresis'], + ['å', 'å', true, 'a - ring above'], + ['æ', 'æ', true, 'ligature ae'], + ['ç', 'ç', true, 'c - cedilla'], + ['è', 'è', true, 'e - grave'], + ['é', 'é', true, 'e - acute'], + ['ê', 'ê', true, 'e - circumflex'], + ['ë', 'ë', true, 'e - diaeresis'], + ['ì', 'ì', true, 'i - grave'], + ['í', 'í', true, 'i - acute'], + ['î', 'î', true, 'i - circumflex'], + ['ï', 'ï', true, 'i - diaeresis'], + ['ð', 'ð', true, 'eth'], + ['ñ', 'ñ', true, 'n - tilde'], + ['ò', 'ò', true, 'o - grave'], + ['ó', 'ó', true, 'o - acute'], + ['ô', 'ô', true, 'o - circumflex'], + ['õ', 'õ', true, 'o - tilde'], + ['ö', 'ö', true, 'o - diaeresis'], + ['ø', 'ø', true, 'o slash'], + ['œ', 'œ', true, 'ligature oe'], + ['š', 'š', true, 's - caron'], + ['ù', 'ù', true, 'u - grave'], + ['ú', 'ú', true, 'u - acute'], + ['û', 'û', true, 'u - circumflex'], + ['ü', 'ü', true, 'u - diaeresis'], + ['ý', 'ý', true, 'y - acute'], + ['þ', 'þ', true, 'thorn'], + ['ÿ', 'ÿ', true, 'y - diaeresis'], + ['Α', 'Α', true, 'Alpha'], + ['Β', 'Β', true, 'Beta'], + ['Γ', 'Γ', true, 'Gamma'], + ['Δ', 'Δ', true, 'Delta'], + ['Ε', 'Ε', true, 'Epsilon'], + ['Ζ', 'Ζ', true, 'Zeta'], + ['Η', 'Η', true, 'Eta'], + ['Θ', 'Θ', true, 'Theta'], + ['Ι', 'Ι', true, 'Iota'], + ['Κ', 'Κ', true, 'Kappa'], + ['Λ', 'Λ', true, 'Lambda'], + ['Μ', 'Μ', true, 'Mu'], + ['Ν', 'Ν', true, 'Nu'], + ['Ξ', 'Ξ', true, 'Xi'], + ['Ο', 'Ο', true, 'Omicron'], + ['Π', 'Π', true, 'Pi'], + ['Ρ', 'Ρ', true, 'Rho'], + ['Σ', 'Σ', true, 'Sigma'], + ['Τ', 'Τ', true, 'Tau'], + ['Υ', 'Υ', true, 'Upsilon'], + ['Φ', 'Φ', true, 'Phi'], + ['Χ', 'Χ', true, 'Chi'], + ['Ψ', 'Ψ', true, 'Psi'], + ['Ω', 'Ω', true, 'Omega'], + ['α', 'α', true, 'alpha'], + ['β', 'β', true, 'beta'], + ['γ', 'γ', true, 'gamma'], + ['δ', 'δ', true, 'delta'], + ['ε', 'ε', true, 'epsilon'], + ['ζ', 'ζ', true, 'zeta'], + ['η', 'η', true, 'eta'], + ['θ', 'θ', true, 'theta'], + ['ι', 'ι', true, 'iota'], + ['κ', 'κ', true, 'kappa'], + ['λ', 'λ', true, 'lambda'], + ['μ', 'μ', true, 'mu'], + ['ν', 'ν', true, 'nu'], + ['ξ', 'ξ', true, 'xi'], + ['ο', 'ο', true, 'omicron'], + ['π', 'π', true, 'pi'], + ['ρ', 'ρ', true, 'rho'], + ['ς', 'ς', true, 'final sigma'], + ['σ', 'σ', true, 'sigma'], + ['τ', 'τ', true, 'tau'], + ['υ', 'υ', true, 'upsilon'], + ['φ', 'φ', true, 'phi'], + ['χ', 'χ', true, 'chi'], + ['ψ', 'ψ', true, 'psi'], + ['ω', 'ω', true, 'omega'], +// symbols + ['ℵ', 'ℵ', false,'alef symbol'], + ['ϖ', 'ϖ', false,'pi symbol'], + ['ℜ', 'ℜ', false,'real part symbol'], + ['ϑ','ϑ', false,'theta symbol'], + ['ϒ', 'ϒ', false,'upsilon - hook symbol'], + ['℘', '℘', false,'Weierstrass p'], + ['ℑ', 'ℑ', false,'imaginary part'], +// arrows + ['←', '←', true, 'leftwards arrow'], + ['↑', '↑', true, 'upwards arrow'], + ['→', '→', true, 'rightwards arrow'], + ['↓', '↓', true, 'downwards arrow'], + ['↔', '↔', true, 'left right arrow'], + ['↵', '↵', false,'carriage return'], + ['⇐', '⇐', false,'leftwards double arrow'], + ['⇑', '⇑', false,'upwards double arrow'], + ['⇒', '⇒', false,'rightwards double arrow'], + ['⇓', '⇓', false,'downwards double arrow'], + ['⇔', '⇔', false,'left right double arrow'], + ['∴', '∴', false,'therefore'], + ['⊂', '⊂', false,'subset of'], + ['⊃', '⊃', false,'superset of'], + ['⊄', '⊄', false,'not a subset of'], + ['⊆', '⊆', false,'subset of or equal to'], + ['⊇', '⊇', false,'superset of or equal to'], + ['⊕', '⊕', false,'circled plus'], + ['⊗', '⊗', false,'circled times'], + ['⊥', '⊥', false,'perpendicular'], + ['⋅', '⋅', false,'dot operator'], + ['⌈', '⌈', false,'left ceiling'], + ['⌉', '⌉', false,'right ceiling'], + ['⌊', '⌊', false,'left floor'], + ['⌋', '⌋', false,'right floor'], + ['⟨', '〈', false,'left-pointing angle bracket'], + ['⟩', '〉', false,'right-pointing angle bracket'], + ['◊', '◊', true, 'lozenge'], + ['♠', '♠', true, 'black spade suit'], + ['♣', '♣', true, 'black club suit'], + ['♥', '♥', true, 'black heart suit'], + ['♦', '♦', true, 'black diamond suit'], + [' ', ' ', false,'en space'], + [' ', ' ', false,'em space'], + [' ', ' ', false,'thin space'], + ['‌', '‌', false,'zero width non-joiner'], + ['‍', '‍', false,'zero width joiner'], + ['‎', '‎', false,'left-to-right mark'], + ['‏', '‏', false,'right-to-left mark'], + ['­', '­', false,'soft hyphen'] +]; + +tinyMCEPopup.onInit.add(function() { + tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); + addKeyboardNavigation(); +}); + +function addKeyboardNavigation(){ + var tableElm, cells, settings; + + cells = tinyMCEPopup.dom.select(".charmaplink", "charmapgroup"); + + settings ={ + root: "charmapgroup", + items: cells + }; + + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom); +} + +function renderCharMapHTML() { + var charsPerRow = 20, tdWidth=20, tdHeight=20, i; + var html = '
'+ + ''; + var cols=-1; + + for (i=0; i' + + '' + + charmap[i][1] + + ''; + if ((cols+1) % charsPerRow == 0) + html += ''; + } + } + + if (cols % charsPerRow > 0) { + var padd = charsPerRow - (cols % charsPerRow); + for (var i=0; i '; + } + + html += '
'; + html = html.replace(/<\/tr>/g, ''); + + return html; +} + +function insertChar(chr) { + tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); + + // Refocus in window + if (tinyMCEPopup.isWindow) + window.focus(); + + tinyMCEPopup.editor.focus(); + tinyMCEPopup.close(); +} + +function previewChar(codeA, codeB, codeN) { + var elmA = document.getElementById('codeA'); + var elmB = document.getElementById('codeB'); + var elmV = document.getElementById('codeV'); + var elmN = document.getElementById('codeN'); + + if (codeA=='#160;') { + elmV.innerHTML = '__'; + } else { + elmV.innerHTML = '&' + codeA; + } + + elmB.innerHTML = '&' + codeA; + elmA.innerHTML = '&' + codeB; + elmN.innerHTML = codeN; +} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/color_picker.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/color_picker.js new file mode 100644 index 0000000..7decac5 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/color_picker.js @@ -0,0 +1,329 @@ +tinyMCEPopup.requireLangPack(); + +var detail = 50, strhex = "0123456789ABCDEF", i, isMouseDown = false, isMouseOver = false; + +var colors = [ + "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", + "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", + "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", + "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", + "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", + "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", + "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", + "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", + "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", + "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", + "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", + "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", + "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", + "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", + "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", + "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", + "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", + "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", + "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", + "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", + "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", + "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", + "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", + "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", + "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", + "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", + "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" +]; + +var named = { + '#F0F8FF':'Alice Blue','#FAEBD7':'Antique White','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', + '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'Blanched Almond','#0000FF':'Blue','#8A2BE2':'Blue Violet','#A52A2A':'Brown', + '#DEB887':'Burly Wood','#5F9EA0':'Cadet Blue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'Cornflower Blue', + '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'Dark Blue','#008B8B':'Dark Cyan','#B8860B':'Dark Golden Rod', + '#A9A9A9':'Dark Gray','#A9A9A9':'Dark Grey','#006400':'Dark Green','#BDB76B':'Dark Khaki','#8B008B':'Dark Magenta','#556B2F':'Dark Olive Green', + '#FF8C00':'Darkorange','#9932CC':'Dark Orchid','#8B0000':'Dark Red','#E9967A':'Dark Salmon','#8FBC8F':'Dark Sea Green','#483D8B':'Dark Slate Blue', + '#2F4F4F':'Dark Slate Gray','#2F4F4F':'Dark Slate Grey','#00CED1':'Dark Turquoise','#9400D3':'Dark Violet','#FF1493':'Deep Pink','#00BFFF':'Deep Sky Blue', + '#696969':'Dim Gray','#696969':'Dim Grey','#1E90FF':'Dodger Blue','#B22222':'Fire Brick','#FFFAF0':'Floral White','#228B22':'Forest Green', + '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'Ghost White','#FFD700':'Gold','#DAA520':'Golden Rod','#808080':'Gray','#808080':'Grey', + '#008000':'Green','#ADFF2F':'Green Yellow','#F0FFF0':'Honey Dew','#FF69B4':'Hot Pink','#CD5C5C':'Indian Red','#4B0082':'Indigo','#FFFFF0':'Ivory', + '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'Lavender Blush','#7CFC00':'Lawn Green','#FFFACD':'Lemon Chiffon','#ADD8E6':'Light Blue', + '#F08080':'Light Coral','#E0FFFF':'Light Cyan','#FAFAD2':'Light Golden Rod Yellow','#D3D3D3':'Light Gray','#D3D3D3':'Light Grey','#90EE90':'Light Green', + '#FFB6C1':'Light Pink','#FFA07A':'Light Salmon','#20B2AA':'Light Sea Green','#87CEFA':'Light Sky Blue','#778899':'Light Slate Gray','#778899':'Light Slate Grey', + '#B0C4DE':'Light Steel Blue','#FFFFE0':'Light Yellow','#00FF00':'Lime','#32CD32':'Lime Green','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', + '#66CDAA':'Medium Aqua Marine','#0000CD':'Medium Blue','#BA55D3':'Medium Orchid','#9370D8':'Medium Purple','#3CB371':'Medium Sea Green','#7B68EE':'Medium Slate Blue', + '#00FA9A':'Medium Spring Green','#48D1CC':'Medium Turquoise','#C71585':'Medium Violet Red','#191970':'Midnight Blue','#F5FFFA':'Mint Cream','#FFE4E1':'Misty Rose','#FFE4B5':'Moccasin', + '#FFDEAD':'Navajo White','#000080':'Navy','#FDF5E6':'Old Lace','#808000':'Olive','#6B8E23':'Olive Drab','#FFA500':'Orange','#FF4500':'Orange Red','#DA70D6':'Orchid', + '#EEE8AA':'Pale Golden Rod','#98FB98':'Pale Green','#AFEEEE':'Pale Turquoise','#D87093':'Pale Violet Red','#FFEFD5':'Papaya Whip','#FFDAB9':'Peach Puff', + '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'Powder Blue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'Rosy Brown','#4169E1':'Royal Blue', + '#8B4513':'Saddle Brown','#FA8072':'Salmon','#F4A460':'Sandy Brown','#2E8B57':'Sea Green','#FFF5EE':'Sea Shell','#A0522D':'Sienna','#C0C0C0':'Silver', + '#87CEEB':'Sky Blue','#6A5ACD':'Slate Blue','#708090':'Slate Gray','#708090':'Slate Grey','#FFFAFA':'Snow','#00FF7F':'Spring Green', + '#4682B4':'Steel Blue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', + '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'White Smoke','#FFFF00':'Yellow','#9ACD32':'Yellow Green' +}; + +var namedLookup = {}; + +function init() { + var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')), key, value; + + tinyMCEPopup.resizeToInnerSize(); + + generatePicker(); + generateWebColors(); + generateNamedColors(); + + if (inputColor) { + changeFinalColor(inputColor); + + col = convertHexToRGB(inputColor); + + if (col) + updateLight(col.r, col.g, col.b); + } + + for (key in named) { + value = named[key]; + namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase(); + } +} + +function toHexColor(color) { + var matches, red, green, blue, toInt = parseInt; + + function hex(value) { + value = parseInt(value).toString(16); + + return value.length > 1 ? value : '0' + value; // Padd with leading zero + }; + + color = color.replace(/[\s#]+/g, '').toLowerCase(); + color = namedLookup[color] || color; + matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})|([a-f0-9])([a-f0-9])([a-f0-9])$/.exec(color); + + if (matches) { + if (matches[1]) { + red = toInt(matches[1]); + green = toInt(matches[2]); + blue = toInt(matches[3]); + } else if (matches[4]) { + red = toInt(matches[4], 16); + green = toInt(matches[5], 16); + blue = toInt(matches[6], 16); + } else if (matches[7]) { + red = toInt(matches[7] + matches[7], 16); + green = toInt(matches[8] + matches[8], 16); + blue = toInt(matches[9] + matches[9], 16); + } + + return '#' + hex(red) + hex(green) + hex(blue); + } + + return ''; +} + +function insertAction() { + var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func'); + + tinyMCEPopup.restoreSelection(); + + if (f) + f(toHexColor(color)); + + tinyMCEPopup.close(); +} + +function showColor(color, name) { + if (name) + document.getElementById("colorname").innerHTML = name; + + document.getElementById("preview").style.backgroundColor = color; + document.getElementById("color").value = color.toUpperCase(); +} + +function convertRGBToHex(col) { + var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); + + if (!col) + return col; + + var rgb = col.replace(re, "$1,$2,$3").split(','); + if (rgb.length == 3) { + r = parseInt(rgb[0]).toString(16); + g = parseInt(rgb[1]).toString(16); + b = parseInt(rgb[2]).toString(16); + + r = r.length == 1 ? '0' + r : r; + g = g.length == 1 ? '0' + g : g; + b = b.length == 1 ? '0' + b : b; + + return "#" + r + g + b; + } + + return col; +} + +function convertHexToRGB(col) { + if (col.indexOf('#') != -1) { + col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); + + r = parseInt(col.substring(0, 2), 16); + g = parseInt(col.substring(2, 4), 16); + b = parseInt(col.substring(4, 6), 16); + + return {r : r, g : g, b : b}; + } + + return null; +} + +function generatePicker() { + var el = document.getElementById('light'), h = '', i; + + for (i = 0; i < detail; i++){ + h += '
'; + } + + el.innerHTML = h; +} + +function generateWebColors() { + var el = document.getElementById('webcolors'), h = '', i; + + if (el.className == 'generated') + return; + + // TODO: VoiceOver doesn't seem to support legend as a label referenced by labelledby. + h += '
' + + ''; + + for (i=0; i' + + ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + if ((i+1) % 18 == 0) + h += ''; + } + + h += '
'; + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el.firstChild); +} + +function paintCanvas(el) { + tinyMCEPopup.getWin().tinymce.each(tinyMCEPopup.dom.select('canvas.mceColorSwatch', el), function(canvas) { + var context; + if (canvas.getContext && (context = canvas.getContext("2d"))) { + context.fillStyle = canvas.getAttribute('data-color'); + context.fillRect(0, 0, 10, 10); + } + }); +} +function generateNamedColors() { + var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; + + if (el.className == 'generated') + return; + + for (n in named) { + v = named[n]; + h += ''; + if (tinyMCEPopup.editor.forcedHighContrastMode) { + h += ''; + } + h += ''; + h += ''; + i++; + } + + el.innerHTML = h; + el.className = 'generated'; + + paintCanvas(el); + enableKeyboardNavigation(el); +} + +function enableKeyboardNavigation(el) { + tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', { + root: el, + items: tinyMCEPopup.dom.select('a', el) + }, tinyMCEPopup.dom); +} + +function dechex(n) { + return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); +} + +function computeColor(e) { + var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB; + + x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0); + y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0); + + partWidth = document.getElementById('colors').width / 6; + partDetail = detail / 2; + imHeight = document.getElementById('colors').height; + + r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255; + g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth); + b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth); + + coef = (imHeight - y) / imHeight; + r = 128 + (r - 128) * coef; + g = 128 + (g - 128) * coef; + b = 128 + (b - 128) * coef; + + changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); + updateLight(r, g, b); +} + +function updateLight(r, g, b) { + var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; + + for (i=0; i=0) && (i'); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); + if (isVisible('srcbrowser')) + document.getElementById('src').style.width = '180px'; + + e = ed.selection.getNode(); + + this.fillFileList('image_list', 'tinyMCEImageList'); + + if (e.nodeName == 'IMG') { + f.src.value = ed.dom.getAttrib(e, 'src'); + f.alt.value = ed.dom.getAttrib(e, 'alt'); + f.border.value = this.getAttrib(e, 'border'); + f.vspace.value = this.getAttrib(e, 'vspace'); + f.hspace.value = this.getAttrib(e, 'hspace'); + f.width.value = ed.dom.getAttrib(e, 'width'); + f.height.value = ed.dom.getAttrib(e, 'height'); + f.insert.value = ed.getLang('update'); + this.styleVal = ed.dom.getAttrib(e, 'style'); + selectByValue(f, 'image_list', f.src.value); + selectByValue(f, 'align', this.getAttrib(e, 'align')); + this.updateStyle(); + } + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + update : function() { + var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; + + tinyMCEPopup.restoreSelection(); + + if (f.src.value === '') { + if (ed.selection.getNode().nodeName == 'IMG') { + ed.dom.remove(ed.selection.getNode()); + ed.execCommand('mceRepaint'); + } + + tinyMCEPopup.close(); + return; + } + + if (!ed.settings.inline_styles) { + args = tinymce.extend(args, { + vspace : nl.vspace.value, + hspace : nl.hspace.value, + border : nl.border.value, + align : getSelectValue(f, 'align') + }); + } else + args.style = this.styleVal; + + tinymce.extend(args, { + src : f.src.value.replace(/ /g, '%20'), + alt : f.alt.value, + width : f.width.value, + height : f.height.value + }); + + el = ed.selection.getNode(); + + if (el && el.nodeName == 'IMG') { + ed.dom.setAttribs(el, args); + tinyMCEPopup.editor.execCommand('mceRepaint'); + tinyMCEPopup.editor.focus(); + } else { + ed.execCommand('mceInsertContent', false, '', {skip_undo : 1}); + ed.dom.setAttribs('__mce_tmp', args); + ed.dom.setAttrib('__mce_tmp', 'id', ''); + ed.undoManager.add(); + } + + tinyMCEPopup.close(); + }, + + updateStyle : function() { + var dom = tinyMCEPopup.dom, st, v, f = document.forms[0]; + + if (tinyMCEPopup.editor.settings.inline_styles) { + st = tinyMCEPopup.dom.parseStyle(this.styleVal); + + // Handle align + v = getSelectValue(f, 'align'); + if (v) { + if (v == 'left' || v == 'right') { + st['float'] = v; + delete st['vertical-align']; + } else { + st['vertical-align'] = v; + delete st['float']; + } + } else { + delete st['float']; + delete st['vertical-align']; + } + + // Handle border + v = f.border.value; + if (v || v == '0') { + if (v == '0') + st['border'] = '0'; + else + st['border'] = v + 'px solid black'; + } else + delete st['border']; + + // Handle hspace + v = f.hspace.value; + if (v) { + delete st['margin']; + st['margin-left'] = v + 'px'; + st['margin-right'] = v + 'px'; + } else { + delete st['margin-left']; + delete st['margin-right']; + } + + // Handle vspace + v = f.vspace.value; + if (v) { + delete st['margin']; + st['margin-top'] = v + 'px'; + st['margin-bottom'] = v + 'px'; + } else { + delete st['margin-top']; + delete st['margin-bottom']; + } + + // Merge + st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img'); + this.styleVal = dom.serializeStyle(st, 'img'); + } + }, + + getAttrib : function(e, at) { + var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; + + if (ed.settings.inline_styles) { + switch (at) { + case 'align': + if (v = dom.getStyle(e, 'float')) + return v; + + if (v = dom.getStyle(e, 'vertical-align')) + return v; + + break; + + case 'hspace': + v = dom.getStyle(e, 'margin-left') + v2 = dom.getStyle(e, 'margin-right'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'vspace': + v = dom.getStyle(e, 'margin-top') + v2 = dom.getStyle(e, 'margin-bottom'); + if (v && v == v2) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + + case 'border': + v = 0; + + tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { + sv = dom.getStyle(e, 'border-' + sv + '-width'); + + // False or not the same as prev + if (!sv || (sv != v && v !== 0)) { + v = 0; + return false; + } + + if (sv) + v = sv; + }); + + if (v) + return parseInt(v.replace(/[^0-9]/g, '')); + + break; + } + } + + if (v = dom.getAttrib(e, at)) + return v; + + return ''; + }, + + resetImageData : function() { + var f = document.forms[0]; + + f.width.value = f.height.value = ""; + }, + + updateImageData : function() { + var f = document.forms[0], t = ImageDialog; + + if (f.width.value == "") + f.width.value = t.preloadImg.width; + + if (f.height.value == "") + f.height.value = t.preloadImg.height; + }, + + getImageData : function() { + var f = document.forms[0]; + + this.preloadImg = new Image(); + this.preloadImg.onload = this.updateImageData; + this.preloadImg.onerror = this.resetImageData; + this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); + } +}; + +ImageDialog.preInit(); +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/link.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/link.js new file mode 100644 index 0000000..53ff409 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/link.js @@ -0,0 +1,153 @@ +tinyMCEPopup.requireLangPack(); + +var LinkDialog = { + preInit : function() { + var url; + + if (url = tinyMCEPopup.getParam("external_link_list_url")) + document.write(''); + }, + + init : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor; + + // Setup browse button + document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); + if (isVisible('hrefbrowser')) + document.getElementById('href').style.width = '180px'; + + this.fillClassList('class_list'); + this.fillFileList('link_list', 'tinyMCELinkList'); + this.fillTargetList('target_list'); + + if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { + f.href.value = ed.dom.getAttrib(e, 'href'); + f.linktitle.value = ed.dom.getAttrib(e, 'title'); + f.insert.value = ed.getLang('update'); + selectByValue(f, 'link_list', f.href.value); + selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); + selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); + } + }, + + update : function() { + var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20'); + + tinyMCEPopup.restoreSelection(); + e = ed.dom.getParent(ed.selection.getNode(), 'A'); + + // Remove element if there is no href + if (!f.href.value) { + if (e) { + b = ed.selection.getBookmark(); + ed.dom.remove(e, 1); + ed.selection.moveToBookmark(b); + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + return; + } + } + + // Create new anchor elements + if (e == null) { + ed.getDoc().execCommand("unlink", false, null); + tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1}); + + tinymce.each(ed.dom.select("a"), function(n) { + if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') { + e = n; + + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value, + target : f.target_list ? getSelectValue(f, "target_list") : null, + 'class' : f.class_list ? getSelectValue(f, "class_list") : null + }); + } + }); + } else { + ed.dom.setAttribs(e, { + href : href, + title : f.linktitle.value, + target : f.target_list ? getSelectValue(f, "target_list") : null, + 'class' : f.class_list ? getSelectValue(f, "class_list") : null + }); + } + + // Don't move caret if selection was image + if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') { + ed.focus(); + ed.selection.select(e); + ed.selection.collapse(0); + tinyMCEPopup.storeSelection(); + } + + tinyMCEPopup.execCommand("mceEndUndoLevel"); + tinyMCEPopup.close(); + }, + + checkPrefix : function(n) { + if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) + n.value = 'mailto:' + n.value; + + if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) + n.value = 'http://' + n.value; + }, + + fillFileList : function(id, l) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + l = window[l]; + + if (l && l.length > 0) { + lst.options[lst.options.length] = new Option('', ''); + + tinymce.each(l, function(o) { + lst.options[lst.options.length] = new Option(o[0], o[1]); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillClassList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; + + if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { + cl = []; + + tinymce.each(v.split(';'), function(v) { + var p = v.split('='); + + cl.push({'title' : p[0], 'class' : p[1]}); + }); + } else + cl = tinyMCEPopup.editor.dom.getClasses(); + + if (cl.length > 0) { + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + + tinymce.each(cl, function(o) { + lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); + }); + } else + dom.remove(dom.getParent(id, 'tr')); + }, + + fillTargetList : function(id) { + var dom = tinyMCEPopup.dom, lst = dom.get(id), v; + + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); + lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); + + if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { + tinymce.each(v.split(','), function(v) { + v = v.split('='); + lst.options[lst.options.length] = new Option(v[0], v[1]); + }); + } + } +}; + +LinkDialog.preInit(); +tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/source_editor.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/source_editor.js new file mode 100644 index 0000000..84546ad --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/js/source_editor.js @@ -0,0 +1,56 @@ +tinyMCEPopup.requireLangPack(); +tinyMCEPopup.onInit.add(onLoadInit); + +function saveContent() { + tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true}); + tinyMCEPopup.close(); +} + +function onLoadInit() { + tinyMCEPopup.resizeToInnerSize(); + + // Remove Gecko spellchecking + if (tinymce.isGecko) + document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); + + document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true}); + + if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { + setWrap('soft'); + document.getElementById('wraped').checked = true; + } + + resizeInputs(); +} + +function setWrap(val) { + var v, n, s = document.getElementById('htmlSource'); + + s.wrap = val; + + if (!tinymce.isIE) { + v = s.value; + n = s.cloneNode(false); + n.setAttribute("wrap", val); + s.parentNode.replaceChild(n, s); + n.value = v; + } +} + +function toggleWordWrap(elm) { + if (elm.checked) + setWrap('soft'); + else + setWrap('off'); +} + +function resizeInputs() { + var vp = tinyMCEPopup.dom.getViewPort(window), el; + + el = document.getElementById('htmlSource'); + + if (el) { + el.style.width = (vp.w - 20) + 'px'; + el.style.height = (vp.h - 65) + 'px'; + } +} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en.js new file mode 100644 index 0000000..fbf2989 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en.js @@ -0,0 +1,68 @@ +tinyMCE.addI18n('en.advanced',{ +style_select:"Styles", +font_size:"Font size", +fontdefault:"Font family", +block:"Format", +paragraph:"Paragraph", +div:"Div", +address:"Address", +pre:"Preformatted", +h1:"Heading 1", +h2:"Heading 2", +h3:"Heading 3", +h4:"Heading 4", +h5:"Heading 5", +h6:"Heading 6", +blockquote:"Blockquote", +code:"Code", +samp:"Code sample", +dt:"Definition term ", +dd:"Definition description", +bold_desc:"Bold (Ctrl+B)", +italic_desc:"Italic (Ctrl+I)", +underline_desc:"Underline (Ctrl+U)", +striketrough_desc:"Strikethrough", +justifyleft_desc:"Align left", +justifycenter_desc:"Align center", +justifyright_desc:"Align right", +justifyfull_desc:"Align full", +bullist_desc:"Unordered list", +numlist_desc:"Ordered list", +outdent_desc:"Outdent", +indent_desc:"Indent", +undo_desc:"Undo (Ctrl+Z)", +redo_desc:"Redo (Ctrl+Y)", +link_desc:"Insert/edit link", +unlink_desc:"Unlink", +image_desc:"Insert/edit image", +cleanup_desc:"Cleanup messy code", +code_desc:"Edit HTML Source", +sub_desc:"Subscript", +sup_desc:"Superscript", +hr_desc:"Insert horizontal ruler", +removeformat_desc:"Remove formatting", +custom1_desc:"Your custom description here", +forecolor_desc:"Select text color", +backcolor_desc:"Select background color", +charmap_desc:"Insert custom character", +visualaid_desc:"Toggle guidelines/invisible elements", +anchor_desc:"Insert/edit anchor", +cut_desc:"Cut", +copy_desc:"Copy", +paste_desc:"Paste", +image_props_desc:"Image properties", +newdocument_desc:"New document", +help_desc:"Help", +blockquote_desc:"Blockquote", +clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?", +path:"Path", +newdocument:"Are you sure you want clear all contents?", +toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X", +more_colors:"More colors", + +// Accessibility Strings +shortcuts_desc:'Accessibility Help', +help_shortcut:'. Press ALT F10 for toolbar. Press ALT 0 for help.', +rich_text_area:"Rich Text Area", +toolbar:"Toolbar" +}); diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js new file mode 100644 index 0000000..0a459be --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/langs/en_dlg.js @@ -0,0 +1,54 @@ +tinyMCE.addI18n('en.advanced_dlg',{ +about_title:"About TinyMCE", +about_general:"About", +about_help:"Help", +about_license:"License", +about_plugins:"Plugins", +about_plugin:"Plugin", +about_author:"Author", +about_version:"Version", +about_loaded:"Loaded plugins", +anchor_title:"Insert/edit anchor", +anchor_name:"Anchor name", +anchor_invalid:"Please specify a valid anchor name.", +code_title:"HTML Source Editor", +code_wordwrap:"Word wrap", +colorpicker_title:"Select a color", +colorpicker_picker_tab:"Picker", +colorpicker_picker_title:"Color picker", +colorpicker_palette_tab:"Palette", +colorpicker_palette_title:"Palette colors", +colorpicker_named_tab:"Named", +colorpicker_named_title:"Named colors", +colorpicker_color:"Color:", +colorpicker_name:"Name:", +charmap_title:"Select custom character", +image_title:"Insert/edit image", +image_src:"Image URL", +image_alt:"Image description", +image_list:"Image list", +image_border:"Border", +image_dimensions:"Dimensions", +image_vspace:"Vertical space", +image_hspace:"Horizontal space", +image_align:"Alignment", +image_align_baseline:"Baseline", +image_align_top:"Top", +image_align_middle:"Middle", +image_align_bottom:"Bottom", +image_align_texttop:"Text top", +image_align_textbottom:"Text bottom", +image_align_left:"Left", +image_align_right:"Right", +link_title:"Insert/edit link", +link_url:"Link URL", +link_target:"Target", +link_target_same:"Open link in the same window", +link_target_blank:"Open link in a new window", +link_titlefield:"Title", +link_is_email:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", +link_is_external:"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?", +link_list:"Link list", +accessibility_help:"Accessibility Help", +accessibility_usage_title:"General Usage" +}); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/link.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/link.htm new file mode 100644 index 0000000..5d9dea9 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/link.htm @@ -0,0 +1,57 @@ + + + + {#advanced_dlg.link_title} + + + + + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + +
 
+
+
+ +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/shortcuts.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/shortcuts.htm new file mode 100644 index 0000000..20ec2f5 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/shortcuts.htm @@ -0,0 +1,47 @@ + + + + {#advanced_dlg.accessibility_help} + + + + +

{#advanced_dlg.accessibility_usage_title}

+

Toolbars

+

Press ALT-F10 to move focus to the toolbars. Navigate through the buttons using the arrow keys. + Press enter to activate a button and return focus to the editor. + Press escape to return focus to the editor without performing any actions.

+ +

Status Bar

+

To access the editor status bar, press ALT-F11. Use the left and right arrow keys to navigate between elements in the path. + Press enter or space to select an element. Press escape to return focus to the editor without changing the selection.

+ +

Context Menu

+

Press shift-F10 to activate the context menu. Use the up and down arrow keys to move between menu items. To open sub-menus press the right arrow key. + To close submenus press the left arrow key. Press escape to close the context menu.

+ +

Keyboard Shortcuts

+ + + + + + + + + + + + + + + + + + + + + +
KeystrokeFunction
Control-BBold
Control-IItalic
Control-ZUndo
Control-YRedo
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/content.css b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/content.css new file mode 100644 index 0000000..0363466 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/content.css @@ -0,0 +1,47 @@ +body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} +body {background:#FFF;} +body.mceForceColors {background:#FFF; color:#000;} +body.mceBrowserDefaults {background:transparent; color:inherit; font-size:inherit; font-family:inherit;} +h1 {font-size: 2em} +h2 {font-size: 1.5em} +h3 {font-size: 1.17em} +h4 {font-size: 1em} +h5 {font-size: .83em} +h6 {font-size: .75em} +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} +a.mceItemAnchor {display:inline-block; width:11px !important; height:11px !important; background:url(img/items.gif) no-repeat 0 0;} +span.mceItemNbsp {background: #DDD} +td.mceSelected, th.mceSelected {background-color:#3399ff !important} +img {border:0;} +table {cursor:default} +table td, table th {cursor:text} +ins {border-bottom:1px solid green; text-decoration: none; color:green} +del {color:red; text-decoration:line-through} +cite {border-bottom:1px dashed blue} +acronym {border-bottom:1px dotted #CCC; cursor:help} +abbr {border-bottom:1px dashed #CCC; cursor:help} + +/* IE */ +* html body { +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +} + +img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px} +font[face=mceinline] {font-family:inherit !important} + +.mceItemMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc} +.mceItemShockWave {background-image:url(../../img/shockwave.gif)} +.mceItemFlash {background-image:url(../../img/flash.gif)} +.mceItemQuickTime {background-image:url(../../img/quicktime.gif)} +.mceItemWindowsMedia {background-image:url(../../img/windowsmedia.gif)} +.mceItemRealMedia {background-image:url(../../img/realmedia.gif)} +.mceItemVideo {background-image:url(../../img/video.gif)} +.mceItemIframe {background-image:url(../../img/iframe.gif)} +.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../../img/pagebreak.gif) no-repeat center top;} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css new file mode 100644 index 0000000..f012226 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css @@ -0,0 +1,117 @@ +/* Generic */ +body { +font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; +scrollbar-3dlight-color:#F0F0EE; +scrollbar-arrow-color:#676662; +scrollbar-base-color:#F0F0EE; +scrollbar-darkshadow-color:#DDDDDD; +scrollbar-face-color:#E0E0DD; +scrollbar-highlight-color:#F0F0EE; +scrollbar-shadow-color:#F0F0EE; +scrollbar-track-color:#F5F5F5; +background:#F0F0EE; +padding:0; +margin:8px 8px 0 8px; +} + +html {background:#F0F0EE;} +td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +textarea {resize:none;outline:none;} +a:link, a:visited {color:black;} +a:hover {color:#2B6FB6;} +.nowrap {white-space: nowrap} + +/* Forms */ +fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} +legend {color:#2B6FB6; font-weight:bold;} +label.msg {display:none;} +label.invalid {color:#EE0000; display:inline;} +input.invalid {border:1px solid #EE0000;} +input {background:#FFF; border:1px solid #CCC;} +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} +input, select, textarea {border:1px solid #808080;} +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} +.input_noborder {border:0;} + +/* Buttons */ +#insert, #cancel, input.button, .updateButton { +border:0; margin:0; padding:0; +font-weight:bold; +width:94px; height:26px; +background:url(img/buttons.png) 0 -26px; +cursor:pointer; +padding-bottom:2px; +float:left; +} + +#insert {background:url(img/buttons.png) 0 -52px} +#cancel {background:url(img/buttons.png) 0 0; float:right} + +/* Browse */ +a.pickcolor, a.browse {text-decoration:none} +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} +.mceOldBoxModel a.browse span {width:22px; height:20px;} +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;} +a.pickcolor:hover span {background-color:#B2BBD0;} +a.pickcolor:hover span.disabled {} + +/* Charmap */ +table.charmap {border:1px solid #AAA; text-align:center} +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;} +#charmap a {display:block; color:#000; text-decoration:none; border:0} +#charmap a:hover {background:#CCC;color:#2B6FB6} +#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} + +/* Source */ +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} +.mceActionPanel {margin-top:5px;} + +/* Tabs classes */ +.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;} +.tabs ul {margin:0; padding:0; list-style:none;} +.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;} +.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} +.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} +.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;} +.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} + +/* Panels */ +.panel_wrapper div.panel {display:none;} +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} +.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} + +/* Columns */ +.column {float:left;} +.properties {width:100%;} +.properties .column1 {} +.properties .column2 {text-align:left;} + +/* Titles */ +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} +h3 {font-size:14px;} +.title {font-size:12px; font-weight:bold; color:#2B6FB6;} + +/* Dialog specific */ +#link .panel_wrapper, #link div.current {height:125px;} +#image .panel_wrapper, #image div.current {height:200px;} +#plugintable thead {font-weight:bold; background:#DDD;} +#plugintable, #about #plugintable td {border:1px solid #919B9C;} +#plugintable {width:96%; margin-top:10px;} +#pluginscontainer {height:290px; overflow:auto;} +#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} +#colorpicker #light div {overflow:hidden;} +#colorpicker #previewblock {float:right; padding-left:10px; height:20px;} +#colorpicker .panel_wrapper div.current {height:175px;} +#colorpicker #namedcolors {width:150px;} +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} +#colorpicker #colornamecontainer {margin-top:5px;} +#colorpicker #picker_panel fieldset {margin:auto;width:325px;} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd58418ba7cfe58ae7efdf174e0b223fe3aa6a0 GIT binary patch literal 3274 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 SLTQbO*E^TJI;F+RU=09Vu@yA{ literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif new file mode 100644 index 0000000000000000000000000000000000000000..adfdddccd7cac62a17d68873fa53c248bff8351a GIT binary patch literal 70 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 R!Sp}^Mt9BhYjvGt{|88cricIl literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png new file mode 100644 index 0000000000000000000000000000000000000000..8996c7493e8a58c9c40845cbe8abdc3e6730716d GIT binary patch literal 3736 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 M07*qoM6N<$f@g#ZbN~PV literal 0 HcmV?d00001 diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css new file mode 100644 index 0000000..df596bf --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css @@ -0,0 +1,216 @@ +/* Reset */ +.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left} +.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} +.o2k7Skin table td {vertical-align:middle} + +/* Containers */ +.o2k7Skin table {background:transparent} +.o2k7Skin iframe {display:block;} +.o2k7Skin .mceToolbar {height:26px} + +/* External */ +.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none} +.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;} +.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} + +/* Layout */ +.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD} +.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD} +.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0} +.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD} +.o2k7Skin td.mceToolbar{background:#E5EFFD} +.o2k7Skin .mceStatusbar {background:#E5EFFD; display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px} +.o2k7Skin .mceStatusbar div {float:left; padding:2px} +.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize; outline:0} +.o2k7Skin .mceStatusbar a:hover {text-decoration:underline} +.o2k7Skin table.mceToolbar {margin-left:3px} +.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;} +.o2k7Skin .mceToolbar td.mceFirst span {margin:0} +.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} +.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none} +.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px} +.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} +.o2k7Skin td.mceCenter {text-align:center;} +.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;} +.o2k7Skin td.mceRight table {margin:0 0 0 auto;} + +/* Button */ +.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} +.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px} +.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px} +.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} +.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px} +.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceButtonLabeled {width:auto} +.o2k7Skin .mceButtonLabeled span.mceIcon {float:left} +.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} +.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888} + +/* Separator */ +.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} + +/* ListBox */ +.o2k7Skin .mceListBox {margin-left:3px} +.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block} +.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden} +.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0} +.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF} +.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px} +.o2k7Skin .mceListBoxDisabled .mceText {color:gray} +.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden} +.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px} +.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;} + +/* SplitButton */ +.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px; direction:ltr} +.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)} +.o2k7Skin .mceSplitButton a.mceAction {width:22px} +.o2k7Skin .mceSplitButton span.mceAction {width:22px; background-image:url(../../img/icons.gif)} +.o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0} +.o2k7Skin .mceSplitButton span.mceOpen {display:none} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px} +.o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px} +.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} +.o2k7Skin .mceSplitButtonActive {background-position:0 -44px} + +/* ColorSplitButton */ +.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} +.o2k7Skin .mceColorSplitMenu td {padding:2px} +.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} +.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF} +.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} +.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A} +.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden} +.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} + +/* Menu */ +.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD} +.o2k7Skin .mceNoIcons span.mceIcon {width:0;} +.o2k7Skin .mceNoIcons a .mceText {padding-left:10px} +.o2k7Skin .mceMenu table {background:#FFF} +.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block} +.o2k7Skin .mceMenu td {height:20px} +.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0} +.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block} +.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px} +.o2k7Skin .mceMenu pre.mceText {font-family:Monospace} +.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} +.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3} +.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px} +.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD} +.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} +.o2k7Skin .mceMenuItemDisabled .mceText {color:#888} +.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)} +.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center} +.o2k7Skin .mceMenu span.mceMenuLine {display:none} +.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;} + +/* Progress,Resize */ +.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} +.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} + +/* Formats */ +.o2k7Skin .mce_formatPreview a {font-size:10px} +.o2k7Skin .mce_p span.mceText {} +.o2k7Skin .mce_address span.mceText {font-style:italic} +.o2k7Skin .mce_pre span.mceText {font-family:monospace} +.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} +.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} +.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} +.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} +.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} +.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} + +/* Theme */ +.o2k7Skin span.mce_bold {background-position:0 0} +.o2k7Skin span.mce_italic {background-position:-60px 0} +.o2k7Skin span.mce_underline {background-position:-140px 0} +.o2k7Skin span.mce_strikethrough {background-position:-120px 0} +.o2k7Skin span.mce_undo {background-position:-160px 0} +.o2k7Skin span.mce_redo {background-position:-100px 0} +.o2k7Skin span.mce_cleanup {background-position:-40px 0} +.o2k7Skin span.mce_bullist {background-position:-20px 0} +.o2k7Skin span.mce_numlist {background-position:-80px 0} +.o2k7Skin span.mce_justifyleft {background-position:-460px 0} +.o2k7Skin span.mce_justifyright {background-position:-480px 0} +.o2k7Skin span.mce_justifycenter {background-position:-420px 0} +.o2k7Skin span.mce_justifyfull {background-position:-440px 0} +.o2k7Skin span.mce_anchor {background-position:-200px 0} +.o2k7Skin span.mce_indent {background-position:-400px 0} +.o2k7Skin span.mce_outdent {background-position:-540px 0} +.o2k7Skin span.mce_link {background-position:-500px 0} +.o2k7Skin span.mce_unlink {background-position:-640px 0} +.o2k7Skin span.mce_sub {background-position:-600px 0} +.o2k7Skin span.mce_sup {background-position:-620px 0} +.o2k7Skin span.mce_removeformat {background-position:-580px 0} +.o2k7Skin span.mce_newdocument {background-position:-520px 0} +.o2k7Skin span.mce_image {background-position:-380px 0} +.o2k7Skin span.mce_help {background-position:-340px 0} +.o2k7Skin span.mce_code {background-position:-260px 0} +.o2k7Skin span.mce_hr {background-position:-360px 0} +.o2k7Skin span.mce_visualaid {background-position:-660px 0} +.o2k7Skin span.mce_charmap {background-position:-240px 0} +.o2k7Skin span.mce_paste {background-position:-560px 0} +.o2k7Skin span.mce_copy {background-position:-700px 0} +.o2k7Skin span.mce_cut {background-position:-680px 0} +.o2k7Skin span.mce_blockquote {background-position:-220px 0} +.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0} +.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0} +.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0} +.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0} + +/* Plugins */ +.o2k7Skin span.mce_advhr {background-position:-0px -20px} +.o2k7Skin span.mce_ltr {background-position:-20px -20px} +.o2k7Skin span.mce_rtl {background-position:-40px -20px} +.o2k7Skin span.mce_emotions {background-position:-60px -20px} +.o2k7Skin span.mce_fullpage {background-position:-80px -20px} +.o2k7Skin span.mce_fullscreen {background-position:-100px -20px} +.o2k7Skin span.mce_iespell {background-position:-120px -20px} +.o2k7Skin span.mce_insertdate {background-position:-140px -20px} +.o2k7Skin span.mce_inserttime {background-position:-160px -20px} +.o2k7Skin span.mce_absolute {background-position:-180px -20px} +.o2k7Skin span.mce_backward {background-position:-200px -20px} +.o2k7Skin span.mce_forward {background-position:-220px -20px} +.o2k7Skin span.mce_insert_layer {background-position:-240px -20px} +.o2k7Skin span.mce_insertlayer {background-position:-260px -20px} +.o2k7Skin span.mce_movebackward {background-position:-280px -20px} +.o2k7Skin span.mce_moveforward {background-position:-300px -20px} +.o2k7Skin span.mce_media {background-position:-320px -20px} +.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px} +.o2k7Skin span.mce_pastetext {background-position:-360px -20px} +.o2k7Skin span.mce_pasteword {background-position:-380px -20px} +.o2k7Skin span.mce_selectall {background-position:-400px -20px} +.o2k7Skin span.mce_preview {background-position:-420px -20px} +.o2k7Skin span.mce_print {background-position:-440px -20px} +.o2k7Skin span.mce_cancel {background-position:-460px -20px} +.o2k7Skin span.mce_save {background-position:-480px -20px} +.o2k7Skin span.mce_replace {background-position:-500px -20px} +.o2k7Skin span.mce_search {background-position:-520px -20px} +.o2k7Skin span.mce_styleprops {background-position:-560px -20px} +.o2k7Skin span.mce_table {background-position:-580px -20px} +.o2k7Skin span.mce_cell_props {background-position:-600px -20px} +.o2k7Skin span.mce_delete_table {background-position:-620px -20px} +.o2k7Skin span.mce_delete_col {background-position:-640px -20px} +.o2k7Skin span.mce_delete_row {background-position:-660px -20px} +.o2k7Skin span.mce_col_after {background-position:-680px -20px} +.o2k7Skin span.mce_col_before {background-position:-700px -20px} +.o2k7Skin span.mce_row_after {background-position:-720px -20px} +.o2k7Skin span.mce_row_before {background-position:-740px -20px} +.o2k7Skin span.mce_merge_cells {background-position:-760px -20px} +.o2k7Skin span.mce_table_props {background-position:-980px -20px} +.o2k7Skin span.mce_row_props {background-position:-780px -20px} +.o2k7Skin span.mce_split_cells {background-position:-800px -20px} +.o2k7Skin span.mce_template {background-position:-820px -20px} +.o2k7Skin span.mce_visualchars {background-position:-840px -20px} +.o2k7Skin span.mce_abbr {background-position:-860px -20px} +.o2k7Skin span.mce_acronym {background-position:-880px -20px} +.o2k7Skin span.mce_attribs {background-position:-900px -20px} +.o2k7Skin span.mce_cite {background-position:-920px -20px} +.o2k7Skin span.mce_del {background-position:-940px -20px} +.o2k7Skin span.mce_ins {background-position:-960px -20px} +.o2k7Skin span.mce_pagebreak {background-position:0 -40px} +.o2k7Skin span.mce_restoredraft {background-position:-20px -40px} +.o2k7Skin span.mce_spellchecker {background-position:-540px -20px} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css new file mode 100644 index 0000000..50c9b76 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css @@ -0,0 +1,8 @@ +/* Black */ +.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack td.mceToolbar, .o2k7SkinBlack td.mceStatusbar, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF} +.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0} +.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0} +.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;} +.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)} +.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1} \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css new file mode 100644 index 0000000..960a8e4 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css @@ -0,0 +1,5 @@ +/* Silver */ +.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} +.o2k7SkinSilver td.mceToolbar, .o2k7SkinSilver td.mceStatusbar, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} +.o2k7SkinSilver .mceListBox .mceText {background:#FFF} +.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb} diff --git a/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/source_editor.htm b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/source_editor.htm new file mode 100644 index 0000000..3c6d658 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/themes/advanced/source_editor.htm @@ -0,0 +1,25 @@ + + + {#advanced_dlg.code_title} + + + + +
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ + diff --git a/functions/tinyMCE/jscripts/tiny_mce/tiny_mce.js b/functions/tinyMCE/jscripts/tiny_mce/tiny_mce.js new file mode 100644 index 0000000..40342b9 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/tiny_mce.js @@ -0,0 +1 @@ +(function(d){var a=/^\s*|\s*$/g,e,c="B".replace(/A(.)|B/,"$1")==="$1";var b={majorVersion:"3",minorVersion:"4.2",releaseDate:"2011-04-07",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=d.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);if(d.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m=c.length){for(e=0,b=g.length;e=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e=0;c--){if(f[c].length==0||f[c]=="."){continue}if(f[c]==".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,"",c,b,c)}})})();(function(){function serialize(o,quote){var i,v,t;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&o instanceof Array){for(i=0,v="[";i0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(i in o){v+=typeof o[i]!="function"?(v.length>1?","+quote:quote)+i+quote+":"+serialize(o[i],quote):""}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(j){var a,g,d,k=/[&\"\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':""","'":"'","<":"<",">":">","&":"&"};d={"<":"<",">":">","&":"&",""":'"',"'":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : _".split(" ");for(g=0;g1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(r){var y={},p,n,v,q,u=d.url_converter,x=d.url_converter_scope||this;function o(C,F){var E,B,A,D;E=y[C+"-top"+F];if(!E){return}B=y[C+"-right"+F];if(E!=B){return}A=y[C+"-bottom"+F];if(B!=A){return}D=y[C+"-left"+F];if(A!=D){return}y[C+F]=D;delete y[C+"-top"+F];delete y[C+"-right"+F];delete y[C+"-bottom"+F];delete y[C+"-left"+F]}function t(B){var C=y[B],A;if(!C||C.indexOf(" ")<0){return}C=C.split(" ");A=C.length;while(A--){if(C[A]!==C[0]){return false}}y[B]=C[0];return true}function z(C,B,A,D){if(!t(B)){return}if(!t(A)){return}if(!t(D)){return}y[C]=y[B]+" "+y[A]+" "+y[D];delete y[B];delete y[A];delete y[D]}function s(A){q=true;return a[A]}function i(B,A){if(q){B=B.replace(/_[0-9]/g,function(C){return a[C]})}if(!A){B=B.replace(/\\([\'\";:])/g,"$1")}return B}if(r){r=r.replace(/\\[\"\';:_]/g,s).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(A){return A.replace(/[;:]/g,s)});while(p=b.exec(r)){n=p[1].replace(l,"").toLowerCase();v=p[2].replace(l,"");if(n&&v.length>0){if(n==="font-weight"&&v==="700"){v="bold"}else{if(n==="color"||n==="background-color"){v=v.toLowerCase()}}v=v.replace(k,c);v=v.replace(h,function(B,A,E,D,F,C){F=F||C;if(F){F=i(F);return"'"+F.replace(/\'/g,"\\'")+"'"}A=i(A||E||D);if(u){A=u.call(x,A,"style")}return"url('"+A.replace(/\'/g,"\\'")+"')"});y[n]=q?i(v,true):v}b.lastIndex=p.index+p[0].length}o("border","");o("border","-width");o("border","-color");o("border","-style");o("padding","");o("margin","");z("border","border-width","border-style","border-color");if(y.border==="medium none"){delete y.border}}return y},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,t,v;x=f.styles[t];if(x){for(u=0,s=x.length;u0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(n)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(l){var g={},i,k,f,d,b,e,c=l.makeMap,j=l.each;function h(n,m){return n.split(m||",")}function a(q,p){var n,o={};function m(r){return r.replace(/[A-Z]+/g,function(s){return m(q[s])})}for(n in q){if(q.hasOwnProperty(n)){q[n]=m(q[n])}}m(p).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(u,s,r,t){r=h(r,"|");o[s]={attributes:c(r),attributesOrder:r,children:c(t,"|",{"#comment":{}})}});return o}k="h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup";k=c(k,",",c(k.toUpperCase()));g=a({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]");i=c("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,preload,autoplay,loop,controls");f=c("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source");d=l.extend(c("td,th,iframe,video,object"),f);b=c("pre,script,style");e=c("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");l.html.Schema=function(p){var x=this,m={},n={},u=[],o;p=p||{};if(p.verify_html===false){p.valid_elements="*[*]"}if(p.valid_styles){o={};j(p.valid_styles,function(z,y){o[y]=l.explode(z)})}function v(y){return new RegExp("^"+y.replace(/([?+*])/g,".$1")+"$")}function r(F){var E,A,T,P,U,z,C,O,R,K,S,W,I,D,Q,y,M,B,V,X,J,N,H=/^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,L=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,G=/[*?+]/;if(F){F=h(F);if(m["@"]){M=m["@"].attributes;B=m["@"].attributesOrder}for(E=0,A=F.length;E=0){for(P=l.length-1;P>=Q;P--){O=l[P];if(O.valid){A.end(O.name)}}l.length=Q}}D=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([^\\s\\/<>]+)\\s*((?:[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*)>))","g");h=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;g={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};F=e.getShortEndedElements();z=e.getSelfClosingElements();k=e.getBoolAttrs();x=c.validate;y=c.fix_self_closing;while(f=D.exec(q)){if(m0&&l[l.length-1].name===G){C(G)}if(!x||(I=e.getElementRule(G))){r=true;if(x){J=I.attributes;n=I.attributePatterns}if(o=f[8]){B=[];B.map={};o.replace(h,function(P,O,T,S,R){var U,Q;O=O.toLowerCase();T=O in k?O:v(T||S||R||"");if(x&&O.indexOf("data-")!==0){U=J[O];if(!U&&n){Q=n.length;while(Q--){U=n[Q];if(U.pattern.test(O)){break}}if(Q===-1){U=null}}if(!U){return}if(U.validValues&&!(T in U.validValues)){return}}B.map[O]=T;B.push({name:O,value:T})})}else{B=[];B.map={}}if(x){H=I.attributesRequired;M=I.attributesDefault;L=I.attributesForced;if(L){K=L.length;while(K--){E=L[K];N=E.name;u=E.value;if(u==="{$uid}"){u="mce_"+s++}B.map[N]=u;B.push({name:N,value:u})}}if(M){K=M.length;while(K--){E=M[K];N=E.name;if(!(N in B.map)){u=E.value;if(u==="{$uid}"){u="mce_"+s++}B.map[N]=u;B.push({name:N,value:u})}}}if(H){K=H.length;while(K--){if(H[K] in B.map){break}}if(K===-1){r=false}}if(B.map["data-mce-bogus"]){r=false}}if(r){A.start(G,B,p)}}else{r=false}if(j=g[G]){j.lastIndex=m=f.index+f[0].length;if(f=j.exec(q)){if(r){t=q.substr(m,f.index-m)}m=f.index+f[0].length}else{t=q.substr(m);m=q.length}if(r&&t.length>0){A.text(t,true)}if(r){A.end(G)}D.lastIndex=m;continue}if(!p){if(!o||o.indexOf("/")!=o.length-1){l.push({name:G,valid:r})}else{if(r){A.end(G)}}}}else{if(G=f[1]){A.comment(G)}else{if(G=f[2]){A.cdata(G)}else{if(G=f[3]){A.doctype(G)}else{if(G=f[4]){A.pi(G,f[5])}}}}}}m=f.index+f[0].length}if(m=0;K--){G=l[K];if(G.valid){A.end(G.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h1){v.reverse();z=n=f.filterNode(v[0].clone());for(t=0;t0){L.value=l;L=L.prev}else{J=L.prev;L.remove();L=J}}}n=new b.html.SaxParser({validate:x,fix_self_closing:!x,cdata:function(l){z.append(G("#cdata",4)).value=l},text:function(K,l){var J;if(!r[z.name]){K=K.replace(k," ");if(z.lastChild&&o[z.lastChild.name]){K=K.replace(C,"")}}if(K.length!==0){J=G("#text",3);J.raw=!!l;z.append(J).value=K}},comment:function(l){z.append(G("#comment",8)).value=l},pi:function(l,J){z.append(G(l,7)).value=J;E(z)},doctype:function(J){var l;l=z.append(G("#doctype",10));l.value=J;E(z)},start:function(l,R,K){var P,M,L,J,N,S,Q,O;L=x?h.getElementRule(l):{};if(L){P=G(L.outputName||l,1);P.attributes=R;P.shortEnded=K;z.append(P);O=p[z.name];if(O&&p[P.name]&&!O[P.name]){H.push(P)}M=d.length;while(M--){N=d[M].name;if(N in R.map){D=c[N];if(D){D.push(P)}else{c[N]=[P]}}}if(o[l]){E(P)}if(!K){z=P}}},end:function(l){var N,K,M,J,L;K=x?h.getElementRule(l):{};if(K){if(o[l]){if(!r[z.name]){for(N=z.firstChild;N&&N.type===3;){M=N.value.replace(C,"");if(M.length>0){N.value=M;N=N.next}else{J=N.next;N.remove();N=J}}for(N=z.lastChild;N&&N.type===3;){M=N.value.replace(s,"");if(M.length>0){N.value=M;N=N.prev}else{J=N.prev;N.remove();N=J}}}N=z.prev;if(N&&N.type===3){M=N.value.replace(C,"");if(M.length>0){N.value=M}else{N.remove()}}}if(K.removeEmpty||K.paddEmpty){if(z.isEmpty(t)){if(K.paddEmpty){z.empty().append(new a("#text","3")).value="\u00a0"}else{if(!z.attributes.map.name){L=z.parent;z.empty().remove();z=L;return}}}}z=z.parent}}},h);F=z=new a(g.root_name,11);n.parse(u);if(x){j(H)}for(I in i){D=e[I];y=i[I];v=y.length;while(v--){if(!y[v].parent){y.splice(v,1)}}for(B=0,A=D.length;B0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("")},comment:function(h){c.push("")},pi:function(h,i){if(i){c.push("")}else{c.push("")}if(a){c.push("\n")}},doctype:function(h){c.push("",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n=8;k.boxModel=!h.isIE||n.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in n.createElement("a");k.settings=l=h.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new h.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(h.isIE6){try{n.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}if(b){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(o){n.createElement(o)})}h.addUnload(k.destroy,k)},getRoot:function(){var j=this,k=j.settings;return(k&&j.get(k.root_element))||j.doc.body},getViewPort:function(k){var l,j;k=!k?this.win:k;l=k.document;j=this.boxModel?l.documentElement:l.body;return{x:k.pageXOffset||j.scrollLeft,y:k.pageYOffset||j.scrollTop,w:k.innerWidth||j.clientWidth,h:k.innerHeight||j.clientHeight}},getRect:function(m){var l,j=this,k;m=j.get(m);l=j.getPos(m);k=j.getSize(m);return{x:l.x,y:l.y,w:k.w,h:k.h}},getSize:function(m){var k=this,j,l;m=k.get(m);j=k.getStyle(m,"width");l=k.getStyle(m,"height");if(j.indexOf("px")===-1){j=0}if(l.indexOf("px")===-1){l=0}return{w:parseInt(j)||m.offsetWidth||m.clientWidth,h:parseInt(l)||m.offsetHeight||m.clientHeight}},getParent:function(l,k,j){return this.getParents(l,k,j,false)},getParents:function(u,p,l,s){var k=this,j,m=k.settings,q=[];u=k.get(u);s=s===undefined;if(m.strict_root){l=l||k.getRoot()}if(e(p,"string")){j=p;if(p==="*"){p=function(o){return o.nodeType==1}}else{p=function(o){return k.is(o,j)}}}while(u){if(u==l||!u.nodeType||u.nodeType===9){break}if(!p||p(u)){if(s){q.push(u)}else{return u}}u=u.parentNode}return s?q:null},get:function(j){var k;if(j&&this.doc&&typeof(j)=="string"){k=j;j=this.doc.getElementById(j);if(j&&j.id!==k){return this.doc.getElementsByName(k)[1]}}return j},getNext:function(k,j){return this._findSib(k,j,"nextSibling")},getPrev:function(k,j){return this._findSib(k,j,"previousSibling")},select:function(l,k){var j=this;return h.dom.Sizzle(l,j.get(k)||j.get(j.settings.root_element)||j.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(a.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return h.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(m,q,j,l,o){var k=this;return this.run(m,function(s){var r,n;r=e(q,"string")?k.doc.createElement(q):q;k.setAttribs(r,j);if(l){if(l.nodeType){r.appendChild(l)}else{k.setHTML(r,l)}}return !o?s.appendChild(r):r})},create:function(l,j,k){return this.add(this.doc.createElement(l),l,j,k,1)},createHTML:function(r,j,p){var q="",m=this,l;q+="<"+r;for(l in j){if(j.hasOwnProperty(l)){q+=" "+l+'="'+m.encode(j[l])+'"'}}if(typeof(p)!="undefined"){return q+">"+p+""}return q+" />"},remove:function(j,k){return this.run(j,function(m){var n,l=m.parentNode;if(!l){return null}if(k){while(n=m.firstChild){if(!h.isIE||n.nodeType!==3||n.nodeValue){l.insertBefore(n,m)}else{m.removeChild(n)}}}return l.removeChild(m)})},setStyle:function(m,j,k){var l=this;return l.run(m,function(p){var o,n;o=p.style;j=j.replace(/-(\D)/g,function(r,q){return q.toUpperCase()});if(l.pixelStyles.test(j)&&(h.is(k,"number")||/^[\-0-9\.]+$/.test(k))){k+="px"}switch(j){case"opacity":if(b){o.filter=k===""?"":"alpha(opacity="+(k*100)+")";if(!m.currentStyle||!m.currentStyle.hasLayout){o.display="inline-block"}}o[j]=o["-moz-opacity"]=o["-khtml-opacity"]=k||"";break;case"float":b?o.styleFloat=k:o.cssFloat=k;break;default:o[j]=k||""}if(l.settings.update_styles){l.setAttrib(p,"data-mce-style")}})},getStyle:function(m,j,l){m=this.get(m);if(!m){return}if(this.doc.defaultView&&l){j=j.replace(/[A-Z]/g,function(n){return"-"+n});try{return this.doc.defaultView.getComputedStyle(m,null).getPropertyValue(j)}catch(k){return null}}j=j.replace(/-(\D)/g,function(o,n){return n.toUpperCase()});if(j=="float"){j=b?"styleFloat":"cssFloat"}if(m.currentStyle&&l){return m.currentStyle[j]}return m.style?m.style[j]:undefined},setStyles:function(m,n){var k=this,l=k.settings,j;j=l.update_styles;l.update_styles=0;f(n,function(o,p){k.setStyle(m,p,o)});l.update_styles=j;if(l.update_styles){k.setAttrib(m,l.cssText)}},removeAllAttribs:function(j){return this.run(j,function(m){var l,k=m.attributes;for(l=k.length-1;l>=0;l--){m.removeAttributeNode(k.item(l))}})},setAttrib:function(l,m,j){var k=this;if(!l||!m){return}if(k.settings.strict){m=m.toLowerCase()}return this.run(l,function(o){var n=k.settings;switch(m){case"style":if(!e(j,"string")){f(j,function(p,q){k.setStyle(o,q,p)});return}if(n.keep_values){if(j&&!k._isRes(j)){o.setAttribute("data-mce-style",j,2)}else{o.removeAttribute("data-mce-style",2)}}o.style.cssText=j;break;case"class":o.className=j||"";break;case"src":case"href":if(n.keep_values){if(n.url_converter){j=n.url_converter.call(n.url_converter_scope||k,j,m,o)}k.setAttrib(o,"data-mce-"+m,j,2)}break;case"shape":o.setAttribute("data-mce-style",j);break}if(e(j)&&j!==null&&j.length!==0){o.setAttribute(m,""+j,2)}else{o.removeAttribute(m,2)}})},setAttribs:function(k,l){var j=this;return this.run(k,function(m){f(l,function(o,p){j.setAttrib(m,p,o)})})},getAttrib:function(m,o,l){var j,k=this;m=k.get(m);if(!m||m.nodeType!==1){return false}if(!e(l)){l=""}if(/^(src|href|style|coords|shape)$/.test(o)){j=m.getAttribute("data-mce-"+o);if(j){return j}}if(b&&k.props[o]){j=m[k.props[o]];j=j&&j.nodeValue?j.nodeValue:j}if(!j){j=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[k.props[o]]===true&&j===""){return o}return j?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){j=j||m.style.cssText;if(j){j=k.serializeStyle(k.parseStyle(j),m.nodeName);if(k.settings.keep_values&&!k._isRes(j)){m.setAttribute("data-mce-style",j)}}}if(d&&o==="class"&&j){j=j.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(j===1){j=""}break;case"size":if(j==="+0"||j===20||j===0){j=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(j===0){j=""}break;case"hspace":if(j===-1){j=""}break;case"maxlength":case"tabindex":if(j===32768||j===2147483647||j==="32768"){j=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(j===65535){return o}return l;case"shape":j=j.toLowerCase();break;default:if(o.indexOf("on")===0&&j){j=h._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+j)}}}return(j!==undefined&&j!==null&&j!=="")?""+j:l},getPos:function(s,m){var k=this,j=0,q=0,o,p=k.doc,l;s=k.get(s);m=m||p.body;if(s){if(b&&!k.stdMode){s=s.getBoundingClientRect();o=k.boxModel?p.documentElement:p.body;j=k.getStyle(k.select("html")[0],"borderWidth");j=(j=="medium"||k.boxModel&&!k.isIE6)&&2||j;return{x:s.left+o.scrollLeft-j,y:s.top+o.scrollTop-j}}l=s;while(l&&l!=m&&l.nodeType){j+=l.offsetLeft||0;q+=l.offsetTop||0;l=l.offsetParent}l=s.parentNode;while(l&&l!=m&&l.nodeType){j-=l.scrollLeft||0;q-=l.scrollTop||0;l=l.parentNode}}return{x:j,y:q}},parseStyle:function(j){return this.styles.parse(j)},serializeStyle:function(k,j){return this.styles.serialize(k,j)},loadCSS:function(j){var l=this,m=l.doc,k;if(!j){j=""}k=l.select("head")[0];f(j.split(","),function(n){var o;if(l.files[n]){return}l.files[n]=true;o=l.create("link",{rel:"stylesheet",href:h._addVer(n)});if(b&&m.documentMode&&m.recalc){o.onload=function(){if(m.recalc){m.recalc()}o.onload=null}}k.appendChild(o)})},addClass:function(j,k){return this.run(j,function(l){var m;if(!k){return 0}if(this.hasClass(l,k)){return l.className}m=this.removeClass(l,k);return l.className=(m!=""?(m+" "):"")+k})},removeClass:function(l,m){var j=this,k;return j.run(l,function(o){var n;if(j.hasClass(o,m)){if(!k){k=new RegExp("(^|\\s+)"+m+"(\\s+|$)","g")}n=o.className.replace(k," ");n=h.trim(n!=" "?n:"");o.className=n;if(!n){o.removeAttribute("class");o.removeAttribute("className")}return n}return o.className})},hasClass:function(k,j){k=this.get(k);if(!k||!j){return false}return(" "+k.className+" ").indexOf(" "+j+" ")!==-1},show:function(j){return this.setStyle(j,"display","block")},hide:function(j){return this.setStyle(j,"display","none")},isHidden:function(j){j=this.get(j);return !j||j.style.display=="none"||this.getStyle(j,"display")=="none"},uniqueId:function(j){return(!j?"mce_":j)+(this.counter++)},setHTML:function(l,k){var j=this;return j.run(l,function(n){if(b){while(n.firstChild){n.removeChild(n.firstChild)}try{n.innerHTML="
"+k;n.removeChild(n.firstChild)}catch(m){n=j.create("div");n.innerHTML="
"+k;f(n.childNodes,function(p,o){if(o){n.appendChild(p)}})}}else{n.innerHTML=k}return k})},getOuterHTML:function(l){var k,j=this;l=j.get(l);if(!l){return null}if(l.nodeType===1&&j.hasOuterHTML){return l.outerHTML}k=(l.ownerDocument||j.doc).createElement("body");k.appendChild(l.cloneNode(true));return k.innerHTML},setOuterHTML:function(m,k,n){var j=this;function l(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){j.insertAfter(s.cloneNode(true),p);s=s.previousSibling}j.remove(p)}return this.run(m,function(p){p=j.get(p);if(p.nodeType==1){n=n||p.ownerDocument||j.doc;if(b){try{if(b&&p.nodeType==1){p.outerHTML=k}else{l(p,k,n)}}catch(o){l(p,k,n)}}else{l(p,k,n)}}})},decode:c.decode,encode:c.encodeAllRaw,insertAfter:function(j,k){k=this.get(k);return this.run(j,function(m){var l,n;l=k.parentNode;n=k.nextSibling;if(n){l.insertBefore(m,n)}else{l.appendChild(m)}return m})},isBlock:function(k){var j=k.nodeType;if(j){return !!(j===1&&g[k.nodeName])}return !!g[k]},replace:function(p,m,j){var l=this;if(e(m,"array")){p=p.cloneNode(true)}return l.run(m,function(k){if(j){f(h.grep(k.childNodes),function(n){p.appendChild(n)})}return k.parentNode.replaceChild(p,k)})},rename:function(m,j){var l=this,k;if(m.nodeName!=j.toUpperCase()){k=l.create(j);f(l.getAttribs(m),function(n){l.setAttrib(k,n.nodeName,l.getAttrib(m,n.nodeName))});l.replace(k,m,1)}return k||m},findCommonAncestor:function(l,j){var m=l,k;while(m){k=j;while(k&&m!=k){k=k.parentNode}if(m==k){break}m=m.parentNode}if(!m&&l.ownerDocument){return l.ownerDocument.documentElement}return m},toHex:function(j){var l=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(j);function k(m){m=parseInt(m).toString(16);return m.length>1?m:"0"+m}if(l){j="#"+k(l[1])+k(l[2])+k(l[3]);return j}return j},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(r){f(r.imports,function(s){q(s)});f(r.cssRules||r.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){f(s.selectorText.split(","),function(t){t=t.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(t)||!/\.[\w\-]+$/.test(t)){return}l=t;t=h._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",t);if(p&&!(t=p(t,l))){return}if(!o[t]){j.push({"class":t});o[t]=1}})}break;case 3:q(s.styleSheet);break}})}try{f(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(m,l,k){var j=this,n;if(j.doc&&typeof(m)==="string"){m=j.get(m)}if(!m){return false}k=k||this;if(!m.nodeType&&(m.length||m.length===0)){n=[];f(m,function(p,o){if(p){if(typeof(p)=="string"){p=j.doc.getElementById(p)}n.push(l.call(k,p,o))}});return n}return l.call(k,m)},getAttribs:function(k){var j;k=this.get(k);if(!k){return[]}if(b){j=[];if(k.nodeName=="OBJECT"){return k.attributes}if(k.nodeName==="OPTION"&&this.getAttrib(k,"selected")){j.push({specified:1,nodeName:"selected"})}k.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(l){j.push({specified:1,nodeName:l})});return j}return k.attributes},isEmpty:function(o,p){var k=this,m,j,n,q,l;o=o.firstChild;if(o){q=new h.dom.TreeWalker(o);p=p||k.schema?k.schema.getNonEmptyElements():null;do{n=o.nodeType;if(n===1){if(o.getAttribute("data-mce-bogus")){continue}if(p&&p[o.nodeName.toLowerCase()]){return false}j=k.getAttribs(o);m=o.attributes.length;while(m--){l=o.attributes[m].nodeName;if(l==="name"||l.indexOf("data-")===0){return false}}}if((n===3&&!i.test(o.nodeValue))){return false}}while(o=q.next())}return true},destroy:function(k){var j=this;if(j.events){j.events.destroy()}j.win=j.doc=j.root=j.events=null;if(!k){h.removeUnload(j.destroy)}},createRng:function(){var j=this.doc;return j.createRange?j.createRange():new h.dom.Range(this)},nodeIndex:function(o,p){var j=0,m,n,l,k;if(o){for(m=o.nodeType,o=o.previousSibling,n=o;o;o=o.previousSibling){l=o.nodeType;if(p&&l==3){k=false;try{k=o.nodeValue.length}catch(q){}if(l==m||!k){continue}}j++;m=l}}return j},split:function(n,m,q){var s=this,j=s.createRng(),o,l,p;function k(v){var t,r=v.childNodes,u=v.nodeType;if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=r.length-1;t>=0;t--){k(r[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){if(!s.isBlock(v.parentNode)||h.trim(v.nodeValue).length>0){return}}else{if(u==1){r=v.childNodes;if(r.length==1&&r[0]&&r[0].nodeType==1&&r[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(r[0],v)}if(r.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}s.remove(v)}return v}if(n&&m){j.setStart(n.parentNode,s.nodeIndex(n));j.setEnd(m.parentNode,s.nodeIndex(m));o=j.extractContents();j=s.createRng();j.setStart(m.parentNode,s.nodeIndex(m)+1);j.setEnd(n.parentNode,s.nodeIndex(n)+1);l=j.extractContents();p=n.parentNode;p.insertBefore(k(o),n);if(q){p.replaceChild(q,m)}else{p.insertBefore(m,n)}p.insertBefore(k(l),n);s.remove(n);return q||m}},bind:function(n,j,m,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.add(n,j,m,l||this)},unbind:function(m,j,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.remove(m,j,l)},_findSib:function(m,j,k){var l=this,n=j;if(m){if(e(n,"string")){n=function(o){return l.is(o,j)}}for(m=m[k];m;m=m[k]){if(n(m)){return m}}}return null},_isRes:function(j){return/^(top|left|bottom|right|width|height)/i.test(j)||/;\s*(top|left|bottom|right|width|height)/i.test(j)}});h.DOM=new h.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var N=this,e=c.doc,S=0,E=1,j=2,D=true,R=false,U="startOffset",h="startContainer",P="endContainer",z="endOffset",k=tinymce.extend,n=c.nodeIndex;k(N,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:D,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:I,setEndBefore:J,setEndAfter:u,collapse:A,selectNode:x,selectNodeContents:F,compareBoundaryPoints:v,deleteContents:p,extractContents:H,cloneContents:d,insertNode:C,surroundContents:M,cloneRange:K});function q(V,t){B(D,V,t)}function s(V,t){B(R,V,t)}function g(t){q(t.parentNode,n(t))}function I(t){q(t.parentNode,n(t)+1)}function J(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function A(t){if(t){N[P]=N[h];N[z]=N[U]}else{N[h]=N[P];N[U]=N[z]}N.collapsed=D}function x(t){g(t);u(t)}function F(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(Y,t){var ab=N[h],W=N[U],aa=N[P],V=N[z],Z=t.startContainer,ad=t.startOffset,X=t.endContainer,ac=t.endOffset;if(Y===0){return G(ab,W,Z,ad)}if(Y===1){return G(aa,V,Z,ad)}if(Y===2){return G(aa,V,X,ac)}if(Y===3){return G(ab,W,X,ac)}}function p(){m(j)}function H(){return m(S)}function d(){return m(E)}function C(Y){var V=this[h],t=this[U],X,W;if((V.nodeType===3||V.nodeType===4)&&V.nodeValue){if(!t){V.parentNode.insertBefore(Y,V)}else{if(t>=V.nodeValue.length){c.insertAfter(Y,V)}else{X=V.splitText(t);V.parentNode.insertBefore(Y,X)}}}else{if(V.childNodes.length>0){W=V.childNodes[t]}if(W){V.insertBefore(Y,W)}else{V.appendChild(Y)}}}function M(V){var t=N.extractContents();N.insertNode(V);V.appendChild(t);N.selectNode(V)}function K(){return k(new b(c),{startContainer:N[h],startOffset:N[U],endContainer:N[P],endOffset:N[z],collapsed:N.collapsed,commonAncestorContainer:N.commonAncestorContainer})}function O(t,V){var W;if(t.nodeType==3){return t}if(V<0){return t}W=t.firstChild;while(W&&V>0){--V;W=W.nextSibling}if(W){return W}return t}function l(){return(N[h]==N[P]&&N[U]==N[z])}function G(X,Z,V,Y){var aa,W,t,ab,ad,ac;if(X==V){if(Z==Y){return 0}if(Z0){N.collapse(V)}}else{N.collapse(V)}N.collapsed=l();N.commonAncestorContainer=c.findCommonAncestor(N[h],N[P])}function m(ab){var aa,X=0,ad=0,V,Z,W,Y,t,ac;if(N[h]==N[P]){return f(ab)}for(aa=N[P],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[h]){return r(aa,ab)}++X}for(aa=N[h],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[P]){return T(aa,ab)}++ad}Z=ad-X;W=N[h];while(Z>0){W=W.parentNode;Z--}Y=N[P];while(Z<0){Y=Y.parentNode;Z++}for(t=W.parentNode,ac=Y.parentNode;t!=ac;t=t.parentNode,ac=ac.parentNode){W=t;Y=ac}return o(W,Y,ab)}function f(Z){var ab,Y,X,aa,t,W,V;if(Z!=j){ab=e.createDocumentFragment()}if(N[U]==N[z]){return ab}if(N[h].nodeType==3){Y=N[h].nodeValue;X=Y.substring(N[U],N[z]);if(Z!=E){N[h].deleteData(N[U],N[z]-N[U]);N.collapse(D)}if(Z==j){return}ab.appendChild(e.createTextNode(X));return ab}aa=O(N[h],N[U]);t=N[z]-N[U];while(t>0){W=aa.nextSibling;V=y(aa,Z);if(ab){ab.appendChild(V)}--t;aa=W}if(Z!=E){N.collapse(D)}return ab}function r(ab,Y){var aa,Z,V,t,X,W;if(Y!=j){aa=e.createDocumentFragment()}Z=i(ab,Y);if(aa){aa.appendChild(Z)}V=n(ab);t=V-N[U];if(t<=0){if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}Z=ab.previousSibling;while(t>0){X=Z.previousSibling;W=y(Z,Y);if(aa){aa.insertBefore(W,aa.firstChild)}--t;Z=X}if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}function T(Z,Y){var ab,V,aa,t,X,W;if(Y!=j){ab=e.createDocumentFragment()}aa=Q(Z,Y);if(ab){ab.appendChild(aa)}V=n(Z);++V;t=N[z]-V;aa=Z.nextSibling;while(t>0){X=aa.nextSibling;W=y(aa,Y);if(ab){ab.appendChild(W)}--t;aa=X}if(Y!=E){N.setStartAfter(Z);N.collapse(D)}return ab}function o(Z,t,ac){var W,ae,Y,aa,ab,V,ad,X;if(ac!=j){ae=e.createDocumentFragment()}W=Q(Z,ac);if(ae){ae.appendChild(W)}Y=Z.parentNode;aa=n(Z);ab=n(t);++aa;V=ab-aa;ad=Z.nextSibling;while(V>0){X=ad.nextSibling;W=y(ad,ac);if(ae){ae.appendChild(W)}ad=X;--V}W=i(t,ac);if(ae){ae.appendChild(W)}if(ac!=E){N.setStartAfter(Z);N.collapse(D)}return ae}function i(aa,ab){var W=O(N[P],N[z]-1),ac,Z,Y,t,V,X=W!=N[P];if(W==aa){return L(W,X,R,ab)}ac=W.parentNode;Z=L(ac,R,R,ab);while(ac){while(W){Y=W.previousSibling;t=L(W,X,R,ab);if(ab!=j){Z.insertBefore(t,Z.firstChild)}X=D;W=Y}if(ac==aa){return Z}W=ac.previousSibling;ac=ac.parentNode;V=L(ac,R,R,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function Q(aa,ab){var X=O(N[h],N[U]),Y=X!=N[h],ac,Z,W,t,V;if(X==aa){return L(X,Y,D,ab)}ac=X.parentNode;Z=L(ac,R,D,ab);while(ac){while(X){W=X.nextSibling;t=L(X,Y,D,ab);if(ab!=j){Z.appendChild(t)}Y=D;X=W}if(ac==aa){return Z}X=ac.nextSibling;ac=ac.parentNode;V=L(ac,R,D,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function L(t,Y,ab,ac){var X,W,Z,V,aa;if(Y){return y(t,ac)}if(t.nodeType==3){X=t.nodeValue;if(ab){V=N[U];W=X.substring(V);Z=X.substring(0,V)}else{V=N[z];W=X.substring(0,V);Z=X.substring(V)}if(ac!=E){t.nodeValue=Z}if(ac==j){return}aa=t.cloneNode(R);aa.nodeValue=W;return aa}if(ac==j){return}return t.cloneNode(R)}function y(V,t){if(t!=j){return t==E?V.cloneNode(D):V}V.parentNode.removeChild(V)}}a.Range=b})(tinymce.dom);(function(){function a(g){var i=this,j="\uFEFF",e,h,d=g.dom,c=true,f=false;function b(){var n=g.getRng(),k=d.createRng(),m,o;m=n.item?n.item(0):n.parentElement();if(m.ownerDocument!=d.doc){return k}o=g.isCollapsed();if(n.item||!m.hasChildNodes()){if(o){k.setStart(m,0);k.setEnd(m,0)}else{k.setStart(m.parentNode,d.nodeIndex(m));k.setEnd(k.startContainer,k.startOffset+1)}return k}function l(s){var u,q,t,p,A=0,x,y,z,r,v;r=n.duplicate();r.collapse(s);u=d.create("a");z=r.parentElement();if(!z.hasChildNodes()){k[s?"setStart":"setEnd"](z,0);return}z.appendChild(u);r.moveToElementText(u);v=n.compareEndPoints(s?"StartToStart":"EndToEnd",r);if(v>0){k[s?"setStartAfter":"setEndAfter"](z);d.remove(u);return}p=tinymce.grep(z.childNodes);x=p.length-1;while(A<=x){y=Math.floor((A+x)/2);z.insertBefore(u,p[y]);r.moveToElementText(u);v=n.compareEndPoints(s?"StartToStart":"EndToEnd",r);if(v>0){A=y+1}else{if(v<0){x=y-1}else{found=true;break}}}q=v>0||y==0?u.nextSibling:u.previousSibling;if(q.nodeType==1){d.remove(u);t=d.nodeIndex(q);q=q.parentNode;if(!s||y>0){t++}}else{if(v>0||y==0){r.setEndPoint(s?"StartToStart":"EndToEnd",n);t=r.text.length}else{r.setEndPoint(s?"StartToStart":"EndToEnd",n);t=q.nodeValue.length-r.text.length}d.remove(u)}k[s?"setStart":"setEnd"](q,t)}l(true);if(!o){l()}return k}this.addRange=function(k){var p,n,m,r,u,s,t=g.dom.doc,o=t.body;function l(B){var x,A,v,z,y;v=d.create("a");x=B?m:u;A=B?r:s;z=p.duplicate();if(x==t||x==t.documentElement){x=o;A=0}if(x.nodeType==3){x.parentNode.insertBefore(v,x);z.moveToElementText(v);z.moveStart("character",A);d.remove(v);p.setEndPoint(B?"StartToStart":"EndToEnd",z)}else{y=x.childNodes;if(y.length){if(A>=y.length){d.insertAfter(v,y[y.length-1])}else{x.insertBefore(v,y[A])}z.moveToElementText(v)}else{v=t.createTextNode(j);x.appendChild(v);z.moveToElementText(v.parentNode);z.collapse(c)}p.setEndPoint(B?"StartToStart":"EndToEnd",z);d.remove(v)}}this.destroy();m=k.startContainer;r=k.startOffset;u=k.endContainer;s=k.endOffset;p=o.createTextRange();if(m==u&&m.nodeType==1&&r==s-1){if(r==s-1){try{n=o.createControlRange();n.addElement(m.childNodes[r]);n.select();return}catch(q){}}}l(true);l();p.select()};this.getRangeAt=function(){if(!e||!tinymce.dom.RangeUtils.compareRanges(h,g.getRng())){e=b();h=g.getRng()}try{e.startContainer.nextSibling}catch(k){e=b();h=null}return e};this.destroy=function(){h=e=null}}tinymce.dom.TridentSelection=a})();(function(){var p=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,j=0,d=Object.prototype.toString,o=false,i=true;[0,0].sort(function(){i=false;return 0});var b=function(v,e,z,A){z=z||[];e=e||document;var C=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!v||typeof v!=="string"){return z}var x=[],s,E,H,r,u=true,t=b.isXML(e),B=v,D,G,F,y;do{p.exec("");s=p.exec(B);if(s){B=s[3];x.push(s[1]);if(s[2]){r=s[3];break}}}while(s);if(x.length>1&&k.exec(v)){if(x.length===2&&f.relative[x[0]]){E=h(x[0]+x[1],e)}else{E=f.relative[x[0]]?[e]:b(x.shift(),e);while(x.length){v=x.shift();if(f.relative[v]){v+=x.shift()}E=h(v,E)}}}else{if(!A&&x.length>1&&e.nodeType===9&&!t&&f.match.ID.test(x[0])&&!f.match.ID.test(x[x.length-1])){D=b.find(x.shift(),e,t);e=D.expr?b.filter(D.expr,D.set)[0]:D.set[0]}if(e){D=A?{expr:x.pop(),set:a(A)}:b.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&e.parentNode?e.parentNode:e,t);E=D.expr?b.filter(D.expr,D.set):D.set;if(x.length>0){H=a(E)}else{u=false}while(x.length){G=x.pop();F=G;if(!f.relative[G]){G=""}else{F=x.pop()}if(F==null){F=e}f.relative[G](H,F,t)}}else{H=x=[]}}if(!H){H=E}if(!H){b.error(G||v)}if(d.call(H)==="[object Array]"){if(!u){z.push.apply(z,H)}else{if(e&&e.nodeType===1){for(y=0;H[y]!=null;y++){if(H[y]&&(H[y]===true||H[y].nodeType===1&&b.contains(e,H[y]))){z.push(E[y])}}}else{for(y=0;H[y]!=null;y++){if(H[y]&&H[y].nodeType===1){z.push(E[y])}}}}}else{a(H,z)}if(r){b(r,C,z,A);b.uniqueSort(z)}return z};b.uniqueSort=function(r){if(c){o=i;r.sort(c);if(o){for(var e=1;e":function(x,r){var u=typeof r==="string",v,s=0,e=x.length;if(u&&!/\W/.test(r)){r=r.toLowerCase();for(;s=0)){if(!s){e.push(v)}}else{if(s){r[u]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,"")},TAG:function(r,e){return r[1].toLowerCase()},CHILD:function(e){if(e[1]==="nth"){var r=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(r[1]+(r[2]||1))-0;e[3]=r[3]-0}e[0]=j++;return e},ATTR:function(u,r,s,e,v,x){var t=u[1].replace(/\\/g,"");if(!x&&f.attrMap[t]){u[1]=f.attrMap[t]}if(u[2]==="~="){u[4]=" "+u[4]+" "}return u},PSEUDO:function(u,r,s,e,v){if(u[1]==="not"){if((p.exec(u[3])||"").length>1||/^\w/.test(u[3])){u[3]=b(u[3],null,null,r)}else{var t=b.filter(u[3],r,s,true^v);if(!s){e.push.apply(e,t)}return false}}else{if(f.match.POS.test(u[0])||f.match.CHILD.test(u[0])){return true}}return u},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(s,r,e){return !!b(e[3],s).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(e){return"text"===e.type},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toLowerCase()==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}},setFilters:{first:function(r,e){return e===0},last:function(s,r,e,t){return r===t.length-1},even:function(r,e){return e%2===0},odd:function(r,e){return e%2===1},lt:function(s,r,e){return re[3]-0},nth:function(s,r,e){return e[3]-0===r},eq:function(s,r,e){return e[3]-0===r}},filter:{PSEUDO:function(s,y,x,z){var e=y[1],r=f.filters[e];if(r){return r(s,x,y,z)}else{if(e==="contains"){return(s.textContent||s.innerText||b.getText([s])||"").indexOf(y[3])>=0}else{if(e==="not"){var t=y[3];for(var v=0,u=t.length;v=0)}}},ID:function(r,e){return r.nodeType===1&&r.getAttribute("id")===e},TAG:function(r,e){return(e==="*"&&r.nodeType===1)||r.nodeName.toLowerCase()===e},CLASS:function(r,e){return(" "+(r.className||r.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(v,t){var s=t[1],e=f.attrHandle[s]?f.attrHandle[s](v):v[s]!=null?v[s]:v.getAttribute(s),x=e+"",u=t[2],r=t[4];return e==null?u==="!=":u==="="?x===r:u==="*="?x.indexOf(r)>=0:u==="~="?(" "+x+" ").indexOf(r)>=0:!r?x&&e!==false:u==="!="?x!==r:u==="^="?x.indexOf(r)===0:u==="$="?x.substr(x.length-r.length)===r:u==="|="?x===r||x.substr(0,r.length+1)===r+"-":false},POS:function(u,r,s,v){var e=r[2],t=f.setFilters[e];if(t){return t(u,s,r,v)}}}};var k=f.match.POS,g=function(r,e){return"\\"+(e-0+1)};for(var m in f.match){f.match[m]=new RegExp(f.match[m].source+(/(?![^\[]*\])(?![^\(]*\))/.source));f.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+f.match[m].source.replace(/\\(\d+)/g,g))}var a=function(r,e){r=Array.prototype.slice.call(r,0);if(e){e.push.apply(e,r);return e}return r};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(l){a=function(u,t){var r=t||[],s=0;if(d.call(u)==="[object Array]"){Array.prototype.push.apply(r,u)}else{if(typeof u.length==="number"){for(var e=u.length;s";var e=document.documentElement;e.insertBefore(r,e.firstChild);if(document.getElementById(s)){f.find.ID=function(u,v,x){if(typeof v.getElementById!=="undefined"&&!x){var t=v.getElementById(u[1]);return t?t.id===u[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===u[1]?[t]:undefined:[]}};f.filter.ID=function(v,t){var u=typeof v.getAttributeNode!=="undefined"&&v.getAttributeNode("id");return v.nodeType===1&&u&&u.nodeValue===t}}e.removeChild(r);e=r=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){f.find.TAG=function(r,v){var u=v.getElementsByTagName(r[1]);if(r[1]==="*"){var t=[];for(var s=0;u[s];s++){if(u[s].nodeType===1){t.push(u[s])}}u=t}return u}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){f.attrHandle.href=function(r){return r.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=b,s=document.createElement("div");s.innerHTML="

";if(s.querySelectorAll&&s.querySelectorAll(".TEST").length===0){return}b=function(x,v,t,u){v=v||document;if(!u&&v.nodeType===9&&!b.isXML(v)){try{return a(v.querySelectorAll(x),t)}catch(y){}}return e(x,v,t,u)};for(var r in e){b[r]=e[r]}s=null})()}(function(){var e=document.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}f.order.splice(1,0,"CLASS");f.find.CLASS=function(r,s,t){if(typeof s.getElementsByClassName!=="undefined"&&!t){return s.getElementsByClassName(r[1])}};e=null})();function n(r,x,v,A,y,z){for(var t=0,s=A.length;t0){u=e;break}}}e=e[r]}A[t]=u}}}b.contains=document.compareDocumentPosition?function(r,e){return !!(r.compareDocumentPosition(e)&16)}:function(r,e){return r!==e&&(r.contains?r.contains(e):true)};b.isXML=function(e){var r=(e?e.ownerDocument||e:0).documentElement;return r?r.nodeName!=="HTML":false};var h=function(e,y){var t=[],u="",v,s=y.nodeType?[y]:y;while((v=f.match.PSEUDO.exec(e))){u+=v[0];e=e.replace(f.match.PSEUDO,"")}e=f.relative[e]?e+"*":e;for(var x=0,r=s.length;x=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},destroy:function(){var g=this;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent("on"+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h["on"+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent("on"+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i["on"+j]=null}}}catch(g){}}},_pageInit:function(h){var g=this;if(g.domLoaded){return}g.domLoaded=true;f(g.inits,function(i){i()});g.inits=[]},_wait:function(i){var g=this,h=i.document;if(i.tinyMCE_GZ&&tinyMCE_GZ.loaded){g.domLoaded=1;return}if(h.attachEvent){h.attachEvent("onreadystatechange",function(){if(h.readyState==="complete"){h.detachEvent("onreadystatechange",arguments.callee);g._pageInit(i)}});if(h.documentElement.doScroll&&i==i.top){(function(){if(g.domLoaded){return}try{h.documentElement.doScroll("left")}catch(j){setTimeout(arguments.callee,0);return}g._pageInit(i)})()}}else{if(h.addEventListener){g._add(i,"DOMContentLoaded",function(){g._pageInit(i)})}}g._add(i,"load",function(){g._pageInit(i)})},_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});a=d.dom.Event=new d.dom.EventUtils();a._wait(window);d.addUnload(function(){a.destroy()})})(tinymce);(function(a){a.dom.Element=function(f,d){var b=this,e,c;b.settings=d=d||{};b.id=f;b.dom=e=d.dom||a.DOM;if(!a.isIE){c=e.get(b.id)}a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){b[g]=function(){var h=[f],j;for(j=0;j_

eTi_0??$ABZ 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 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Administracja NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Witaj w " + +#: index.php:46 +msgid "Welcome" +msgstr "Witaj" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "" + +#: index.php:48 +msgid "Username" +msgstr "Nazwa użytkownika" + +#: index.php:49 +msgid "Password" +msgstr "Hasło" + +#: index.php:50 +msgid "Login" +msgstr "Login" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administracja" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Funkcje administracyjne NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Zawiadamianie" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Pozwala organizować kontakty, grupy i szablony oraz sposób zawiadamiania o szczególnych przypadkach." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Dane statystyczne" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Grupa" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Aktywne" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Nieaktywne" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Dane kontaktu" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Grupy kontaktów" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Okresy czasowe" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Szablony kontaktów" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Plik konfiguracyjny został pomyślnie zapisany!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Konfiguracja została pomyślnie zapisana:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Nie można otworzyć/nadpisać pliku konfiguracyjnego (sprawdź uprawnienia)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Zapisywanie konfiguracji nie powiodło się:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Plik konfiguracyjny CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Nie można otworzyć pliku z danymi (sprawdź uprawnienia)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Wstawiono nowe polecenie:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Zmodyfikowano polecenie:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Wejście do bazy danych nie powiodło się! Nie wpisano wszystkich wymaganych danych!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Definiowanie poleceń" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Zapisanie niemożliwe!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "niesklasyfikowany" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "polecenie sprawdzające" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "różne polecenia" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Wejście nie może być aktywowane, ponieważ jest używane przez inną konfigurację" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "nazwa polecenia" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Wiersz polecenia" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Błąd podczas wybierania danych z bazy danych:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Polecenia sprawdzające" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Polecenia kontroli, powiadomień, specjalne i inne." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "nie jest zapisywalny" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Wstawiono nową domenę:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Zmodyfikowano domenę:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Ostrzeżenie, wystąpił przynajmniej jeden błąd, proszę sprawdzić!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Proszę wypełnić wszystkie pola zaznaczone gwiazdką *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Następujące pole zawiera niedozwolone znaki:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Opis" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Wstawiono nowa grupę kontaktów:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Zmodyfikowano grupę kontaktów:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Definiowanie grup kontaktów (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Uwaga, brak zdefiniowanych kontaktów!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Grupa kontaktów" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Wstawiono nowy kontakt:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Zmodyfikowano kontakt:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Definiowanie kontaktów (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Uwaga, brak zdefiniowanych okresów czasowych!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Uwaga, brak zdefiniowanych poleceń!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nazwa kontaktu" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Definiowanie szablonów kontaktów (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "plik usunięty" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "Pomyślnie usunięto" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Usuń pliki kopii zapasowej" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filtr" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Szukaj" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Usuń" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Plik kopii zapasowej" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "wymagane" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Przerwij" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Przytrzymaj CTRL aby wybrać
więcej niż jedna pozycje" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "Pobierz" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Użytkownik zmodyfikowany:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "" + +#: admin/group.php:114 +msgid "Read" +msgstr "" + +#: admin/group.php:115 +msgid "Write" +msgstr "Zapisz" + +#: admin/group.php:116 +msgid "Link" +msgstr "" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Brak danych" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Tekstowy edytor pomocy" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Klucz główny" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Klucz podrzędny" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Język" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "wersja Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Ładuj domyślny tekst" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Wstawiono nowa zalezność hosta:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Zmodyfikowano zalezność hosta:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Definiowanie zależności hostów (hostdependecies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Uwaga, brak zdefiniowanych hostów i grup hostów!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Nazwa konfiguracji" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Zależne hosty" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Zależne grupy hostów" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Wstawiono nową eskalację hosta:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Zmodyfikowano eskalację hosta:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Definiowanie eskalacji hostów (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Uwaga, brak zdefiniowanych kontaktów i grup kontaktów!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosty" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Grupy hostów" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Wstawiono nowe rozszerzone informacje o hoście:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Zmodyfikowano rozszerzone informacje o hoście:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Definiuj rozszerzone informacje o Hoście (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Uwaga, nie zdefiniowano żadnych hostów!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nazwa hosta" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notatki" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Umieszczono nowa grupę hostów:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Zmodyfikowano grupę hostów:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Definiuj grupę hostów (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Grupa hostów" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Wstawiono nowego hosta:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Zmodyfikowano hosta:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "Przypisano, dłużej nieużywane pliki konfiguracyjne zostały pomyślnie usunięte!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "plik hosta usunięty" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Błędy podczas usuwania starych plików konfiguracyjnych - proszę sprawdzić!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Definiowanie hostów (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Uwaga, brak zdefiniowanych grup kontaktów!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Wstawiono nowy szablon hosta:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Zmodyfikowano szablon hosta:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Definiowanie szablonów hostów" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Nazwa szablonu" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Zaimportowano plik - Plik [overwrite flag]" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Import konfiguracji" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Definicja szablonu" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Importuj plik" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Zastąp bazę danych" + +#: admin/import.php:94 +msgid "Import" +msgstr "Import" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Przytrzymaj CTRL aby wybrać
więcej niż jeden" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "To jest względna ścieżka twojej instalacji NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "To jest całkowita ścieżka do twojej instalacji NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Jeżeli potrzebujesz bezpiecznego połączenia, wybierz HTTPS zamiast HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Proszę wybrać tymczasowy katalog z prawami zapisu. Domyślnym katalogiem jest temp, dostarczony przez twój OS" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Proszę wybrać swój język aplikacji" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Szyfrowanie nie powinno być nastawione na nic innego poza utf-8. Jakiekolwiek zmiany na własne ryzyko" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Adres IP lub nazwa hosta serwera bazy danych
np. localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Port serwera MySQL, domyślnie 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Nazwa bazy danych NagiosQL
np. db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Użytkownik z wystarczającym prawem do bazy danych NagiosQL
Taki użytkownik powinien mieć przynajmniej prawa do SELECT, INSERT, UPDATE, DELETE" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Hasło dla wyżej wymienionego użytkownika" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Ze względów bezpieczeństwa, po zdefiniowanej ilości sekund, sesja zostanie przerwana" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Wybierz jedną z autoryzacji: opartą na twoim webserwerze
np. plik konfiguracyjny Apache (config lub htaccess ) lub NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Ile pozycji ma być widocznych na stronie (np. usług lub hostów)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Wybór spośród wielu pozycji za pomocą nowego dialogu lub przez przytrzymanie CTRL + lewy przycisk myszy - jak w NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "" + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Brak dostępnych informacji" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Zbiór danych pomyślnie usunięty. Zniszczone wpisy:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Dziennik" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Usuń wpisy dziennika z okresu:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Proszę wypełnić przynajmniej czas startu i zatrzymania" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Czy na pewno chcesz usunąć wszystkie wpisy dziennika pomiędzy wybranymi datami?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "poprzednie 20 wpisów" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "następne 20 wpisów" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Wystąpił błąd podczas wstawiania danych do bazy danych:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Dane zostały pomyślnie wstawione do bazy danych!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Definiuj prawa dostępu do Menu" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "" + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Monitoring" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Pozwala definiować hosty, grupy hostów, a także szablonowe i szczególne metody ich kontroli." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Usługi" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Grupy usług" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Szablony hostów" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Szablony usług" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Dostępny" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Wybrany" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Główny plik konfiguracyjny Nagiosa" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Hasło pomyślnie zmodyfikowano" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Hasło zbyt krótkie lub różna liczba pól!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Stare haslo jest bledne" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Zapisz" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Nowe hasła się różnią!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Nowe hasło jest zbyt krótkie - użyj przynajmniej 6 znaków!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Wstawiono nową zależność usługi:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Zmodyfikowano zależność usługi:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Definiowanie zależności usług (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Zależne usługi" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Wstawiono nową eskalację usługi:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Eskalacja usługi zmodyfikowana:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Definiowanie eskalacji usług (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Wstawiono nowe rozszerzone informacje o usłudze:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Zmodyfikowano rozszerzone informacje usług:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Definiowanie rozszerzonych informacji usług (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Nazwa hosta" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Usługa" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Wstawiono nowa grupę usług:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Grupa usług zmodyfikowana:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Definiowanie grupy usług (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Uwaga, brak zdefiniowanych usług!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Grupa usług" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Wstawiono nową usługę:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Zmodyfikowano usługę:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Usunięty plik usługi:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Definiuj usługi (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Uwaga, brak zdefiniowanych hostów lub grup hostów!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Uwaga, brak zdefiniowanych poleceń sprawdzających!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Nazwa usługi" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Wszystkie konfiguracje" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Wstawiono nowy szablon usługi:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Zmodyfikowano szablon usługi:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Definiowanie szablonów usług (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nazwa szablonu" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Opis usługi" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Ustawienia zostały zmienione" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Wystąpił błąd podczas zapisywania settings.php, proszę sprawdzić uprawnienia!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Konfigurowanie ustawień" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Zmień swoje aktualne ustawienia NagiosQL (np. użytkownika bazy danych, języka)" + +#: admin/settings.php:158 +msgid "Path" +msgstr "Ścieżka" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Katalog tymczasowy" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protokół serwera" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Kodowanie" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Baza danych" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Serwer MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Port serwera MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nazwa bazy danych" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Użytkownik bazy danych" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Hasło bazy danych" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Ochrona" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Czas automatycznego wylogowania" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Rodzaj uwierzytelniania" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Wspólny" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Linii danych na stronę" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Metoda selekcji" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Polecenia różne" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Pozwalają definiować zależności, eskalacje oraz dane hostów i usług." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Zależności hostów" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Eskalacje hostów" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Dodatkowe informacje o hoście" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Zależności usług" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Eskalacje usług" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Rozszerzone informacje o usłudze" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "nieudany" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "plik procesu Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Wiersz poleceń Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "plik binarny Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Góra" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Dół" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Modyfikacja" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Wstawiono nowy okres czasu:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Zmodyfikowano okres czasowy:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Definicje okresów czasowych" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Proszę wstawić definicję czasu oraz jego zakres" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Okres czasowy" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Różne narzędzia" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Użyteczne funkcje dla importu danych, głównej konfiguracji, kontroli demona i innych." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Dodano nowego użytkownika:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Zarządzanie użytkownikiem" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Hasła się różnią!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Proszę wpisać hasło" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Hasło jest za krótkie - użyj przynajmniej 6 znaków!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Uwierzytelnianie Webserwera" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Zapisz konfiguracje hosta" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Zapisz konfiguracje usług" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Nie można znaleźć pliku binarnego Nagios lub brak praw do wykonania!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Zdalne wykonanie (FTP SITE EXEC) nie jest wspierane w twoim systemie!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios demon pomyślnie zrestartowany" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Polecenie restartu pomyślnie wysłane do Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Nieudany restart - Nie znaleziono pliku polecenia Nagios lub brak praw wykonywania" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Plik poleceń Nagios nie znaleziony lub nie ma praw do zapisu" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Restart nie powiódł się - demon Nagiosa nie działał" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Demon Nagios nie jest uruchomiony, nie można wysłać polecenia restart!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Restart nie powiódł się - ograniczenia FTP " + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Restart Nagios nie jest możliwy poprzez zdalne połączenie FTP!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Sprawdź zapisane pliki konfiguracyjne" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Sprawdź pliki konfiguracyjne:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Restart Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Zapisz dane monitorujące" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Zapisz dodatkowe dane" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Ostrzeżenie, przed restartem Nagios zawsze sprawdź pliki konfiguracyjne!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Zrób to" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Sprawdzono zapisaną konfigurację Nagios - Ostrzeżenia/Błędy:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Zapisane pliki konfiguracyjne są przekonywujące, Nagios może być zrestartowany!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Zainstalowano" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Informacje" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Już masz zainstalowaną najnowszą wersję" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domena" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nazwa serwera" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Metoda" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Katalogi konfiguracyjne" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Katalog podstawowy" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Katalog hosta" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Katalog usługi" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Katalog zapasowy" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Zapasowy katalog hosta" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Zapasowy katalog usługi" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Zamki dla kluczy dostępu" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Klucze dostępu" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Czynność" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Zaznaczono" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Dodaj" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Kontrola formularza" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Pytanie zabezpieczające" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Tak" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Nie" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Czas" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Użytkownik" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Pozycja" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "Od" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Do" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Usuń wpisy dziennika" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Kopiuj" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Potwierdź hasło" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Stare hasło" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Nowe hasło" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Zmień hasło" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Strona menu" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Szukaj znaku" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Zapisz plik config" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Polecenie" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Typ polecenia" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Wyklucz" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Zakresy czasowe" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Dzień weekendowy" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Zakres czasu" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Definicja czasu" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Wstaw" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Modyfikuj wybór" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Okres czasowy hostów" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Okres czasowy usług" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Opcje hosta" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Opcje usług" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Polecenie hosta" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Polecenie usługi" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Adres email" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Numer pagera" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Adres główny" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Zezwól na zawiadamianie hosta" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Zezwól na zawiadamianie usługi" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Można przesyłać polecenia" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Pozostaw informacje o statusie" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Pozostaw informacje o braku statusu" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Członkowie" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Członkowie grupy" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Ustawienia publiczne" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Rodzice" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Wybierz polecenie" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Widok polecenia" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Dodatkowe szablony" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Zaznacz ustawienia" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Stan początkowy" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Odstęp ponownego sprawdzenia" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Limit wystąpień sprawdzeń" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Kontrola odstępów" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Kontrole aktywne włączono" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Kontrole pasywne włączono" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Kontrola okresu" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Próg świeżości" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Kontrola świeżości" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Śledzenie hosta" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Śledzenie usług" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Opiekun zdarzeń" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Opiekun zdarzeń włączony" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Niskie progi pozycji" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Wysokie progi pozycji" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Włączono wykrywanie pozycji" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Opcje wykrywania pozycji" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Pozostaw informacje o statusie" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Pozostaw informacje o braku statusu" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Proces wykonywania danych" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Ustawienia alarmu" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Kontakty" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Powiadomienie okresu" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Powiadomienie opcji" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Odstępy miedzy powiadomieniami" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Opóźnienie pierwszego powiadomienia" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Powiadomienia włączone" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Opcje śledzenia" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Ustawienia podstawowe" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Obraz VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "URL do notatek" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Obrazek statusu" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Obrazek ikony" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "URL dodatkowych działań" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "współrzędne 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "współrzędne 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Tekst zastępujący ikonę" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "standard" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "włącz" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "wyłącz" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "pomiń" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Dowolne definicje zmiennych" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Nazwa zmiennej" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Wartość zmiennej" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Czy na pewno chcesz usunąć ten wpis do bazy danych?" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Czy na pewno chcesz usunąć wszystkie zaznaczone pozycje?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Zaznacz wszystkie pokazane zbiory danych" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Plik" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Zapisz wszystkie pliki konfiguracyjne" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Adres" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Wyświetlana nazwa" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Użyj tej konfiguracji jako szablonu" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Ogólna nazwa" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Proszę zaznaczyć przynajmniej jedna z opcji:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Nazwa grupy hostów" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Członkowie grupy hostów" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Jest zmienny" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Równoległe kontrole" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Nazwa filtru konfiguracyjnego" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Katalog importu" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Proszę wstawić nazwę zmiennej oraz jej definicje" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Ostrzeżenie:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Nie wypelnileś niektórych wymaganych pól!

Jeżeli wartości są ustawione za pomocą szablonu, możesz je zapisać - w przeciwnym razie otrzymasz błędna konfigurację!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Główny katalog Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Zapisz konfiguracje" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Nie wypełniłeś wszystkich wymaganych argumentów (ARGx) dla wybranego polecenia!

Jeżeli wartości są opcjonalne, możesz je zapisać - w przeciwnym razie otrzymasz błędną konfigurację!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Członkowie grupy usług" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Nazwa grupy usług" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Grupy hostów" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Dziedziczenie rodziców" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Kryteria testowania w przypadkach uszkodzeń" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Kryteria powiadamiania w przypadkach uszkodzeń" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Okres zależności" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Okres eskalacji" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Opcje eskalacji" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Pierwsze powiadomienie" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Ostatnie powiadomienie" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Pomoc" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Kalendarz" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Poniedziałek" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Wtorek" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Środa" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Czwartek" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Piątek" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Sobota" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Niedziela" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Strona Główna" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Nadzór" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Polecenia" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Specjalności" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Narzędzia" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Zależności hosta" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Eskalacja hosta" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Import Danych" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Użytkownik admin" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Sterowanie Nagiosem" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Dziennik" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Konfiguracja Nagiosa" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Ustawienia" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Definicje" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "konfiguracja CGI" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Dostęp do menu" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domeny" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Edytor pomocy" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Ostrzeżenie: plik konfiguracyjny jest nieaktualny!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Nie można utworzyć kopii zapasowej ani usunąć starego pliku konfiguracyjnego (sprawdz uprawnienia)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Nie można zarchiwizować starego pliku konfiguracyjnego, ponieważ pozwolenia są złe (zdalny FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Nie można usunąć pliku, ponieważ uprawnienia są niewłaściwe (zdalny FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Nie można ściągnąć pliku konfiguracyjnego (połączenie FTP nie powiodło się)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Nie można zapisac pliku konfiguracyjnego (połączenie FTP nie powiodło się)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Zapisywanie konfiguracji nie powiodło się (połączenie FTP nie powiodło się):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Nie można otworzyć/nadpisać pliku konfiguracyjnego (połączenie FTP nie powiodło się)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Nie udało się otworzyć katalogu" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "nieaktualny" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "brakujący" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "aktualny" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Ostatnia aktualizacja banku danych:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Kasowanie nie powiodło się, ponieważ wystąpił błąd bazy danych:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Dane nie zostały wymazane. Zbiór danych nie istnieje albo jest chroniony przed skasowaniem." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Usuń id zbioru danych:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- z tabeli:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- wraz z uszkodzonymi wpisami:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Dane wymazano z tabeli:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Kopiowanie zbioru danych nieudane - tabela [nowa nazwa]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Skopiowano zbiór danych - tabela [nowa nazwa]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " tabela " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Stosunek do " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", wejście " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "usuwanie nie możliwe" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabela dla definicji importu" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "nie jest dostępny!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "wewnątrz" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "istnieje i nie został nadpisany" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "nie został zapisany" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "nie został umieszczony:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "umieszczone pomyślnie" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Błąd: niewłaściwa liczba argumentów - nie można zaimportować" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Brak parametru połączenia serwera!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Połączenie z serwerem bazy danych nie powiodło się z powodu:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Brak parametru połączenia bazy danych!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Schowaj menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Pokaz menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Błąd podczas połączenia z bazą danych:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Błąd w ustawieniach poprawnej lokalizacji, proszę zgłosić ten błąd z powiązanym wyjściem 'locale -a' to bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Logowanie pomyślne!" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Logowanie nieudane!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Limit czasu sesji został osiągnięty - Sekundy:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Poufna strona udostępniona:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Użytkownik nie istnieje w bazie danych" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Admin" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Zalogowano w:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Admin nie może być usunięty" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Host lokalny nie może być usunięty" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "" + +#: functions/translator.php:56 +msgid "English" +msgstr "Angielski" + +#: functions/translator.php:60 +msgid "German" +msgstr "Niemiecki" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chiński (Uproszczony)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Włoski" + +#: functions/translator.php:72 +msgid "French" +msgstr "Francuski" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Rosyjski" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Hiszpański" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Portugalski (Brazylijski)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Niemiecki" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Dokumentacja elektroniczna" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Witamy w kreatorze instalacji NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Ten kreator pomoże ci zainstalować i skonfigurować NagiosQL" + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "W razie pytań proszę odwiedzić" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "" + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Wymagania" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Zakończ" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Sprawdza wymagania" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Sprawdzanie praw systemowych" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "" + +#: install/step1.php:113 +msgid "Version" +msgstr "" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "" + +#: install/step1.php:184 +msgid "should be" +msgstr "" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Test czytania na pliku ustawień (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Plik z ustawieniami nie istnieje (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "będzie utworzony" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Test zapisu na pliku ustawień (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Test zapisu na katalogu ustawień (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Test czytania na pliku klasy (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Test czytania na pliku startowym strony (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Test czytania na pliku szablonu (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Test czytania na pliku szablonu admina (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Test czytania na pliku szablonu (templates/files/contacts.tpl.dat) ()" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Test czytania na pliku obrazka (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Występują pewne błędy - proszę sprawdź swoje ustawienia systemowe i przeczytaj wymagania NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Przeczytaj plik INSTALATION z NagiosQL, żeby dowiedzieć się jak je naprawić." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Następnie - odśwież tą stronę aby kontynuować" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "odśwież" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Test środowiska przeszedł pomyślnie" + +#: install/step1.php:264 +msgid "Next" +msgstr "Dalej" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Użytkownik NagiosQL DB" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Haslo NagiosQL DB" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Czy zrzucić bazę danych jeśli istnieje ?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Początkowy użytkownik NagiosQL" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Początkowe hasło NagiosQL" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Proszę powtórzyć hasło" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importuj próbne pliki konfiguracyjne Nagios" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Kończenie konfiguracji" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Tworzenie nowej bazy danych" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Ustal początkowego administratora NagiosQL" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Zapisywanie globalnych ustawień do bazy danych" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Zapisywanie " + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importuj przykładowe dane Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Aktualizacja z wersji" + +#: install/step3.php:86 +msgid "to" +msgstr "do" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "Baza danych istnieje a zrzut nie został wybrany, proszę dokonać korekty lub pokierować ręcznie" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "zaliczony" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Z powrotem" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Aby kontynuowac prosze usunac katalog instalacyjny!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "wspierany" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "niewspierany" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "Wykonane" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/pl_PL/index.html b/config/locale/pl_PL/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/pt_BR/LC_MESSAGES/index.html b/config/locale/pt_BR/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/pt_BR/LC_MESSAGES/pt_BR.mo b/config/locale/pt_BR/LC_MESSAGES/pt_BR.mo new file mode 100644 index 0000000000000000000000000000000000000000..482e043797073fca4adf902cc9014873380dbdb6 GIT binary patch literal 76485 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
7{rC67NR! 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 literal 0 HcmV?d00001 diff --git a/config/locale/pt_BR/LC_MESSAGES/pt_BR.po b/config/locale/pt_BR/LC_MESSAGES/pt_BR.po new file mode 100644 index 0000000..a03bb5c --- /dev/null +++ b/config/locale/pt_BR/LC_MESSAGES/pt_BR.po @@ -0,0 +1,3701 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +# Benedito Ramos , 2012. +# Diramos , 2011. +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:53+0100\n" +"PO-Revision-Date: 2012-03-09 22:53+0100\n" +"Last-Translator: \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.net/projects/p/nagiosql/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Bem vindo ao NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "O módulo de administração que facilita as tarefas de criação, alteração e exclusão de arquivos de configuração do Nagios. Os dados são armazenados em banco de dados e gravados nos arquivos (.cfg), de forma fácil e prática, poupando o administrador da tarefa de edição manual." + +#: index.php:45 +msgid "Welcome to" +msgstr "Bem vindo ao" + +#: index.php:46 +msgid "Welcome" +msgstr "Bem vindo" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Para acessar o NagiosQL, preencha os dados solicitados acima.
Em caso de dúvidas, contate o Administrador." + +#: index.php:48 +msgid "Username" +msgstr "Nome" + +#: index.php:49 +msgid "Password" +msgstr "Senha" + +#: index.php:50 +msgid "Login" +msgstr "Entrar" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Administração" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Administração do NagiosQL" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Notificações" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Configurações de contatos, grupos e modelos de contatos e períodos de notificações." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Resumo de dados" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Objetos" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Ativo" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Inativo" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Contatos" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Grupos de contatos" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Períodos" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Modelos de contatos" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Configurações de arquivo gravadas com sucesso!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Configurações gravadas com sucesso:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Não foi possível abrir/sobrescrever o arquivo de configuração (verifique as permissões" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Gravação da configuração falhou:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Não foi possível abrir ou sobrescrever o arquivo de configuração. Verifique as permissõesdo sistema FTP remoto" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Gravação da configuração falhou (FTP remoto):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Arquivo cgi.cfg" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Não foi possível abrir o arquivo de dados (verifique as permissões)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Não foi possível abrir o arquivo temporário" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Gravação da configuração falhou (FTP remoto):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Novo comando incluído:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Comando modificado:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Entrada na base de dados falhou! Todos os dados nessários não foram preenchidos!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "Erro! Sem permissão de escrita na base de dados." + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Configurações de comandos (commands.cfg)" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Não é possível salvar!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "Não classificado" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "Comando de verificação" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "Comando misto" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Entrada não pode ser ativada porque é usada por outra configuração" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Nome" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Linha de comando" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Erro ao selecionar dados da base de dados:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Comandos" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Configurações de comandos (de verificação, de notificação e mistos)." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "não é possível alterar" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Arquivo nagios.cfg" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "não é um arquivo de configuração válido!" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "Arquivo CGI de configuração" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "Módulo SSH não carregado!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "Módulo FTP não carregado!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Novo domínio inserido" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Domínio modificado" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "Dados do Domínio" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Atenção! Ocorreu erro. Verifique." + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Campos marcados com * são de preenchimento obrigatório! " + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "O campo seguinte contém caracteres não permitidos" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "Nome" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Descrição" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Novo gurpo de contato:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Grupo de contado alterado:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Configurações de grupos de contatos (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Atenção! Nenhum contato definido!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Nome" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Novo contato inserido" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Contato modificado" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Configurações de contatos (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Atenção! Nenhum período definido!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Atenção, nenhum comando definido" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Nome" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "Novo modelo de contato inserido:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Modelo de contato modificado:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Configurações de modelos de contatos (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "Domínios" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "Atenção: nenhum domínio definido!" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Habilitar" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Desabilitar" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "Nome" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Arquivo excluído" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "Exclusão feita com sucesso" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Excluir backup" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Filtro" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Procurar" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Excluir" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Limpar filtro" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Arquivos para exclusão " + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr " Preenchimento obrigatório" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Cancelar" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Pressione CTRL para selecionar mais que um arquivo." + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "Backup de arquivos falhou ou não existe permissão para ler os arquivos de backup" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Excluir configuração" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "Arquivo de configuração" + +#: admin/download.php:67 +msgid "Download" +msgstr "Download" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Novo grupo adicionado" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Usuário modificado" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Grupos de usuários" + +#: admin/group.php:114 +msgid "Read" +msgstr "Leitura" + +#: admin/group.php:115 +msgid "Write" +msgstr "Gravação" + +#: admin/group.php:116 +msgid "Link" +msgstr "Ligação de objetos" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Nome" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Nenhum dado" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Editor de ajuda" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Filtro primário" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Filtro secundário" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Idioma" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Versão do Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Carregar texto padrão" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Nova dependência de host incluída:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Dependência de host alterada:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Configurações de dependências de host (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Atenção, nenhum hosts e grupo de hosts foi definido!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Nome" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Host" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Grupo de hosts" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Nova escala de host incluída:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Escala de host alterada:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Configurações de escalas de host (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Atenção! Nenhum contato ou grupos de contatos foi definido" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Hosts" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Grupos de hosts" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Nova informações extras de host incluídas" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Informações extras de host alterada" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Configurações de informações extras de hosts (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Atenção! Nenhum host definido!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Nome" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Notas" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Novo grupo de host incluído:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Grupo de hosts alterado:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Configurações de grupos de hosts (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Nome" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Novo host incluído:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Host modificado:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "Os arquivos antigos, não mais usados pelo sistema, foram excluídos!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Arquivo de host excluído:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Não foi possível remover os arquivos pelo sistema. Verifique e faça a remoção manualmente" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Erros durante a exclusão de arquivos de configurações antigos. Verifique!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "Configurações de hosts" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Atenção! Nenhum grupo de contato definido!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Novo modelo de host inserido:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Modelo de hosts modificado:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Configurações de modelos de hosts (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Nome" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Erro de envio do arquivo:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Arquivo importado:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Importar arquivos" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Modelo de definição" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Arquivos para importação " + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Arquivo para importar" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Sobrescrever base de dados " + +#: admin/import.php:94 +msgid "Import" +msgstr "Importar" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Pressione CTRL para selecionar
mais que um registro." + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "Para evitar erros de configuração, a importação deve ser feita preferencialmente na seguinte ordem:

comandos -> períodos -> modelos de contatos -> contatos -> grupos de contatos -> modelos de hosts -> hosts -> grupos de hosts -> modelos de serviços -> serviços -> grupos de serviços

" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "Verifique as configurações após a importação!
Em caso de erros, corrija os arquivos e proceda a importação novamente. " + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Caminho relativo para instalação do NagiosQL." + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Caminho absoluto para instalação do NagiosQL." + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Se for necessário uma conexão segura, selecione HTTPS ao invés de HTTP." + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Selecione um diretório temporário com permissões de escrita. O padrão é o diretório /tmp do seu sistema." + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Selecione um idioma para a aplicação." + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "A codificação deve ser utf-8. Qualquer alteração fica por sua conta e risco." + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "Endereço IP ou nome do servidor da base de dados.
ex: localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Porta do servidor MySQL. O padrão é 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Nome da base de dados do NagiosQL
.ex: db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Usuário com permissões suficientes na base de dados do NagiosQL.
Tal usuário deve ter, no mínimo, permissão de SELECT, INSERT, UPDATE e DELETE na base." + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Senha para o usuário da base de dados NagiosQL citado no campo anterior." + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "Por razões de segurança, a sessão expira após o número de segundos definidos neste campo." + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Escolha o método de autenticação do seu servidor WEB.
Ex: configuração Apache (arquivo config ou htaccess) ou NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Número de registros a serem visualizados por página (ex: hosts, serviços, etc)." + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Selecione múltiplos arquivos usando novo diálogo ou pressionando CRTL + botão esquerdo do mouse." + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Habilitar ou desabilitar alertas, se um campo obrigatório não for preenchido." + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Habilitar ou desabilitar veririficação online de versão." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Se for necessário um servidor proxy para conectar-se à Internet (porta 80), informe um." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Endereço do seu servidor proxy (ex: proxy.seudominio.com:3128)" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Usuário para conexão através do servidor proxy (opcional)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Senha para conexão através do servidor proxy (opcional)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Informação" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Informação não disponível." + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Registros excluídos com sucesso. Dados atualizados: " + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Log do sistema" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Excluir entradas de log" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Preencha pelo menos data de início e fim das entradas de log a serem excluídas" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Confirma exclusão de todas as entradas de log do período selecionado?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "20 anteriores" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "20 próximas" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Erro na inclusão dos dados na base de dados:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Dados incluídos na base de dados com sucesso!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Níveis de acesso ao item de menu:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Controle de acesso" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "
Em \"Grupo de acesso\", defina o(s) grupo(s) para acesso ao item selecionado.

ATENÇÃO: \"Acesso irrestrito\" habilita TODOS os usuários/grupos ao item selecionado." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Configurações" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Configurações de hosts, serviços, grupos e modelos de hosts e de serviços." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Serviços" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Grupos de serviços" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Modelos de hosts" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Modelos de serviços" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Disponível" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Selecionados" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Arquivo nagios.cfg" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Senha alterada com sucesso" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Senha muito curta ou campos divergentes!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Senha atual incorreta" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Salvar" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "As novas senhas não são iguais!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "A senha deve ter, no mínimo, 6 caracteres!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Nova dependência de serviço incluída:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Dependência de serviço modificada:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Configurações de dependências de serviço (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Serviço - dependência" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Nova escala de serviço incluída" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Escala de serviço alterada:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Configurações de escalas de serviço (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Novas informações extras de serviço incluídas:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Informação extra de serviço alterada:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Configurações de informações extras de serviços (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Host" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Serviço" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Novo grupo de serviço incluído:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Grupo de serviço modificado:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Configurações de grupos de serviços (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Atenção! Nenhum serviço definido" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Nome" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Novo serviço incluído:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Serviço alterado:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Arquivo de serviço excluído:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Configurações de serviços (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Atenção! Nenhum host ou grupo de hosts definidos!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Atenção! Nenhum comando de verificação definido!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "Atenção: nenhum contato ou grupo de contato definido!" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Descrição" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Todas as configurações" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Novo modelo de serviço incluído" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Modelo de serviços alterado:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Configurações de modelos de serviços (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Nome" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Descrição" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Módulo Curl não carregado. O Proxy será desativado!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "Um erro ocorreu durante a gravação das configurações na base de dados!" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Erro na definição do locale. Informe este erro juntamente com a saída do comando 'locale -a' para bugs@nagiosql.org" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Os parâmetros foram alterados" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Ocorreu um erro na escrita de settings.php. Verifique as permissões! " + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "sem acesso para gravação. Verifique as permissões!" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Parâmetros" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Altere suas atuais configurações do NagiosQL (ex.usuário da base de dados, idioma)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Caminhos" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Diretório temporário" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Protocolo do servidor" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Codificação" + +#: admin/settings.php:187 +msgid "Database" +msgstr "Base de dados" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Servidor MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Porta do Servidor MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Nome da base de dados" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Usuário da base de dados" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Senha do usuário da base de dados" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Segurança" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Expiração de sessão" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Tipo de autenticação" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Gerais" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Registros por página" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Método de seleção" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Modelo de mensagem de alerta" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "Verificar atualizações online" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Servidor Proxy" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Endereço do Servidor Proxy" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Usuário do Servidor Proxy (opcional)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Senha do Servidor Proxy (opcional)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Extras" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Configurações extras de hosts e serviços, dependência e escala de hosts e serviços." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Host - dependência" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Host - escala" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Host - extra" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Serviço - dependência" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Serviço - escala" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Serviço - extra" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "Página de suporte ao NagiosQL" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "Informações de contato para suporte" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "Em caso de dúvidas, acesse o fórum de suporte online, visitando nosso site: " + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "Doações para o suporte ao NagiosQL" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "Se você acha que o NagiosQL é útil e simplifica a administração do Nagios no seu cotidiano, você pode querer apoiar o projeto, fazendo uma doação. Isso vai nos ajudar a manter o NagiosQL vivo, além de cobrir parte dos nossos custos. Obrigado por sua doação!" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "Doações para o NagiosQL no Sourceforge" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "Serviços de tradução" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "O NagiosQL foi traduzido para diversos idiomas. Pelo fato de alguns tradutores não estarem mais disponíveis, versões posteriores podem conter palavras ou frases não traduzidas para determinados idiomas. Caso queira, você pode nos ajudar a concluir a tradução, corrigí-la ou mesmo traduzir para um novo idioma ainda não disponível. Colabore com o NagiosQL fazendo parte do nosso time de tradutores. As traduções podem ser feitas online. Nós usamos um serviço de tradução aberto, onde você pode se cadastrar gratuitamente, a qualquer momento:" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "Serviço Transifex de traduções" + +#: admin/support.php:92 +msgid "Version check" +msgstr "Buscar por atualizações online" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "A busca por atualizações online está desabilitada. Caso queira, você pode habilitar através do menu \"Administração -> Parâmetros\"." + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "A busca de atualizações online se conecta ao site do NagiosQL para verificar se a versão instalada está atualizada." + +#: admin/support.php:106 +msgid "Environment check" +msgstr "Verificação do ambiente" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "Falhou" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "ok" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "Versão do PHP" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "Requisitos:" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "Módulo PHP:" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "Versão do MySQL" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "Configurações do .ini do PHP: " + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "Acesso de leitura/gravação no arquivo " + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "Verificações de configurações do Domínio" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "As caixas de marcação a seguir são baseadas nos dados e configurações do domínio. Para alterar o domínio, use o menu suspenso no lado superior direito. Repita isso para os outros domínios que você configurou. Para configurar os domínios, use o menu \"Administração -> Domínios\"." + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "Nome do Domínio" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "Tipo de conexão" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "Verificação da conexão" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "somente escrita" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Arquivo de processo do Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "arquivo não existe" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "Serviço Nagios não foi iniciado" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "não usado com FTP" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "processo parado" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Arquivo de comandos do Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Arquivo binário do Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "não executável" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "Verifique os arquivos de configuração e a configuração do processo" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "Nome de configuração" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "Usado nos dados do Domínio" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "Incluído no arquivo de configuração" + +#: admin/support.php:549 +msgid "not used" +msgstr "não usado" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "Definição cfg não encontrada" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "Definição cfg não encontrada, mas não usada " + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "Caminho da base errado: " + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "Arquivo cfg ilegível" + +#: admin/support.php:606 +msgid "Not used" +msgstr "Não usado" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "não usado. Exclua!" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Para cima" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Para baixo" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Alterar" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Novo período incluído:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Período alterado:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Configurações de períodos (timeperiods.cfg)" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Insira a unidade e intervalo de tempo" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Nome" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Ferramentas" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "Ferramentas para importação de dados, exclusão de arquivos de backup e de configuração, edição dos arquivos nagios.cfg e cgi.cfg, verificação das configurações e reinicialização do processo do Nagios" + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Novo usuário adicionado" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Usuários" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Senhas não conferem" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Preencha a senha" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "A senha deve ter, no mínimo, 6 caracteres!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Autenticação WEB" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "Gravação da configuração falhou! Base de dados ou registro não encontrados." + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Gravar configurações de host" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Nenhum item de configuração definido!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Gravar configurações de serviço" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "Nenhum registro encontrado ou ativo. Configuração gravada em branco." + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Não foi possível encontrar o arquivo binário do Nagios ou não hápermissão para executá-lo!" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Execução remota (FTP SITE EXEC) não é suportada pelo sistema!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Execução remota do comando de verificação do Nagios falhou (SSH remoto)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Arquivo binario do Nagios ou arquivo de configuração nagios.cfg não encontrado (SSH remoto)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Processo Nagios reiniciado com sucesso" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Reinicialização do Nagios efetuada com sucesso!" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Reinicialização falhou! Comando Nagios não encontrado sem permissão de execução!" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Comando Nagios não encontrado ou sem permissão de escrita!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Reinicialização falhou! Processo Nagios não encontrado" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Processo Nagios não encontrado! Não foi possível reiniciar!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Reinicialização falhou! Restrições FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Reinicialização do Nagios não é possível via conexão remota FTP" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Reinicialização falhou! Comando Nagios não encontrado ou sem permissão de execução (SSH remoto)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Processo Nagios reiniciado com sucesso (SSH remoto)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Reinicialização do Nagios efetuada com sucesso (SSH remoto)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Comando Nagios não encontrado (SSH remoto)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Controle do Nagios" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Verificar configuração do Nagios" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Reiniciar o Nagios" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Gravar configurações de hosts e serviços" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Gravar configurações adicionais" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Atenção! Sempre efetue verificação da configuração antes de reiniciar o Nagios" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Executar" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Verificação das configurações do Nagios efetuada! Alertas/Erros:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Configuração dos arquivos valida! O Nagios pode ser reinicializado." + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "verifique as configurações do proxy" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Versão atual" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Informação" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "Versão atualizada" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "A versão do NagiosQL instalada está desatualizada. Atualize para a última versão estável." + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "A versão atualmente instalada ainda está em teste e não tem suporte oficial" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Domínio" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Nome do servidor" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Método" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Diretório com par de chaves SSH" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Configuração de diretórios" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Diretório base" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Diretório de host" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Diretório de serviço" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Diretório de backup" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Diretório de backup de host" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Diretório de backup de serviço" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Diretório base de imagens" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Domínio comum usado" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Dados decode UTF8 em arquivos de configuração" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Chaves de acesso" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Chaves de acesso" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "Registrado" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Ação" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Selecionados" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Novo" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Alerta de verificação" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Alerta de confirmação" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Sim" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Não" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Data/hora" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Usuário" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Entrada" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "De" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "Até" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Excluir" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Copiar" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Confirmar senha" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Senha atual" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Alterar senha" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Alterar senha do usuário atual" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Item de menu" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Procurar" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Gravar arquivos" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Nome" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Tipo de Comando" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Exclusão" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Inclusão" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Configurações de horário" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Dia da semana" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Intervalo de tempo" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Dia da semana" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Incluir" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Alterar seleção" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Período de hosts" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Período de serviços" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Opções de host" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Opções de serviço" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Comando de hosts" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Comando de serviços" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Endereço de Email" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Número do pager" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Endereço adicional" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Notif. de host habilitadas" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Notif. de serviço hablitadas" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Pode executar comandos" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Reter informações de estado" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Não reter informações de estado" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Membros" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Grupo de membros" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Configurações gerais" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Opções de serviço" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Adicionar serviços existentes ao host" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Host pai" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Comando de verificação" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Linha de comando:" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Modelos adicionais:" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Configurações de verificação" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Estado inicial" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Tempo entre tentativas" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Nº de tentativas" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Tempo entre verificações" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Verificação ativa" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Verificação passiva" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Período " + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Início de freshness" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Freshness" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Obsessão" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Obsessão" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Tratador de eventos" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Tratar eventos" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Início da oscilação" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Fim da oscilação" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Detecção de oscilação" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Opções de oscilação" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Retenção de estado" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Manter estados " + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Dados de desempenho" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Configurações de alertas" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Contatos" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Período de notificações" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Opções de notificações" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Intervalo entre notificações" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Retardo na primeira notificação" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Notificações habilitadas" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Opções de stalking" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Configurações adicionais" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Imagem VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "Notas da URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Imagem do mapa da rede" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Imagem do ícone" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "Ação da URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "Coordenadas 2D" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "Coordenadas 3D" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Texto ALT do ícone" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "padrão" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "sim" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "não" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "herdar" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Variáveis personalizadas" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Nome da variável" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Valor da variável" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Ativar" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Desativar" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Confirma exclusão do registro da base de dados:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Confirma exclusão dos registros selecionados da base de dados?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Selecionar todos" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Arquivo" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Gravar arquivos" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Endereço" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Nome de exibição" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Usar esta configuração como modelo" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Nome genérico" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Verifique pelo menos uma das opções:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Nome" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Grupos de hosts membros" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "É volátil" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Verificações paralelas" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Filtro" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Diretório de importação" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Informe um nome de variável e seu valor" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Atenção!

" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Um ou mais campos de preenchimento obrigatório não foram preenchidos!
Em alguns casos, isso pode causar configurações inválidas nos arquivos do Nagios.

Deseja continuar?" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Diretório base do Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Gravar configuração" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Nem todos os argumentos (ARGx) do comando selecionado foram preenchidos!

Se forem argumentos opcionais, não há problema. Caso contrário, a falta de preenchimento poderá acarretar uma configuração inválida." + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Grupos de serviços membros" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Nome" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Grupos de hosts" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Herdar dependências do host pai" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Critérios de falhas de execução" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Critérios de falhas de notificação" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Dependência de períodos" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Escala de períodos" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Opções de escala" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Primeira notificação" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Última notificação" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "Grupos de serviços dependentes" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Ajuda" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Calendário" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Nome do Grupo" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Usuários" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Grupo de acesso" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Definições de usuário" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Usuário" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Direitos de usuário" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Restrições de acesso a objetos" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Habilitar administração de grupos" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Exibir dados relacionados" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Ocultar dados relacionados" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "Idioma do usuário" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "Domínio padrão" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "Os serviços associados aos hosts sempre devem ser cadastrados previamente. Apenas associar o serviço ao host não é suficiente." + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Segunda" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Terça" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Quarta" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Quinta" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Sexta" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Sábado" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Domingo" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Início" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Configurações" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Comandos" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Extras" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Ferramentas" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Serviço - dependência" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Serviço - escala" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Host - dependência" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Host - escala" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Host - extra" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Serviço - extra" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Importar arquivos" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Usuários" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Grupos de usuários" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Controle do Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Log do sistema" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Arquivo nagios.cfg" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Parâmetros" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Configurações" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "Arquivo cgi.cfg" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Controle de acesso" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Domínios" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Editor de ajuda" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "Domínios" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "Dados do Domínio" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "Suporte" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Atenção: configurações ainda não gravadas!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "Atenção: configurações não definidas!" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Não foi possível fazer backup ou excluir arquivos de configurações anteriores Verifique as permissões!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Não foi possível fazer backup de arquivos de configurações anteriores porque as permissões estão incorretas (FTP remoto)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Não foi possível fazer backup de arquivos de configurações anteriores porque as permissões estão incorretas (SFTP remoto)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "Não foi possível excluir o arquivo. Permissão negada!" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "Não foi possível excluir o arquivo. Arquivo não existe!" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Não foi possível excluir o arquivo porque as permissões estão incorretas (FTP remoto)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Não foi possível excluir o arquivo porque ele não existe (FTP remoto)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Não foi possível excluir o arquivo porque as permissões estão incorretas (SFTP remoto)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Não foi possível excluir o arquivo porque ele não existe (SFTP remoto)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Não foi possível obter o arquivo de configuração (conexão FTP falhou)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Não foi possível gravar o arquivo de configuração (conexão FTP falhou)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Não foi possível obter o arquivo de configuração (conexão SSH falhou)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Não foi possível obter o arquivo de configuração (arquivo remoto não existe)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Não foi possível gravar o arquivo de configuração (conexão SSH falhou)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Não é possível gravar arquivos de configuração diretamente a partir do domínio comum!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "Gravação da configuração falhou! Base de dados ou registro não encontrados, ou sem permissão de gravação." + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Gravação da configuração falhou (conexão FTP falhou)!" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Não foi possível abrir/sobrescrever o arquivo de configuração(conexão FTP falhou)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Não foi possível abrir/sobrescrever o arquivo de configuração (SFTP remoto)" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Conexão com o sistema falhou (conexão SSH2):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "Chave SSH pública não existe ou sem permissão de leitura" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "Vhave privada SSH não existe ou sem permissão de leitura" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Conexão com o sistema remoto falhou (conexão FTP):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Não foi possível abrir o diretório" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "Não gravado" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "sem alvo" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "Não gravado" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "Gravado" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Última atualização da base de dados:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "Última alteração da configuração do Domínio " + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Exclusão falhou devido ao seguinte erro:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Nenhum registro excluído. O registro não existe ou não pode ser excluído." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "ID de registro excluído:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "da tabela" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "com atualização dos dados:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Deletar registros da tabela:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "Nenhum registro excluído! Provavelmente os registros não existam na base de dados. Também podem estar protegidos contra gravação ou têm relacionamento com outros registros que não podem ser excluídos. Em caso de dúvidas, clique no link \"Info\" para mais detalhes." + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "Nenhum registro excluído! Provavelmente os registros não existam na base de dados. Ou podem estar protegidos contra gravação." + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Cópia de registro falhou. Tabela [novo nome]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Registro copiado - tabela [novo nome]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "Nenhum registro copiado! Talvez os registros não existam na base de dados. Ou podem estar protegidos contra gravação." + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "Nenhum registro ativado! Talvez os registros não existam na base de dados, ou não foram selecionados. Também podem estar protegidos contra gravação." + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Dado ativado com sucesso. Colunas afetadas: " + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Ativar dado da tabela:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Nenhum registro ativado! Talvez os registros não existam na base de dados, ou podem estar protegidos contra gravação." + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "Nenhum registro desativado! Talvez o registro não exista, não foi selecionado ou é protegido contra desativação ou escrita. Use a função \"Info\" para mais informações." + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Registros excluídos com sucesso. Dados atualizados:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "Nenhum registro desativado! Talvez o registro não exista ou é protegido contra gravação." + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "Informações de relacionamentos para " + +#: functions/data_class.php:891 +msgid " of table " +msgstr " da tabela " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Relacionado com " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", entrada " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "exclusão possível" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "exclusão impossível" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "Não foi possível obter os dados de configuração: " + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Não foi possível receber o arquivo de configuração (conexão FTP)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Não foi possível receber o arquivo de configuração (conexão SSH)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "Nenhuma configuração válida foi encontrada: " + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "Arquivo a ser importado não existe ou é inválido: " + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Tabela para definição de importação" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "não disponível!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "dentro" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "existe e não pode ser sobrescrita" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "não gravada" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "não foi possível a inclusão" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "incluída com sucesso" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Erro: número incorreto de parâmetros - não é possível importar membros de grupos de serviços" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Faltou parâmetro para conexão com o Servidor!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "A conexão com o Servidor da base de dados falhou pelo seguinte motivo:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Faltou parâmetro para conexão com a base de dados!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Ocultar menu" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Mostrar menu" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Pág." + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Acesso irrestrito" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Erro ao conectar base de dados:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Erro na definição do correto locale. Relate este erro juntamente com a saída do comando 'locale -a' para bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Login com sucesso" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Login com sucesso" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Login falhou" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Sessão finalizada por timeout - Segundos:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Site restrito acessado:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Usuário não encontrado na base de dados" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "NagiosQL" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Usuário atual:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Sair" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Atenção! Arquivo modelo não encontrado ou sem acesso para leitura. Verifique as permissões do arquivo:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "Alguns arquivos de configuração não foram gravados! Registro não existe, não está ativado ou é protegido contra gravação." + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "Arquivos de configuração gravados com sucesso!" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Usuário administrador não pode ser excluído" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost não pode ser excluído" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Sem permissão para abrir a configuração!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Inglês" + +#: functions/translator.php:60 +msgid "German" +msgstr "Alemão" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Chinês (Simplificado)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Italiano" + +#: functions/translator.php:72 +msgid "French" +msgstr "Francês" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Russo" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Espanhol" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Português (Brasil)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Holandês" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Dinamarquês" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Documentação online" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "Conexão com a abase de dados falhou! Atualização não disponível." + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "Tabela de configurações não existe ou está corrompida! Atualização não disponível." + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "Instalação interrompida! Certifique-se que o MySQL foi instalado." + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "Instalação interrompida! Certifique-se que o MySQL foi instalado." + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "Instalação interrompida! Certifique-se de que o pacote pgsql está instalado." + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "Tipo de banco de dados no arquivo de configurações (config/settings.php) desconhecido! Atualização não disponível." + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "Valores do banco de dados faltantes no arquivo de configurações (config/settings.php)! Atualização não disponível." + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "Arquivo de configurações (config/settings.php) não encontrado ou ilegível! Apenas instalação full será possível. Caso queira atualizar a versão, copie o arquivo config/settings.php da versão anterior para o diretório de instalação e dê permissão de escrita." + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "Arquivo de valores padrões (install/functions/initial_settings.php) não encontrado ou ilegível! Instalação possível, mas sem dados pré-definidos!" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Bem vindo ao assistente de instalação do NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Este assistente irá ajudá-lo a instalar e configurar o NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "Em caso de dúvidas, acesse " + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Primeiro, verifique se o ambiente está preparado para o NagiosQL funcionar." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "Requisitos básicos:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0 ou superior incluído:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "Módulo PHP:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(opcional)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "Extenção PECL:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "Parâmetros do arquivo php.ini" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads = On" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start = 0" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Um Servidor MySQL" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "Nagios 2.x/3.x" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "INICIAR INSTALAÇÃO" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "INICIAR ATUALIZAÇÃO" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Requisitos" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Concluir" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "verificação de requisitos" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Verificação do Cliente" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Versão do PHP" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Verificação de extenções PHP" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Verificação de interfaces de base de dados disponíveis" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Verificação das configurações dos arquivos php.ini e htaccess" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Verificação de permissões do sistema" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "Os seguintes módulos ou extenções são necessários para o NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "O seguinte conjunto de extenções é opcional, mas recomendado" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Verificar quais das extenções suportadas estão instaladas. Pelo menos uma delas é necessária" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Os seguintes parâmetros são necessários no arquivo php.ini para o NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "HABILITADO" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "DESABILITADO" + +#: install/step1.php:113 +msgid "Version" +msgstr "Versão" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "OK" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "detectado" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "ou superior é necessário" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "não pôde ser carregado. Verifique se a variável \"extension = ssh2.so\" foi adicionada no arquivo php.ini. Em caso negativo, adicione." + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "NÃO DISPONÍVEL" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "Apenas nova instalação! Atualizações somente são suportadas usando a mesma interface de banco de dados." + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "não pode ser vazio e precisa ser configurado. Ex: date.timezone = America/Sao_Paulo. Após qualquer alteração no php.ini, reinicie o apache." + +#: install/step1.php:184 +msgid "should be" +msgstr "deve ser" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Teste de leitura no arquivo de configuração (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Arquivo de configuração não existe (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "Será criado posteriormente" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Teste de escrita no arquivo de configuração (config/settings.php). Verifique as permissões do arquivo e corrija, através do comando chmod" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Teste de escrita no diretório de configuração (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Teste de leitura no arquivo de classes (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Teste de leitura no arquivo inicial do site (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Teste de leitura no arquivo de modelo (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Teste de leitura no arquivo modelo de administrador (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Teste de leitura no arquivo de modelo (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Teste de leitura no arquivo de imagem (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Os erros acima foram detectados! Consulte os requisitos para o NagiosQL e verifique suas configurações de sistema." + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Consulte o Manual de Instalação do NagiosQL para saber como corrigir isso." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "Em seguida, atualize esta página para prosseguir " + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Atualizar" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Teste de ambiente efetuado com sucesso!" + +#: install/step1.php:264 +msgid "Next" +msgstr "Próximo" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "As senhas inseridas não conferem! Tente outra vez." + +#: install/step2.php:38 +msgid "Setup" +msgstr "Instalação" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Preencha o formulário a seguir. Campos marcados com * são de preenchimento obrigatório" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Configuração da Base de Dados" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "Tipo da base de dados" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "Servidor da base de dados" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "Nome ou IP do servidor" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "Porta da base de dados do servidor" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Usuário da base de dados do NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Senha da base de dados do NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "Usuário administrador da base de dados" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "Senha do administrador da base de dados" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Excluir base de dados caso exista" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "Usuário da base de dados do NagiosQL" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Usuário inicial do NagiosQL" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Senha inicial do NagiosQL" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Repita a senha" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Arquivo nagios.cfg" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Importar exemplo de configuração do Nagios?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "Caminho do NagiosQL" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "Criar caminhos de configuração do NagiosQL?" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "Caminho de configuração do NagiosQL" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "Caminho de configuração do Nagios" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "Os valores dos caminhos foram armazenados em suas configurações do localhost" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "Se a opção de criar o caminho for selecionada, certifique-se de que o caminho base do NagiosQL existe e que o usuário de aplicação web tem permissão de gravação no mesmo. Somente assim, o processo de instalação poderá criar os sub-diretórios necessários hosts, services, backup etc.)" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Atenção! Efetue backup da base de dados antes de prosseguir!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "concluindo instalação" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Aplicar configurações do NagiosQL" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "Conexão com o banco do servidor (usuário root)" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "Versão do servidor da base de dados" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "Suporte do servidor da base de dados" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Exluir base de dado NagiosQL existente" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Criação da nova base de dados" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "Criar usuário da base de dados do NagiosQL" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "Instalando as tabelas do banco de dados NagiosQL" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Definição do Administrador inicial do NagiosQL" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "Conexão do servidor da base de dados (usuário NagiosQL)" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Gravação de configurações globais na base de dados" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Gravação de configurações da base de dados no arquivo settings.php " + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Importar modelo de dados do Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "Criar e/ou armazenar as configurações de caminhos do NagiosQL" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Atualizar base de dados NagiosQL existente" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Versão do NagiosQL instalada" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Atualização da versão" + +#: install/step3.php:86 +msgid "to" +msgstr "para" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Convertendo base de dados para conjunto de caracteres utf8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Convertendo tabelas da base de dados para conjunto de caracteres utf8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Convertendo campos da base de dados para conjunto de caracteres utf8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Criar nova base de dados" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "A base de dados já existe e a sua exclusão não foi selecionada. Corrija ou faça manualmente, através de seu gerenciador MySQL" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "OK" + +#: install/step3.php:146 +msgid "unknown" +msgstr "desconhecido" + +#: install/step3.php:211 +msgid "Back" +msgstr "Voltar" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Remova o diretório de instalação do NagiosQL (install) para continuar!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "Tipo de base de dados não definido!" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "Suportado" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "Não suportado" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "O NagiosQL está atualizado! Nenhuma ação adicional é necessária." + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "Atualização para o NagiosQL 3.2 é suportada apenas para servidores que tenham a versão NagiosQL 3.0.0 ou superior." + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "Erro ao selecionar a tabela de configurações!" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "Concluído" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "Direitos adicionados apenas a usuários existentes" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "Arquivo SQL ilegível ou vazio" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "Atualização de arquivos SQL não disponível" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "A entrada inicial dos dados para configuração da base de dados falhou:" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "Não foi possível abrir o arquivo config/settings.php para gravação" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "A entrada de dados do caminho para a base de dados falhou:" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "Verifique as permissões dos caminhos criados!" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "O diretório base do NagiosQL não tem permissão de gravação. Apenas os valores da base de dados foram atualizados" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "Ocorreram erros durante a conversão para UTF-8" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/pt_BR/index.html b/config/locale/pt_BR/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/ru_RU/LC_MESSAGES/index.html b/config/locale/ru_RU/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/ru_RU/LC_MESSAGES/ru_RU.mo b/config/locale/ru_RU/LC_MESSAGES/ru_RU.mo new file mode 100644 index 0000000000000000000000000000000000000000..18c43f336736f6dfc7e0b114f5d47d47d53fa618 GIT binary patch literal 73141 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 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "Администрирование NagiosQL" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "Добро пожаловать в" + +#: index.php:46 +msgid "Welcome" +msgstr "Добро пожаловать" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "Пожалуйста, введите имя пользователя и пароль для доступа к NagiosQL
Если Вы забыли что-либо из указанного, пожалуйста, свяжитесь с администратором." + +#: index.php:48 +msgid "Username" +msgstr "Имя пользователя" + +#: index.php:49 +msgid "Password" +msgstr "Пароль" + +#: index.php:50 +msgid "Login" +msgstr "Вход в систему" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "Администрирование" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "Функции администрирования NagiosQL V3" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "Тревога" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "Определение контактной информации, шаблонов контактов и групп контактов, и периодов времени." + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "Статистические данные" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "Группа" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "Активно" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "Не активно" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "Данные контактов" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "Группы контактов" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "Периоды времени" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "Шаблоны контактов" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "Конфигурационный файл успешно записан!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "Конфигурация успешно записана:" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "Не могу открыть/перезаписать конфигурационный файл (проверьте права доступа)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "Сбой записи конфигурации:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "Не могу открыть/перезаписать файл конфигурации (проверьте права доступа к удаленной системе)" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "Ошибка записи конфигурационного файла на удаленной системе:" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "Конфигурационный файл CGI" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "Не могу открыть файл данных (проверьте права доступа)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "Не удается открыть временный файл" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "Ошибка чтения конфигурационного файла на удаленной системе:" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "Новая команда добавлена:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "Команда изменена:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "Ошибка входа в базу данных! Не все требуемые данные введены!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "Определения команды" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "Сохранение невозможно!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "не классифицировано" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "команда проверки" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "различные команды" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "Элемент не может быть активирован, так как он используется другой конфигурацией" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "Имя команды" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "Командная строка" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "Ошибка выборки данных из базы данных:" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "Команды проверки" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "Определение проверки и других команд, команды уведомлений и специальные команды." + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "не доступно для записи" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Конфигурационный файл Nagios" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "Модуль SSH не загружен!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "Модуль FTP не загружен!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "Добавлен новый домен:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "Домен изменен:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "Внимание, произошла одна или несколько ошибок, пожалуйста проверьте!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "Пожалуйста, заполните все поля отмеченные *" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "Следующее поле содержит неразрешенные символы:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "Описание" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "Добавлена новая группа контактов:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "Группа контактов изменена:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "Определение группы контактов (contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "Внимание, не определены контакты!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "Группа контактов" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "Добавлен новый контакт:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "Контакт изменен:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "Определение контактов (contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "Внимание, не определены временные периоды!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "Внимание, не определены никакие команды!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "Имя контакта" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr " Добавлен новый шаблон контактов:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "Шаблон контактов изменен:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "Определение шаблонов контактов (contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "Включить" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "Отключить" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "Файл удален" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "успешно удалено" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "Удалить файлы резервных копий" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "Строка фильтра" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "Поиск" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "Удалить" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "Сбросить фильтр" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "Файл резервной копии" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "требуется" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "Прервать" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "Удерживайте CTRL для выбора
нескольких элементов" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "Удалить файл конфигурации" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "Загрузить" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "Добавлена новая группа:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "Пользователь изменен:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "Администрирование группы" + +#: admin/group.php:114 +msgid "Read" +msgstr "Чтение" + +#: admin/group.php:115 +msgid "Write" +msgstr "Запись" + +#: admin/group.php:116 +msgid "Link" +msgstr "Ссылка" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "Имя группы" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "Нет данных" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "Текстовый редактор справки" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "Основной индекс" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "Подчиненный индекс" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "Язык" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Версия Nagios" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "Загрузить текст по умолчанию" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "Добавлена новая зависимость хостов:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "Зависимость хостов изменена:" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "Зависимости хостов (hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "Внимание, не определены хосты и группы хостов!" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "Наименование конфигурации" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "Зависимые хосты" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "Зависимые группы хостов" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "Добавлена новая эскалация хоста:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "Эскалация хоста изменена:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "Определение эскалации хоста (hostescalations.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "Внимание, не определены контакты и контактные группы!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "Хосты" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "Группы хостов" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "Внесена новая расширенная информация хоста:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "Изменена расширенная информация хоста:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "Определение расширенной информации хоста (hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "Внимание, не определен ни один хост!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "Имя хоста" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "Заметки" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "Новая группа хостов добавлена:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "Группа хостов изменена:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "Определение группы хостов (hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "Группа хостов" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "Новый хост добавлен:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "Хост изменен:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "Устаревшие,не используемые конфигурационные файлы успешно удалены!" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "Удален файл хоста:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "Общие файлы не могут быть удалены из целевых систем - пожалуйста, проверьте вручную" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "Ошибка удаления старого конфигурационного файла - пожалуйста, проверьте!:" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "определение хостов (hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "Внимание, не определено ни одной группы контактов!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "Новый шаблон хоста добавлен:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "Шаблон хоста изменен:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "Шаблоны хостов (hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "Имя шаблона хоста" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "Ошибка загрузки файла:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "Файл импортирован - файл [overwite flag]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "Импорт конфигурации" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "Определение шаблона" + +#: admin/import.php:91 +msgid "Import file" +msgstr "Импортировать файл" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "Импортировать локальный файл" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "Перезаписать базу данных" + +#: admin/import.php:94 +msgid "Import" +msgstr "Импорт" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "Удерживайте CTRL для выбора
нескольких" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "Относительный путь Вашей инсталляции NagiosQL" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "Абсолютный путь к Вашей инсталляции NagiosQL" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "Если Вам необходимо безопасное соединение, выберите HTTPS вместо HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "Пожалуйста, выберите временный каталог с разрешением на запись. По умолчанию это временный каталог, используемой Вашей ОС" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "Пожалуйста, выберите язык приложения" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "Кодировка должна быть установлена в UTF-8, любые изменения - на Ваш риск." + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "IP адрес или имя хоста сервера баз данных
Пример: localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "Порт сервера MySQL, по умолчанию 3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "Имя базы данных NagiosQL
пример: db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "Пользователь с достаточными правами в базе данных NagiosQL
Как минимум должны быть права SELECT, INSERT, UPDATE и DELETE." + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "Пароль этого пользователя" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "После указанного количества секунд сеанс завершится из соображений безопасности" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "Выберите метод аутентификации - аутентификация веб-сервера
(конфигурация Apache или htaccess) либо аутентификация NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "Сколько должно быть видно записей на одной стороне (например сервисов или хостов)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "Выбор нескольких записей с использованием нового диалога, либо удержанием CTRL + left click как в NagiosQL2" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "Включить или отключить предупреждения при незаполненных обязательных полях" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "Включение и отключение автоматической онлайн проверки версии." + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "Пожалуйста, при необходимости укажите параметры прокси-сервера (port80), для получения доступа в интернет." + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "Адрес вашего Прокси-сервера (proxy.yourdomain.com:3128)" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "Имя пользователя для подключения через прокси (опционально)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "Пароль пользователя прокси сервера (необязательно)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "Всплывающее информационное окно" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "Информация отсутствует" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "Набор данных успешно удален. Затронуто строк:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "Открыть журнал" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "Удалить записи журнала между:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "Пожалуйста, заполните как минимум время начала и завершения." + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "Вы действительно хотите удалить все записи журнала между выбранными датами?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "предыдущие 20 записей" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "следующие 20 записей" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "Ошибка внесения данных в базу данных:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "Данные успешно добавлены в базу данных!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "Группа с правами доступа к элементам меню:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "Определить права доступа к меню" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "Для получения доступа пользователь, должен быть членом выбранной группы." + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "Наблюдение" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "Настройки наблюдения хостов, сервисов и групп." + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "Сервисы" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "Группы сервисов" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "Шаблоны хостов" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "Шаблоны сервисов" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "Доступно" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "Выбрано" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Основной конфигурационный файл Nagios" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "Пароль успешно изменен" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "Пароль слишком короткий или пароль не совпадают!" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "Неверный старый пароль" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "Сохранить" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "Пароль не совпадают!" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "Новый пароль слишком короткий - используйте хотя бы 6 символов!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "Новая зависимость сервисов вставлена:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "Изменена зависимость сервисов:" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "Зависимости сервисов (servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "Зависимые Cервисы:" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "Новая запись эскалации сервиса вставлена:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "Эскалация сервиса изменена:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "Эскалация сервисов (serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "Новая расширенная информация сервиса добавлена:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "Расширенная информация сервиса изменена:" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "Расширенная информация сервиса (serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "Имя хоста" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "Сервис" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "Вставлена новая группа сервисов:" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "Группа сервисов изменена:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "Группы сервисов (servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "Внимание, не определено ни одного сервиса!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "Группа сервисов" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "Новый сервис вставлен:" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "Сервис изменен:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "Файл сервиса удален:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "Сервисы (services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "Внимание, не определены хосты или группы хостов!" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "Внимание, не определены команды проверки!" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "Наименование сервиса" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "Все конфигурационные файлы" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "Добавлен новый шаблон сервиса:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "Шаблон сервиса изменен:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "Шаблоны сервисов (servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "Имя шаблона" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "Описание сервиса" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl модуль не загружен, прокси будет отключен!" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "Ошибка установки корректной кодировки окружения, пожалуйста, сообщите об этом, с приложением вывода команды 'locale -a' на bugs@nagiosql.org" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "Установки изменены" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "Произошла ошибка во время записи файла settings.php, пожалуйста, проверьте права доступа!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "Изменить настройки" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "Измените текущие настройки NagiosQL (например, Пользователь базы данных, Язык)." + +#: admin/settings.php:158 +msgid "Path" +msgstr "Путь в системе" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "Временный каталог" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "Протокол сервера" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "Кодировка" + +#: admin/settings.php:187 +msgid "Database" +msgstr "База данных" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "Сервер MySQL" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "Порт сервера MySQL" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "Имя базы данных" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "Пользователь базы данных" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "Пароль базы данных" + +#: admin/settings.php:201 +msgid "Security" +msgstr "Безопасность" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Автоматическое завершение сеанса" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "Тип аутентификации" + +#: admin/settings.php:209 +msgid "Common" +msgstr "Общее" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "Количество строк на страницу" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "Метод выделения" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "Шаблон предупреждений" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "Прокси-сервер" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "Адрес Прокси-сервера" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "Имя пользователя Прокси-сервера (необязательно)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "Пароль пользователя Прокси-сервера (необязательно)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "Разные команды" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr "Настройка зависимости хостов и сервисов, эскалации хостов и сервисов, а также дополнительной информации для хостов и сервисов." + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "Зависимости хоста" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "Эскалации хостов" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "Доп. инф. хостов" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "Зависимости сервиса" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "Эскалации сервисов" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "Расширенная информация сервиса" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "сбой" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Файл процесса Nagios" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Командный файл Nagios" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Исполняемый файл Nagios" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "Вверх" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "Вниз" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "Изменить" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "Новый период времени вставлен:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "Период времени изменен:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "Периоды времени" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "Пожалуйста, добавьте определение времени и диапазон времени" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "Период времени" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "Разные утилиты" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr " Дополнительные функции импорта данных, редактирования основной конфигурации, управления сервисом Nagios и т.д." + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "Новый пользователь добавлен:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "Управление пользователями" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "Пароли не совпадают!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "Пожалуйста, заполните пароль" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "Пароль слишком короткий - используйте не менее 6 символов!" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Аутентификация веб-сервера" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "Запись конфигураций хостов" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "Не определены конфигурации объектов!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "Запись конфигураций сервисов" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "Не могу найти исполняемый файл Nagios, либо нет прав на его выполнение." + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "Удаленное исполнение (FTP SITE EXEC) не поддерживается на Вашей системе!" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "Ошибка при выполнении удаленной проверки сервера Nagios (протокол SSH)" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "Не найден исполняемый или конфигурационный файл Nagios (протокол SSH)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Сервис Nagios успешно перезагружен" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "Команда перезапуска успешно отправлена Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "Сбой перезапуска - не найден командный файл Nagios, либо нет прав на выполнение." + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "Командный файл Nagios не найден, либо нет прав на запись!" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "Сбой перезапуска - сервис Nagios не запущен" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Сервис Nagios не запущен, не могу послать команду перезапуска!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "Сбой перезапуска - ограничения FTP" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "Перезапуск Nagios невозможен через удаленное FTP соединение!" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "Сбой перезапуска - не найден командный файл Nagios, либо нет прав на исполнение (протокол SSH)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Сервис Nagios успешно перезапущен (протокол SSH)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "Команда перезапуска успешно отправлена серверу Nagios (протокол SSH)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "Командный файл Nagios не найден, либо нет прав на запись (протокол SSH)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "Контроль конфигурационных файлов" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "Проверить конфигурационные файлы:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "Перезапустить Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "Записать настройки наблюдения" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "Записать дополнительные настройки" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "Предупреждение, всегда проверяйте конфигурационные файлы перед перезапуском Nagios!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "Выполнить" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "Записанная конфигурация Nagios проверена - Предупреждения/Ошибки:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "Записанные конфигурационные файлы верны, можно перезапускать Nagios!" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "Установлено" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "Информация" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "У вас уже установлена последняя тестируемая версия" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "Ваша версия NagiosQL устарела. Пожалуйста, обновите до последней стабильной версии" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "Домен" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "Имя сервера" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "Метод" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "Каталог с SSH ключами" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "Директории конфигурации" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "Базовая директория" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "Директория хостов" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "Директория сервисов" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "Директория бэкапа" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "Директория бэкапа хостов" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "Директория бэкапа сервисов" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "Каталог изображений" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "Использовать домен по умолчанию" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "Декодировать данные формата UTF-8 в конфигурационном файле" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "Назначение групп доступа" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "Фиксированные группы доступа" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "Функции" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "Отмеченные" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "Добавить" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "Проверка форм" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "Секретный вопрос" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "Да" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "Нет" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "Время" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "Пользователь" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "Элемент" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "От" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "До" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "Удалить записи журнала" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "Копировать" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "Повторите пароль" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "Старый пароль" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "Новый пароль" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "Сменить пароль" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "Страница меню" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "Строка поиска" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "Записать конфигурационный файл" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "Команда" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "Тип команды" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "Исключить" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "Включить" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "Определение временных интервалов" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "Дни недели" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "Период времени" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "Определение времени" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "Вставить" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "Изменить выделение" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "Периоды уведомления, хосты" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "Периоды уведомления, сервисы" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "Параметры уведомлений, хосты" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "Параметры уведомлений, сервисы" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "Команда уведомления, хосты" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "Команда уведомления, сервисы" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "Адрес и-мэйл" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "Номер пейджера" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "Дополнительный адрес" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "Уведомления, хосты" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "Уведомления, сервисы" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "Может передавать команды (CGI)" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "Сохранять информацию состояния" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "Сохранять информацию, не относящуюся к состоянию" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "Члены" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "Члены группы" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "Общие настройки" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "Установка параметров Сервиса" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "Добавить конфигурацию этого хоста к существующим сервисам" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "Родители" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "Команда проверки" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "Обзор команды" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "Дополнительные шаблоны" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "Настройки проверки" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "Начальное состояние" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "Интервал повторных попыток" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "Максимальное количество попыток проверки" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "Интервал проверки" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "Активные проверки разрешены" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "Пассивные проверки разрешены" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "Период проверки" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "Порог актуальности" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "Проверить актуальность" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "Дополнительная проверка (obsess) хоста" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "Дополнительная проверка (obsess) сервиса" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "Обработчик событий" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "Обработчик событий разрешен" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "Нижний порог" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "Верхний порог" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "Обнаружение незначительных аварий (flap)" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "Настройки обнаружения незначительных аварий" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "Сохранять информацию состояния" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "Сохранять информацию, не относящуюся к состоянию" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "Обработка данных производительности" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "Настройки уведомлений" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "Контакты" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "Период уведомлений" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "Параметры уведомлений" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "Интервал уведомлений" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "Задержка первого уведомления" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "Уведомления разрешены" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "Настройки шаговой проверки (stalking)" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "Дополнительные настройки" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "Значок VRML" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "URL заметок" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "Значок состояния" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "Значок" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "URL действия" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D координаты" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D координаты" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "Альтернативный текст пиктограммы" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "стандарт" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "вкл." + +#: config/fieldvars.php:162 +msgid "off" +msgstr "выкл." + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "пропустить" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "Определение произвольных переменных" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "Имя переменной" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "Значение переменной" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "Активировать" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "Деактивировать" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "Вы действительно хотите удалить из базы данных этот элемент:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "Вы действительно хотите удалить все отмеченные записи?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "Отметить все отображенные строки" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "Файл" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "Записать все конфигурационные файлы" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "Адрес" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "Наименование для отображения" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "Использовать эту конфигурацию как шаблон" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "Общее наименование" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "Пожалуйста, отметьте хотя бы одно из:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "Имя группы хостов" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "Члены группы хостов" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "Непостоянно" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "Проводить проверки параллельно" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "Фильтр имени конфигурации" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "Каталог импорта" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "Пожалуйста, добавьте имя переменной и ее определение" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "Внимание:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Вы не заполнили обязательные поля! Если эти значения установлены шаблоном, то Вы можете сохранить значения - в противном случае Вы получите нерабочую конфигурацию!" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Базовый каталог Nagios" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "Записать конфигурацию" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "Вы не заполнили все аргументы (ARGx) для выбранной команды!

Если эти значения не обязателны, то Вы можете сохранить настройки, в противном случае Вы получите нерабочую конфигурацию!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "Члены группы сервисов" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "Наименование группы сервисов" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "Группы хостов" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "Унаследовать от родителей" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "Критерий обработки проверок при сбое" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "Критерий обработки уведомлений при сбое" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "Период зависимости" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "Период эскалации" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "Параметры эскалации" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "Первое уведомление" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "Последнее уведомление" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "Справка" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "Календарь" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "Имя группы" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "Пользователь" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "Группа доступа" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "Пользовательские конструкции" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "Имя пользователя" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "Права пользователя" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "Доступ к объекту ограничен" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "Включить группу администрирования" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "Показать связанные данные" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "Спрятать связанные данные" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "Понедельник" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "Вторник" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "Среда" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "Четверг" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "Пятница" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "Суббота" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "Воскресенье" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "Главная страница" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "Наблюдение" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "Команды" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "Дополнительно" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "Сервис" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "Зависимости службы" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "Эскалации службы" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "Зависимости хостов" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "Эскалация хостов" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "Расширенный хост" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "Зависимые Cервисы" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "Импорт данных" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "Пользователи" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "Администратор группы" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Управление Nagios" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "Журнал" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Конфигурационный файл Nagios" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "Параметры" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "Определения" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "Настройка CGI" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "Доступ к меню" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "Домены" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "Редактор справки" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "Внимание: файл конфигурации устарел!" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "Не могу выполнить резервную копию и удалить старый конфигурационный файл (проверьте права доступа)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "Не могу выполнить бэкап старого конфигурационного файла потому что установлены неправильные права доступа (удаленный FTP)!" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "Не могу выполнить резервную копию предыдущего конфигурационного файла, неправильные права доступа (протокол SFTP)!" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "Не могу удалить файл, потому, что установлены неправильные права доступа (удаленный FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "Не могу удалить, файл не найден (протокол FTP)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "Не могу удалить файл, неправильные права доступа (протокол SFTP)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "Не могу удалить, файл не существует (протокол SFTP)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "Не могу получить конфигурационный файл (сбой FTP соединения)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "Не могу записать конфигурационный файл (сбой FTP соединения)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "Не могу получить конфигурационный файл (ошибка соединения протокола SSH)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "Не могу получить конфигурационный файл (файл не существует на удаленной системе)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "Не могу записать конфигурационный файл (ошибка соединения протокола SSH)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "Не возможно записать конфигурационные файлы из домена по умолчанию!" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "Сбой записи конфигурации (сбой FTP соединения):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "Не могу открыть/перезаписать конфигурационный файл (сбой FTP соединения)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "Не могу открыть/перезаписать конфигурационный файл (протокол SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "Ошибка подключении к удаленной системе (сбой соединения протокола SSH2):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "отсутствует или недоступен для чтения публичный ключ SSH" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "отсутствует или недоступен для чтения приватный ключ SSH" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "Ошибка доступа к удаленной системе (протокол FTP):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "Не могу открыть каталог" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "не обновлен" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "отсутствует" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "обновлен" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "Последнее обновление базы данных:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "Сбой удаления в связи с ошибкой базы данных:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "Данные не удалены. Возможно, набор данных не существует, либо защищен от удаления." + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "Удалить набор данных:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- из таблицы:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- с измененными записями:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "Удалить данные из таблицы:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "Сбой копирования набора данных - таблица [new name]" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "Набор данных скопирован - таблица [new name]" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "Набор данных успешно применен. Затронуто строк:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "Применить набор данных из таблицы:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "Набор данных успешно удален. Затронуто строк:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr " таблицы " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "Связь с " + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", элемент " + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "удаление возможно" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "удаление невозможно" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "Не могу передать конфигурационный файл (протокл FTP)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "Не могу передать конфигурационный файл (протокол SSH)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "Таблица для импорта определения" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "не доступно!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "внутри" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "существует и не будет перезаписано" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "не было записано" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "не может быть вставлено:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "успешно вставлено" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "Ошибка: неверное количество аргументов - невозможно импортировать члены группы сервисов" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "Отсутствует параметр подключения к серверу!" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "Подключение к серверу баз данных было неудачным, по причине:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "Отсутствует параметр подключения к базе данных!" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "Скрыть меню" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "Отобразить меню" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "Страница" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "Неограниченный доступ" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "Ошибка подключения к базе данных:" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "Ошибка установки корректной локали, пожалуйста, сообщите об этом, с приложением вывода команды 'locale -a' на bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "Вход выполнен успешно" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "Вход выполнен успешно" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "Ошибка входа в систему!" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Достигнут таймаут сеанса - Секунды:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "Доступ к защищенному сайту:" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "Пользователь не найден в базе данных" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "Администратор" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "Кто в системе:" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "Выход" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "Предупреждение - шаблон не был найден или его невозможно прочитать, пожалуйста проверьте права доступа к файлу!- Файл:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "Администратор не может быть удален" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost не может быть удален" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "Нет прав на чтение файла конфигурации!" + +#: functions/translator.php:56 +msgid "English" +msgstr "Английский" + +#: functions/translator.php:60 +msgid "German" +msgstr "Немецкий" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "Китайский (упрощенный)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "Итальянский" + +#: functions/translator.php:72 +msgid "French" +msgstr "Французский" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "Русский" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "Испанский" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "Португальский (Бразилия)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "Датский" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "Датский" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "Документация он-лайн" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "Добро пожаловать в мастер установки NagiosQL" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "Данный мастер установки поможет Вам установить и настроить NagiosQL." + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "По всем вопросам просьба обращаться" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "Прежде всего, давайте проверить местной окружающей среды и выяснить, если все NagiosQL потребностей доступна." + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "Минимальные требования к системе:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "Включает PHP 5.2.0 или более новую версию:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "Модуль PHP:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(опционально)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "Расширение PECL:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "дополнительные параметры в php.ini" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads на (возможность выгрузки файла)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start желательно выключить" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "Сервер MySQL" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "START INSTALLATION" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "ОБНОВЛЕНИЕ ЗАПУЩЕНО" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "Системные требования" + +#: install/step1.php:82 +msgid "Finish" +msgstr "Завершить" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "Проверка системных требований" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "Проверка системных требований клиента" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "Проверка версии PHP" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "Проверяю вашу среду PHP" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "Проверка доступа к базе данных" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "Проверяю параметры php.ini/.htaccess" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "Проверка системных прав доступа" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "Перечисленные модули/расширениятребуются для старта NagiosQL" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "Следующая пара расширенийне обязательна рекомендованна" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "Проверьте какое из поддерживаемых расширений установлено. Требуется минимум одно." + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "Следующие установки параметровтребуютсядля начала работы NagiosQL" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "ВКЛЮЧЕНО" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "НЕ ВКЛЮЧЕНО" + +#: install/step1.php:113 +msgid "Version" +msgstr "Наблюдение" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "ОК" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "Обнаружен" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "или требуется более новая версия" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "Не может быть загружен. Пожалуйста добавьте в php.ini" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "НЕ ДОСТУПНО" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "не может быть пустым и нуждается в установке" + +#: install/step1.php:184 +msgid "should be" +msgstr "должен быть" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "Тестирование чтения файла настроек (config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "Файл настроек не существует (config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "будет создан" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "Тестирование записи файла настроек (config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "Тестирование записи директории настроек (config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "Тестирование чтения файла классов (functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "Тестирование чтения файла startsite (admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "Тестирование чтения файла шаблонов (templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "Тестирование чтения файла административных шаблонов (templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "Тестирование чтения файла шаблона (templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "Тестирование чтения графического файла (images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "Произошло несколько ошибок - пожалуйста, проверьте настройки своей системы и прочитайте требования NagiosQL!" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "Прочитайте файл INSTALLATION из каталога NagiosQL для того чтобы определить как исправить их." + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "После этого - обновите данную страницу для продолжения" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "Обновить" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "Тестирование окружения прошло успешно" + +#: install/step1.php:264 +msgid "Next" +msgstr "Далее" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "Установка" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "Пожалуйста заполните форму полностью. Обязательные поля отмечены*" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "Конфигурация базы данных" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "Пользователь БД NagiosQL" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "Пароль БД NagiosQL" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "Удалить базу данных, если она существует?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "Установки пользователя NagiosQL" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "Первоначальный пользователь NagiosQL" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "Первоначальный пароль NagiosQL" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "Пожалуйста, повторите пароль" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Конфигурация Nagios" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "Импортировать пример конфигурации Nagios?" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "Пожалуйста, создайте резервную копию базы данных перед продолжением!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "Завершение установки" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "Применение параметров NagiosQL," + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "Удаление существующей базы данных NagiosQL" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "Создание новой базы данных" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "Установите первоначального администратора NagiosQL" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "Запись глобальных настроек в базу данных" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "Запись конфигурации в файл settings.php" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "Импортировать примерные данные Nagios" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "Обновление существующей базы данных NagiosQL 3" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "Версия установленного NagiosQL" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "Обновить с версии" + +#: install/step3.php:86 +msgid "to" +msgstr "в" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "Преобразование базы данных в кодировку utf8" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "Конвертация содержимого таблиц базы данных в utf8" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "Конвертация полей базы данных в utf8" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "Создание новой базы данных NagiosQL" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "База данных уже существует и параметр удаления базы данных не был выбран, пожалуйста либо выберите параметр удаления, либо устраните проблему вручную." + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "выполнено" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "Назад" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "Пожалуйста, удалите каталог установки для продолжения!" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "поддерживается" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "не поддерживается" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "завершено" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/ru_RU/index.html b/config/locale/ru_RU/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/zh_CN/LC_MESSAGES/index.html b/config/locale/zh_CN/LC_MESSAGES/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/locale/zh_CN/LC_MESSAGES/zh_CN.mo b/config/locale/zh_CN/LC_MESSAGES/zh_CN.mo new file mode 100644 index 0000000000000000000000000000000000000000..1be472c0cc421bcbad368c44c129c6274a8ea830 GIT binary patch literal 50206 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 literal 0 HcmV?d00001 diff --git a/config/locale/zh_CN/LC_MESSAGES/zh_CN.po b/config/locale/zh_CN/LC_MESSAGES/zh_CN.po new file mode 100644 index 0000000..6ac26bf --- /dev/null +++ b/config/locale/zh_CN/LC_MESSAGES/zh_CN.po @@ -0,0 +1,3699 @@ +# ############################################################################# +# # +# # Project : NagiosQL +# # Component : Translation File English +# # Website : http://www.nagiosql.org +# # Date : $LastChangedDate: 2012-03-09 22:55:35 +0100 (Fri, 09 Mar 2012) $ +# # Author : $LastChangedBy: martin $ +# # Version : 3.1.1 +# # Revision : $LastChangedRevision: 1284 $ +# # +# ############################################################################# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: NagiosQL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-09 22:54+0100\n" +"PO-Revision-Date: 2012-03-09 22:54+0100\n" +"Last-Translator: \n" +"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/nagiosql/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: Pootle 2.1.5\n" +"X-Poedit-Basepath: D:\\$_Daten\\Webentwicklung\\NagiosQL_v3.2_svn\n" +"X-Poedit-KeywordsList: translate\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin.php:34 +msgid "NagiosQL Administration" +msgstr "NagiosQL管理" + +#: admin.php:37 +msgid "Welcome to NagiosQL, the administration module that can be used to easily create, modify and delete configuration files for Nagios. The data is stored in a database and can be written directly to the standard files at any time you want." +msgstr "" + +#: index.php:45 +msgid "Welcome to" +msgstr "欢迎来到" + +#: index.php:46 +msgid "Welcome" +msgstr "欢迎" + +#: index.php:47 +msgid "Please enter your username and password to access NagiosQL.
If you forgot one of them, please contact your Administrator." +msgstr "请输入你的用户名及密码以访问NagiosQL。
如果你忘记其中的一个,请联系管理员。" + +#: index.php:48 +msgid "Username" +msgstr "用户名" + +#: index.php:49 +msgid "Password" +msgstr "密码" + +#: index.php:50 +msgid "Login" +msgstr "登录" + +#: admin/administration.php:31 +msgid "Administration" +msgstr "管理" + +# administration.php +#: admin/administration.php:34 +msgid "Functions to administrate NagiosQL V3" +msgstr "管理NagiosQL3版的功能" + +#: admin/alarming.php:31 +msgid "Alarming" +msgstr "警告" + +# alarming.php +#: admin/alarming.php:34 +msgid "To define contact data, contact templates and contact groups and time periods." +msgstr "定义联系数据,联系组及时间段。" + +#: admin/alarming.php:35 +#: admin/commands.php:35 +msgid "Statistical datas" +msgstr "统计数据" + +#: admin/alarming.php:36 +#: admin/commands.php:36 +msgid "Group" +msgstr "组" + +#: admin/alarming.php:37 +#: admin/commands.php:37 +msgid "Active" +msgstr "活动" + +#: admin/alarming.php:38 +#: admin/commands.php:38 +msgid "Inactive" +msgstr "非活动" + +#: admin/alarming.php:45 +msgid "Contact data" +msgstr "联系数据" + +#: admin/alarming.php:51 +msgid "Contact groups" +msgstr "联系组" + +#: admin/alarming.php:57 +msgid "Time periods" +msgstr "时间段" + +#: admin/alarming.php:63 +msgid "Contact templates" +msgstr "联系人模板" + +#: admin/cgicfg.php:61 +#: admin/cgicfg.php:81 +msgid "Configuration file successfully written!" +msgstr "配置文件写入成功!" + +#: admin/cgicfg.php:62 +#: admin/cgicfg.php:82 +msgid "Configuration successfully written:" +msgstr "配置写入成功" + +#: admin/cgicfg.php:64 +msgid "Cannot open/overwrite the configuration file (check the permissions)!" +msgstr "不能打开/覆盖配置文件(检查权限)!" + +#: admin/cgicfg.php:65 +msgid "Configuration write failed:" +msgstr "配置写入失败:" + +#: admin/cgicfg.php:85 +msgid "Cannot open/overwrite the configuration file (check the permissions on remote system)!" +msgstr "不能打开/覆盖配置文件(检查远程系统的权限)!" + +#: admin/cgicfg.php:86 +msgid "Configuration write failed (remote):" +msgstr "配置文件写入错误(远程):" + +#: admin/cgicfg.php:94 +msgid "CGI configuration file" +msgstr "CGI配置文件" + +#: admin/cgicfg.php:117 +msgid "Cannot open the data file (check the permissions)!" +msgstr "不能打开数据文件(检查权限)!" + +#: admin/cgicfg.php:132 +msgid "Cannot open the temporary file" +msgstr "不能打开临时文件" + +#: admin/cgicfg.php:136 +msgid "Configuration read failed (remote):" +msgstr "配置文件写入错误(远程):" + +#: admin/checkcommands.php:53 +msgid "New command inserted:" +msgstr "插入新命令:" + +#: admin/checkcommands.php:54 +msgid "Command modified:" +msgstr "更改命令:" + +#: admin/checkcommands.php:57 +#: admin/configtargets.php:131 +#: admin/contactgroups.php:80 +#: admin/contacts.php:157 +#: admin/contacttemplates.php:157 +#: admin/datadomain.php:58 +msgid "Database entry failed! Not all necessary data filled in!" +msgstr "数据库入口查找失败!并非所有必须数据被填充!" + +#: admin/checkcommands.php:60 +#: admin/configtargets.php:134 +#: admin/contactgroups.php:83 +#: admin/contacts.php:160 +#: admin/contacttemplates.php:160 +#: admin/datadomain.php:61 +msgid "Database entry failed! No write access!" +msgstr "" + +# checkcommand.php +#: admin/checkcommands.php:73 +msgid "Command definitions" +msgstr "命令定义" + +#: admin/checkcommands.php:88 +#: admin/contactgroups.php:124 +#: admin/contacts.php:255 +#: admin/contacttemplates.php:247 +#: admin/datadomain.php:91 +msgid "Saving not possible!" +msgstr "不能保存!" + +#: admin/checkcommands.php:90 +msgid "unclassified" +msgstr "未分类" + +#: admin/checkcommands.php:91 +msgid "check command" +msgstr "检查命令" + +#: admin/checkcommands.php:92 +msgid "misc command" +msgstr "各种命令" + +#: admin/checkcommands.php:98 +#: admin/contactgroups.php:131 +#: admin/contacts.php:269 +#: admin/contacttemplates.php:261 +msgid "Entry cannot be activated because it is used by another configuration" +msgstr "由于入口被其他配置占用,无法激活" + +#: admin/checkcommands.php:115 +msgid "Command name" +msgstr "命令名" + +#: admin/checkcommands.php:116 +msgid "Command line" +msgstr "命令行" + +# prepend.adm +#: admin/checkcommands.php:129 +#: admin/checkcommands.php:140 +#: admin/configtargets.php:264 +#: admin/configtargets.php:275 +#: admin/contactgroups.php:159 +#: admin/contactgroups.php:170 +#: admin/contacts.php:319 +#: admin/contacts.php:330 +#: admin/contacttemplates.php:311 +#: admin/contacttemplates.php:322 +#: admin/datadomain.php:137 +#: admin/datadomain.php:148 +msgid "Error while selecting data from database:" +msgstr "从数据库查取数据失败" + +#: admin/commands.php:31 +#: admin/commands.php:45 +msgid "Check commands" +msgstr "检查命令" + +# commands.php +#: admin/commands.php:34 +msgid "To define check and misc commands, notification commands and special commands." +msgstr "定义检查及各种命令,提醒命令和特殊命令" + +# mutdialog.php +#: admin/configtargets.php:56 +#: admin/configtargets.php:62 +#: admin/configtargets.php:82 +msgid "is not writeable" +msgstr "不可写" + +#: admin/configtargets.php:62 +#: admin/configtargets.php:77 +msgid "Nagios config file" +msgstr "Nagios配置文件" + +#: admin/configtargets.php:77 +msgid "is not a valid configuration file!" +msgstr "" + +#: admin/configtargets.php:82 +msgid "Cgi config file" +msgstr "" + +#: admin/configtargets.php:89 +msgid "SSH module not loaded!" +msgstr "SSH模块没有加载!" + +#: admin/configtargets.php:94 +msgid "FTP module not loaded!" +msgstr "FTP模块没有加载!" + +# domain.php +#: admin/configtargets.php:127 +#: admin/datadomain.php:54 +msgid "New Domain inserted:" +msgstr "插入新域:" + +#: admin/configtargets.php:128 +#: admin/datadomain.php:55 +msgid "Domain modified:" +msgstr "被修改的域:" + +#: admin/configtargets.php:142 +msgid "Configuration domain administration" +msgstr "" + +#: admin/configtargets.php:143 +msgid "Warning, at least one error occured, please check!" +msgstr "警告,至少发省了一个错误,请检查!" + +#: admin/configtargets.php:158 +#: admin/datadomain.php:92 +msgid "Please fill in all fields marked with an *" +msgstr "请填写所有标记*的空白" + +#: admin/configtargets.php:159 +#: admin/datadomain.php:93 +msgid "The following field contains not permitted characters:" +msgstr "下列域包含不被允许的字符:" + +#: admin/configtargets.php:255 +msgid "Configuration target" +msgstr "" + +#: admin/configtargets.php:256 +#: admin/contactgroups.php:146 +#: admin/contacts.php:301 +#: admin/contacttemplates.php:293 +#: admin/datadomain.php:129 +msgid "Description" +msgstr "描述" + +#: admin/contactgroups.php:53 +msgid "New contact group inserted:" +msgstr "插入新联系人组:" + +#: admin/contactgroups.php:54 +msgid "Contact group modified:" +msgstr "修改联系人组:" + +#: admin/contactgroups.php:96 +msgid "Define contact groups (contactgroups.cfg)" +msgstr "定义联系人组(contactgroups.cfg)" + +#: admin/contactgroups.php:111 +msgid "Attention, no contacts defined!" +msgstr "注意,未定义联系人!" + +#: admin/contactgroups.php:145 +msgid "Contact group" +msgstr "联系人组" + +# contacts.php +#: admin/contacts.php:70 +msgid "New contact inserted:" +msgstr "插入新的联系人:" + +#: admin/contacts.php:71 +msgid "Contact modified:" +msgstr "被修改的联系人:" + +#: admin/contacts.php:173 +msgid "Define contacts (contacts.cfg)" +msgstr "定义联系人(contacts.cfg)" + +#: admin/contacts.php:230 +msgid "Attention, no time periods defined!" +msgstr "注意,没有定义时间段!" + +#: admin/contacts.php:241 +msgid "Attention, no commands defined!" +msgstr "注意,没有定义命令!" + +#: admin/contacts.php:300 +#: admin/contacttemplates.php:292 +msgid "Contact name" +msgstr "联系人名字" + +# hosttemplates.php +#: admin/contacttemplates.php:70 +msgid "New contact template inserted:" +msgstr "已插入的新联系模板:" + +#: admin/contacttemplates.php:71 +msgid "Contact template modified:" +msgstr "已修改的联系模板:" + +#: admin/contacttemplates.php:173 +msgid "Define contact templates (contacttemplates.cfg)" +msgstr "定义联系人模板(contacttemplates.cfg)" + +#: admin/datadomain.php:69 +msgid "Data domain administration" +msgstr "" + +#: admin/datadomain.php:82 +msgid "Attention, no configuration targets defined!" +msgstr "" + +#: admin/datadomain.php:94 +msgid "Enable" +msgstr "启用" + +# mutdialog.php +#: admin/datadomain.php:95 +msgid "Disable" +msgstr "禁用" + +# fieldvars.php +#: admin/datadomain.php:128 +msgid "Data domain" +msgstr "" + +#: admin/delbackup.php:50 +#: admin/delconfig.php:50 +msgid "File deleted" +msgstr "被删除的文件" + +#: admin/delbackup.php:51 +#: admin/delconfig.php:51 +msgid "successfully deleted" +msgstr "删除成功" + +#: admin/delbackup.php:60 +msgid "Delete backup files" +msgstr "删除备份文件" + +#: admin/delbackup.php:63 +#: admin/delconfig.php:63 +msgid "Filter string" +msgstr "过滤字符串" + +#: admin/delbackup.php:64 +#: admin/delconfig.php:64 +msgid "Search" +msgstr "搜索" + +#: admin/delbackup.php:65 +#: admin/delbackup.php:70 +#: admin/delconfig.php:65 +#: admin/delconfig.php:70 +msgid "Delete" +msgstr "删除" + +#: admin/delbackup.php:66 +#: admin/delconfig.php:66 +msgid "Reset filter" +msgstr "重置过滤条件" + +#: admin/delbackup.php:68 +msgid "Backup file" +msgstr "备份文件" + +#: admin/delbackup.php:69 +#: admin/delconfig.php:69 +msgid "required" +msgstr "必填" + +#: admin/delbackup.php:71 +#: admin/delconfig.php:71 +msgid "Abort" +msgstr "取消" + +#: admin/delbackup.php:72 +#: admin/delconfig.php:72 +msgid "Hold CTRL to select
more than one entry" +msgstr "按住CTTL选择
多个" + +#: admin/delbackup.php:106 +#: admin/delbackup.php:131 +msgid "No backup files or no permission to read the backup files" +msgstr "" + +#: admin/delconfig.php:60 +msgid "Delete config files" +msgstr "删除配置文件" + +#: admin/delconfig.php:68 +msgid "Configuration file" +msgstr "" + +#: admin/download.php:67 +msgid "Download" +msgstr "下载" + +#: admin/group.php:53 +msgid "A new group added:" +msgstr "新增组:" + +#: admin/group.php:54 +msgid "User modified:" +msgstr "用户被修改:" + +#: admin/group.php:94 +msgid "Group administration" +msgstr "用户组管理" + +#: admin/group.php:114 +msgid "Read" +msgstr "读" + +#: admin/group.php:115 +msgid "Write" +msgstr "写" + +#: admin/group.php:116 +msgid "Link" +msgstr "链接" + +#: admin/group.php:134 +msgid "Groupname" +msgstr "组名" + +#: admin/groupusers.php:150 +msgid "No data" +msgstr "无数据" + +#: admin/helpedit.php:65 +msgid "Help text editor" +msgstr "帮助文本编辑器" + +#: admin/helpedit.php:76 +msgid "Main key" +msgstr "主键" + +#: admin/helpedit.php:77 +msgid "Sub key" +msgstr "子键" + +#: admin/helpedit.php:78 +msgid "Language" +msgstr "语言" + +#: admin/helpedit.php:79 +msgid "Nagios version" +msgstr "Nagios版本" + +#: admin/helpedit.php:80 +msgid "Load default text" +msgstr "载入缺省文本" + +# hosttemplates.php +#: admin/hostdependencies.php:61 +msgid "New host dependency inserted:" +msgstr "插入新主机依赖性:" + +#: admin/hostdependencies.php:62 +msgid "Host dependency modified:" +msgstr "改变了主机依赖关系" + +#: admin/hostdependencies.php:125 +msgid "Define host dependencies (hostdependencies.cfg)" +msgstr "定义主机依赖性(hostdependencies.cfg)" + +#: admin/hostdependencies.php:153 +#: admin/hostescalations.php:141 +msgid "Attention, no hosts and hostgroups defined!" +msgstr "注意,没有定义主机或主机组" + +#: admin/hostdependencies.php:189 +#: admin/hostescalations.php:188 +msgid "Config name" +msgstr "配置名称" + +#: admin/hostdependencies.php:190 +msgid "Dependent hosts" +msgstr "依赖的主机" + +#: admin/hostdependencies.php:190 +msgid "Dependent hostgroups" +msgstr "依赖的主机组" + +# hosttemplates.php +#: admin/hostescalations.php:60 +msgid "New host escalation inserted:" +msgstr "插入新升级主机:" + +#: admin/hostescalations.php:61 +msgid "Host escalation modified:" +msgstr "升级主机被修改:" + +#: admin/hostescalations.php:124 +msgid "Define host escalation (hostescalations.cfg)" +msgstr "定义升级主机(hostescalationss.cfg)" + +#: admin/hostescalations.php:156 +msgid "Attention, no contacts and contactgroups defined!" +msgstr "注意,没有定义联系人或联系人组!" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:46 +msgid "Hosts" +msgstr "主机" + +#: admin/hostescalations.php:189 +#: admin/monitoring.php:58 +msgid "Host groups" +msgstr "主机组" + +# hosttemplates.php +#: admin/hostextinfo.php:55 +msgid "New host extended information inserted:" +msgstr "插入新主机扩展信息:" + +#: admin/hostextinfo.php:56 +msgid "Host extended information modified:" +msgstr "主机扩展信息改变:" + +#: admin/hostextinfo.php:75 +msgid "Define host extended information (hostextinfo.cfg)" +msgstr "定义主机扩展信息(hostextinfo.cfg)" + +#: admin/hostextinfo.php:88 +#: admin/hostgroups.php:111 +msgid "Attention, no hosts defined!" +msgstr "注意,没有定义主机!" + +#: admin/hostextinfo.php:118 +#: admin/hosts.php:454 +msgid "Host name" +msgstr "主机名" + +#: admin/hostextinfo.php:119 +msgid "Notes" +msgstr "注释" + +#: admin/hostgroups.php:54 +msgid "New host group inserted:" +msgstr "插入新主机组:" + +#: admin/hostgroups.php:55 +msgid "Host group modified:" +msgstr "主机组被修改:" + +#: admin/hostgroups.php:97 +msgid "Define host groups (hostgroups.cfg)" +msgstr "定义主机组(hostgroups.cfg)" + +#: admin/hostgroups.php:145 +msgid "Host group" +msgstr "主机组" + +# contacts.php +#: admin/hosts.php:77 +msgid "New host inserted:" +msgstr "新主机插入:" + +#: admin/hosts.php:78 +msgid "Host modified:" +msgstr "被修改的主机:" + +#: admin/hosts.php:129 +#: admin/hosts.php:152 +msgid "The assigned, no longer used configuration files were deleted successfully!" +msgstr "被指定的不被使用的配置文件删除成功" + +#: admin/hosts.php:130 +#: admin/hosts.php:153 +msgid "Host file deleted:" +msgstr "删除的主机文件:" + +#: admin/hosts.php:133 +#: admin/hosts.php:156 +msgid "Common files cannot be removed from target systems - please check manually" +msgstr "普通文件不能从目标系统移除-请人工检查" + +#: admin/hosts.php:135 +#: admin/hosts.php:158 +msgid "Errors while deleting the old configuration file - please check!:" +msgstr "删除旧配置文件时发生错误 - 请检查" + +#: admin/hosts.php:283 +msgid "Define hosts (hosts.cfg)" +msgstr "定义主机(hosts.cfg)" + +#: admin/hosts.php:371 +msgid "Attention, no contact groups defined!" +msgstr "注意,没有定义联系组!" + +# hosttemplates.php +#: admin/hosttemplates.php:76 +msgid "New host template inserted:" +msgstr "插入新主机模板:" + +#: admin/hosttemplates.php:77 +msgid "Host template modified:" +msgstr "主机模板被修改:" + +#: admin/hosttemplates.php:187 +msgid "Host template definition (hosttemplates.cfg)" +msgstr "主机模板定义(hosttemplates.cfg)" + +#: admin/hosttemplates.php:345 +msgid "Host template name" +msgstr "主机模板名称" + +#: admin/import.php:51 +msgid "File upload error:" +msgstr "文件上传错误:" + +#: admin/import.php:61 +#: admin/import.php:75 +msgid "File imported - File [overwite flag]:" +msgstr "导入文件 - 文件[覆盖标志]:" + +#: admin/import.php:82 +msgid "Configuration import" +msgstr "导入配置" + +#: admin/import.php:90 +msgid "Template definition" +msgstr "模板定义" + +#: admin/import.php:91 +msgid "Import file" +msgstr "导入文件" + +#: admin/import.php:92 +msgid "Local import file" +msgstr "本地导入文件" + +#: admin/import.php:93 +msgid "Overwrite database" +msgstr "覆盖数据库" + +#: admin/import.php:94 +msgid "Import" +msgstr "导入" + +#: admin/import.php:96 +msgid "Hold CTRL to select
more than one" +msgstr "按住CTTL选择
多个" + +#: admin/import.php:100 +msgid "To prevent errors or misconfigurations, you should import your configurations in an useful order. We recommend to do it like this:

commands -> timeperiods -> contacttemplates -> contacts -> contactgroups -> hosttemplates -> hosts -> hostgroups -> servicetemplates -> services -> servicegroups

" +msgstr "" + +#: admin/import.php:101 +msgid "Check your configuration after import!
In cause of an error or an uncomplete configuration, re-importing the wrong configuration can solve the problem." +msgstr "" + +#: admin/info.php:39 +msgid "This is relative path of your NagiosQL Installation" +msgstr "这是NagiosQL的相对安装路径" + +#: admin/info.php:40 +msgid "This is the absolut path to your NagiosQL Installation" +msgstr "这是NagiosQL的绝对安装路径" + +#: admin/info.php:41 +msgid "If you need a secure connection, select HTTPS instead of HTTP" +msgstr "如果你需要使用安全连接,使用HTTPS而不是使用HTTP" + +#: admin/info.php:42 +msgid "Please choose a temporary directory with write permissions. The default is the temp directory provided by your OS" +msgstr "请选择一个有写权限的临时路径。默认情况下是操作系统提供的临时路径" + +#: admin/info.php:43 +msgid "Please choose your application language" +msgstr "请选择你的应用语言" + +#: admin/info.php:44 +msgid "Encoding should be set to nothing else than utf-8. Any changes at your own risk" +msgstr "编码不应设置为utf-8以外的其他编码。修改的风险由个人承担" + +#: admin/info.php:45 +msgid "IP-Address or hostname of the database server
e.g. localhost" +msgstr "数据库服务器IP地址或者主机名
例如localhost" + +#: admin/info.php:46 +msgid "MySQL Server Port, default is 3306" +msgstr "MySQL服务器端口,默认3306" + +#: admin/info.php:47 +msgid "Name of the NagiosQL database
e.g. db_nagiosql_v3" +msgstr "NagiosQL数据库名
例如db_nagiosql_v3" + +#: admin/info.php:48 +msgid "User with sufficient permission for the NagiosQL database
At least this user should have SELECT, INSERT, UPDATE, DELETE permissions" +msgstr "有足够NagiosQL数据库权限的用户
至少是此用户应该有SELECT,INSERT,UPDATE,DELETE权限" + +#: admin/info.php:49 +msgid "Password for the above mentioned user" +msgstr "上述用户密码" + +#: admin/info.php:50 +msgid "After the defined amount of seconds the session will terminate for security reasons" +msgstr "在指定的秒数过后,session将会由于安全原因而关闭" + +#: admin/info.php:51 +msgid "Decide between authentication based on your Webserver
e.g. Apache configuration (config file or htaccess) or NagiosQL" +msgstr "决定使用网页服务器认证
如:Apache配置文件(配置我恶念或htaccess)还是NagiosQL" + +#: admin/info.php:52 +msgid "How many entries per side should be visibile (e.g. services or hosts)" +msgstr "单个网站可见入口数(如:服务或者主机)" + +#: admin/info.php:53 +msgid "Selection of multiple entries by using the new dialog or by holding CTRL + left click like in NagiosQL2" +msgstr "通过使用新对话框或者像NagiosQL2按住CTRL + 鼠标左键选择多个条目" + +#: admin/info.php:54 +msgid "Enable or disable the warning if a required field contains no data in objects with templates" +msgstr "如果模版内缺少必要的数据,启用或禁止警告。" + +#: admin/info.php:55 +msgid "Enable or disable the automatic online version check." +msgstr "启用或禁止自动版本检查。" + +#: admin/info.php:56 +msgid "If you require a Proxyserver to connect to the Internet (Port 80), please define one." +msgstr "如果你需要代理服务器连接到互联网(端口80),请定义一个。" + +#: admin/info.php:57 +msgid "Address of your Proxyserver e.g. proxy.yourdomain.com:3128" +msgstr "代理服务器地址,例如proxy.youdomain.com:3128" + +#: admin/info.php:58 +msgid "Username to connect through your proxy (optional)" +msgstr "通过代理链接使用的用户名(可选)" + +#: admin/info.php:59 +msgid "Password to connect through your proxy (optional)" +msgstr "通过代理链接使用的密码(可选)" + +#: admin/info.php:78 +msgid "Information PopUp" +msgstr "弹出信息" + +# mutdialog.php +#: admin/info.php:91 +msgid "No information available" +msgstr "无可用信息" + +#: admin/logbook.php:48 +msgid "Dataset successfully deleted. Affected rows:" +msgstr "数据集成功删除。影响行数:" + +# logbook.php +#: admin/logbook.php:74 +msgid "View logbook" +msgstr "查看日志簿" + +#: admin/logbook.php:78 +msgid "Delete logentries between:" +msgstr "删除日志区间:" + +#: admin/logbook.php:80 +msgid "Please at least fill in a start or a stop time" +msgstr "请至少输入起始时间或截止时间" + +#: admin/logbook.php:81 +msgid "Do you really want to delete all log entries between the selected dates?" +msgstr "你真的希望删除所选日期间的所有日志么?" + +#: admin/logbook.php:86 +msgid "previous 20 entries" +msgstr "前20条条目" + +#: admin/logbook.php:92 +msgid "next 20 entries" +msgstr "后20条条目" + +#: admin/menuaccess.php:40 +msgid "Error while inserting the data to the data base:" +msgstr "写入数据库错误:" + +#: admin/menuaccess.php:43 +msgid "Data were successfully inserted to the data base!" +msgstr "数据成功写入数据库!" + +#: admin/menuaccess.php:44 +msgid "Access group set for menu item:" +msgstr "菜单条目中的访问组:" + +# menuaccess.php +#: admin/menuaccess.php:50 +msgid "Define Menu Accessrights" +msgstr "定义菜单访问权限" + +#: admin/menuaccess.php:54 +msgid "In order for a user to get access, he needs to be member of the group selected here." +msgstr "为使一个用户可以访问,他需要是所选择组的成员。" + +#: admin/monitoring.php:32 +msgid "Monitoring" +msgstr "监测" + +# monitoring.php +#: admin/monitoring.php:35 +msgid "To define host and service supervisions as well as host and service groups." +msgstr "定义对主机及服务的监控以及主机和服务器组" + +#: admin/monitoring.php:52 +msgid "Services" +msgstr "服务" + +#: admin/monitoring.php:64 +msgid "Service groups" +msgstr "服务组" + +#: admin/monitoring.php:70 +msgid "Host templates" +msgstr "主机模板" + +#: admin/monitoring.php:76 +msgid "Service templates" +msgstr "服务模板" + +# mutdialog.php +#: admin/mutdialog.php:51 +msgid "Available" +msgstr "可用的" + +#: admin/mutdialog.php:52 +msgid "Selected" +msgstr "选择" + +#: admin/nagioscfg.php:94 +msgid "Nagios main configuration file" +msgstr "Nagios主配置文件" + +#: admin/password.php:50 +msgid "Password successfully modified" +msgstr "成功修改密码" + +#: admin/password.php:64 +#: admin/user.php:72 +msgid "Password too short or password fields unequally!" +msgstr "密码太短或密码不匹配" + +#: admin/password.php:68 +msgid "Old password is wrong" +msgstr "错误的旧密码" + +#: admin/password.php:84 +#: admin/settings.php:244 +msgid "Save" +msgstr "保存" + +#: admin/password.php:87 +msgid "The new passwords are not equal!" +msgstr "新密码不匹配" + +#: admin/password.php:88 +msgid "The new password is too short - use at least 6 characters!" +msgstr "新密码太短 - 至少使用6个字符!" + +# hosttemplates.php +#: admin/servicedependencies.php:61 +msgid "New service dependency inserted:" +msgstr "插入新服务依赖项:" + +#: admin/servicedependencies.php:62 +msgid "Service dependency modified:" +msgstr "更改服务依赖项" + +#: admin/servicedependencies.php:157 +msgid "Define service dependencies (servicedependencies.cfg)" +msgstr "定义服务依赖项(servicedependencies.cfg)" + +#: admin/servicedependencies.php:351 +msgid "Dependent services" +msgstr "依赖的服务" + +# hosttemplates.php +#: admin/serviceescalations.php:61 +msgid "New service escalation inserted:" +msgstr "插入新升级服务:" + +#: admin/serviceescalations.php:62 +msgid "Service escalation modified:" +msgstr "升级模板被修改:" + +#: admin/serviceescalations.php:141 +msgid "Define service escalation (serviceescalations.cfg)" +msgstr "定义服务升级(serviceescalations.cfg)" + +# hosttemplates.php +#: admin/serviceextinfo.php:54 +msgid "New service extended information inserted:" +msgstr "插入新服务扩展信息:" + +#: admin/serviceextinfo.php:55 +msgid "Service extended information modified:" +msgstr "更改了服务扩展信息" + +#: admin/serviceextinfo.php:79 +msgid "Define service extended information (serviceextinfo.cfg)" +msgstr "定义服务扩展信息(serviceextinfo.cfg)" + +#: admin/serviceextinfo.php:159 +msgid "Hostname" +msgstr "主机名" + +#: admin/serviceextinfo.php:160 +msgid "Service" +msgstr "服务" + +# hosttemplates.php +#: admin/servicegroups.php:54 +msgid "New service group inserted:" +msgstr "插入的新服务组" + +#: admin/servicegroups.php:55 +msgid "Service group modified:" +msgstr "被修改的服务组:" + +#: admin/servicegroups.php:97 +msgid "Define service groups (servicegroups.cfg)" +msgstr "定义服务组(servicegroups.cfg)" + +#: admin/servicegroups.php:112 +msgid "Attention, no services defined!" +msgstr "注意,没有定义服务!" + +#: admin/servicegroups.php:146 +msgid "Service group" +msgstr "服务组" + +# hosttemplates.php +#: admin/services.php:77 +msgid "New service inserted:" +msgstr "插入的新服务" + +#: admin/services.php:78 +msgid "Service modified:" +msgstr "修改的服务:" + +#: admin/services.php:141 +#: admin/services.php:167 +msgid "Service file deleted:" +msgstr "删除的服务文件:" + +#: admin/services.php:255 +msgid "Define services (services.cfg)" +msgstr "定义服务(services.cfg)" + +#: admin/services.php:311 +msgid "Attention, no hosts or hostgroups defined!" +msgstr "注意,没有定义主机或主机组" + +#: admin/services.php:328 +msgid "Attention, no check commands defined!" +msgstr "注意,没有定义要检查的命令" + +#: admin/services.php:354 +msgid "Attention, no contacts or contact groups defined!" +msgstr "" + +#: admin/services.php:436 +msgid "Service name" +msgstr "服务名称" + +#: admin/services.php:438 +#: admin/services.php:462 +msgid "All configs" +msgstr "所有配置" + +# hosttemplates.php +#: admin/servicetemplates.php:76 +msgid "New service template inserted:" +msgstr "插入新服务模板:" + +#: admin/servicetemplates.php:77 +msgid "Service template modified:" +msgstr "服务模板被修改:" + +#: admin/servicetemplates.php:195 +msgid "Define service templates (servicetemplates.cfg)" +msgstr "定义服务模板(servicetemplates.cfg)" + +#: admin/servicetemplates.php:357 +msgid "Template name" +msgstr "模板名称" + +#: admin/servicetemplates.php:358 +msgid "Service description" +msgstr "服务描述" + +#: admin/settings.php:63 +msgid "Curl module not loaded, Proxy will be deactivated!" +msgstr "Curl模块没有加载,代理将被禁用。" + +#: admin/settings.php:90 +msgid "An error occured while writing settings to database:" +msgstr "" + +#: admin/settings.php:129 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a'" +msgstr "在设置区域时出错,请汇报此错误以及'locale -a'的输出" + +#: admin/settings.php:136 +msgid "Settings were changed" +msgstr "配置被改变" + +#: admin/settings.php:138 +msgid "An error occured while writing settings.php, please check permissions!" +msgstr "在写入settings.php时发生错误,请检查权限!" + +#: admin/settings.php:141 +msgid "is not writeable, please check permissions!" +msgstr "" + +#: admin/settings.php:147 +msgid "Configure Settings" +msgstr "配置选项" + +#: admin/settings.php:154 +msgid "Change your current NagiosQL settings (e.g. Database user, Language)." +msgstr "改变你当前的NagiosQL配置(例如 数据库用户,语言)" + +#: admin/settings.php:158 +msgid "Path" +msgstr "路径" + +#: admin/settings.php:159 +msgid "Temporary Directory" +msgstr "临时路径" + +#: admin/settings.php:161 +msgid "Server protocol" +msgstr "服务器协议" + +#: admin/settings.php:182 +msgid "Encoding" +msgstr "编码" + +#: admin/settings.php:187 +msgid "Database" +msgstr "数据库" + +#: admin/settings.php:188 +msgid "MySQL Server" +msgstr "MySQL服务器" + +#: admin/settings.php:190 +msgid "MySQL Server Port" +msgstr "MySQL服务器端口" + +#: admin/settings.php:192 +msgid "Database name" +msgstr "数据库名" + +#: admin/settings.php:194 +msgid "Database user" +msgstr "数据库用户" + +#: admin/settings.php:196 +msgid "Database password" +msgstr "数据库密码" + +#: admin/settings.php:201 +msgid "Security" +msgstr "安全" + +#: admin/settings.php:202 +msgid "Session auto logoff time" +msgstr "Session自动退出时间" + +#: admin/settings.php:204 +msgid "Authentication type" +msgstr "认证类型" + +#: admin/settings.php:209 +msgid "Common" +msgstr "普通" + +#: admin/settings.php:210 +msgid "Data lines per page" +msgstr "每页的数据行数" + +#: admin/settings.php:212 +msgid "Selection method" +msgstr "选择方法" + +#: admin/settings.php:217 +msgid "Template warn message" +msgstr "模板警告信息" + +#: admin/settings.php:226 +msgid "Online version check" +msgstr "" + +#: admin/settings.php:232 +msgid "Proxyserver" +msgstr "代理服务器" + +#: admin/settings.php:235 +msgid "Proxy Address" +msgstr "代理地址" + +#: admin/settings.php:237 +msgid "Proxy Username (optional)" +msgstr "代理用户名(可选)" + +#: admin/settings.php:239 +msgid "Proxy Password (optional)" +msgstr "代理密码(可选)" + +#: admin/specials.php:31 +msgid "Misc commands" +msgstr "各种命令" + +# specials.php +#: admin/specials.php:34 +msgid "To define host and service dependencies, host and service escalations as well as host and service additional data." +msgstr " 定义主机及服务间的依赖关系,主机及服务升级和主机及服务的附属数据。" + +#: admin/specials.php:45 +msgid "Host dependencies" +msgstr "主机依赖关系" + +#: admin/specials.php:51 +msgid "Host escalations" +msgstr "主机升级" + +#: admin/specials.php:57 +msgid "Host ext. info" +msgstr "主机其他信息" + +#: admin/specials.php:63 +msgid "Service dependencies" +msgstr "服务依赖关系" + +#: admin/specials.php:69 +msgid "Service escalations" +msgstr "服务升级" + +#: admin/specials.php:75 +msgid "Service ext. info" +msgstr "服务其他信息" + +#: admin/support.php:65 +msgid "NagiosQL support page" +msgstr "" + +#: admin/support.php:75 +msgid "Support contact information" +msgstr "" + +#: admin/support.php:76 +msgid "For questions, the online support forum or contact information visit our website:" +msgstr "" + +#: admin/support.php:80 +msgid "Donate to support NagiosQL" +msgstr "" + +#: admin/support.php:81 +msgid "If you like NagiosQL and it simplifies your daily work, then you may want to support the project by making a donation. This helps us to keep NagiosQL alive and to cover our costs. Thank you for your donation!" +msgstr "" + +#: admin/support.php:82 +msgid "Donate for NagiosQL on sourceforge" +msgstr "" + +#: admin/support.php:86 +msgid "Translation services" +msgstr "" + +#: admin/support.php:87 +msgid "NagiosQL was translated into various languages​​. Since some translators are no longer available in later versions, there may be untranslated words or phrases. If you want to help us complete the translation, correct them or introduce a new language​​, then sign up with us now! The translations are simply feasible online - we use an open translation service where you can register for free at any time:" +msgstr "" + +#: admin/support.php:88 +msgid "Transifex translation service" +msgstr "" + +#: admin/support.php:92 +msgid "Version check" +msgstr "" + +#: admin/support.php:94 +msgid "The online version check is not enabled. You can enable it on the settings page." +msgstr "" + +#: admin/support.php:96 +msgid "The online version check connects the NagiosQL page to find out, if your version is still up to date." +msgstr "" + +#: admin/support.php:106 +msgid "Environment check" +msgstr "" + +#: admin/support.php:108 +#: admin/support.php:118 +#: admin/support.php:129 +#: admin/support.php:137 +#: admin/support.php:146 +#: admin/support.php:156 +#: admin/support.php:171 +#: admin/support.php:183 +#: admin/support.php:192 +#: admin/support.php:201 +#: admin/support.php:210 +#: admin/support.php:220 +#: admin/support.php:267 +#: admin/support.php:282 +#: admin/support.php:301 +#: admin/support.php:332 +#: admin/support.php:354 +#: admin/support.php:358 +#: admin/support.php:375 +#: admin/support.php:379 +#: admin/support.php:395 +#: admin/support.php:398 +#: admin/support.php:401 +#: admin/support.php:420 +#: admin/support.php:424 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:442 +#: admin/support.php:459 +#: admin/support.php:466 +#: admin/support.php:551 +#: admin/support.php:554 +#: admin/support.php:566 +#: admin/support.php:583 +#: admin/support.php:607 +msgid "failed" +msgstr "失败" + +#: admin/support.php:109 +#: admin/support.php:115 +#: admin/support.php:126 +#: admin/support.php:134 +#: admin/support.php:142 +#: admin/support.php:152 +#: admin/support.php:168 +#: admin/support.php:180 +#: admin/support.php:189 +#: admin/support.php:198 +#: admin/support.php:207 +#: admin/support.php:217 +#: admin/support.php:259 +#: admin/support.php:272 +#: admin/support.php:287 +#: admin/support.php:295 +#: admin/support.php:298 +#: admin/support.php:329 +#: admin/support.php:335 +#: admin/support.php:350 +#: admin/support.php:364 +#: admin/support.php:371 +#: admin/support.php:389 +#: admin/support.php:392 +#: admin/support.php:405 +#: admin/support.php:416 +#: admin/support.php:436 +#: admin/support.php:446 +#: admin/support.php:462 +#: admin/support.php:547 +#: admin/support.php:560 +#: admin/support.php:562 +#: admin/support.php:564 +#: admin/support.php:570 +#: admin/support.php:572 +#: admin/support.php:576 +#: admin/support.php:578 +msgid "ok" +msgstr "" + +#: admin/support.php:112 +msgid "PHP version" +msgstr "" + +#: admin/support.php:118 +#: admin/support.php:171 +msgid "Required:" +msgstr "" + +#: admin/support.php:123 +#: admin/support.php:131 +#: admin/support.php:139 +#: admin/support.php:149 +msgid "PHP module:" +msgstr "" + +#: admin/support.php:161 +msgid "MySQL version" +msgstr "" + +#: admin/support.php:176 +#: admin/support.php:185 +#: admin/support.php:194 +#: admin/support.php:203 +msgid "PHP ini settings:" +msgstr "" + +#: admin/support.php:213 +msgid "Read/Write access:" +msgstr "" + +#: admin/support.php:229 +msgid "Config domain checks" +msgstr "" + +#: admin/support.php:230 +msgid "The checks below are based on your data domain and config domain settings. To change the data domain, use the pull down menu in the upper right corner. Repeat this check for any data domain you have configured. To change the config domain, use the data domain menu and select a different config domain value." +msgstr "" + +#: admin/support.php:233 +msgid "Config domain name" +msgstr "" + +#: admin/support.php:235 +msgid "Connection type" +msgstr "" + +#: admin/support.php:256 +msgid "Connection check" +msgstr "" + +#: admin/support.php:298 +#: admin/support.php:335 +#: admin/support.php:398 +#: admin/support.php:420 +msgid "readonly" +msgstr "" + +#: admin/support.php:341 +msgid "Nagios process file" +msgstr "Nagios进程文件" + +#: admin/support.php:354 +#: admin/support.php:375 +#: admin/support.php:395 +#: admin/support.php:427 +#: admin/support.php:439 +#: admin/support.php:466 +msgid "file is missed" +msgstr "" + +#: admin/support.php:359 +#: admin/support.php:380 +msgid "Nagios daemon is not running" +msgstr "" + +#: admin/support.php:364 +#: admin/support.php:405 +#: admin/support.php:446 +msgid "not used with FTP" +msgstr "" + +#: admin/support.php:379 +#: admin/support.php:392 +#: admin/support.php:424 +msgid "demon dead" +msgstr "" + +#: admin/support.php:385 +msgid "Nagios command file" +msgstr "Nagios命令文件" + +#: admin/support.php:432 +msgid "Nagios binary file" +msgstr "Nagios执行文件" + +# mutdialog.php +#: admin/support.php:442 +#: admin/support.php:459 +msgid "not executable" +msgstr "" + +# config_class.php +#: admin/support.php:474 +msgid "Verify configuration files and demon configuration" +msgstr "" + +#: admin/support.php:475 +msgid "Configuration name" +msgstr "" + +# fieldvars.php +#: admin/support.php:476 +msgid "Used in data domain" +msgstr "" + +#: admin/support.php:477 +msgid "Included in demon configuration" +msgstr "" + +#: admin/support.php:549 +msgid "not used" +msgstr "" + +#: admin/support.php:554 +msgid "cfg definition missed" +msgstr "" + +#: admin/support.php:564 +#: admin/support.php:572 +#: admin/support.php:578 +msgid "cfg definition missed, but actually not used" +msgstr "" + +#: admin/support.php:566 +msgid "wrong base path:" +msgstr "" + +#: admin/support.php:583 +msgid "cfg file not readable" +msgstr "" + +#: admin/support.php:606 +msgid "Not used" +msgstr "" + +#: admin/support.php:608 +msgid "unused - please delete!" +msgstr "" + +#: admin/templatedefinitions.php:231 +msgid "Up" +msgstr "上" + +#: admin/templatedefinitions.php:231 +msgid "Down" +msgstr "下" + +#: admin/timedefinitions.php:166 +#: admin/variabledefinitions.php:133 +msgid "Modify" +msgstr "修改" + +#: admin/timeperiods.php:54 +msgid "New time period inserted:" +msgstr "插入新的时间段:" + +#: admin/timeperiods.php:55 +msgid "Time period modified:" +msgstr "被修改的时间段:" + +#: admin/timeperiods.php:118 +msgid "Timeperiod definitions" +msgstr "时间段定义" + +#: admin/timeperiods.php:143 +msgid "Please insert a time definition and a time range" +msgstr "请插入一个时间定义及时间范围" + +# timeperiod.php +#: admin/timeperiods.php:164 +msgid "Time period" +msgstr "时间段" + +# tools.php +#: admin/tools.php:31 +msgid "Different tools" +msgstr "不同的工具" + +#: admin/tools.php:34 +msgid "Useful functions for data import, main configuration, daemon control and so on." +msgstr "对于导入数据,主要的配置,进程控制及其他组件有用的功能" + +#: admin/user.php:62 +msgid "A new user added:" +msgstr "新增用户:" + +#: admin/user.php:80 +msgid "User administration" +msgstr "用户管理" + +#: admin/user.php:103 +msgid "The passwords are not equal!" +msgstr "密码不一样!" + +#: admin/user.php:104 +msgid "Please fill in the password" +msgstr "请输入密码" + +#: admin/user.php:105 +msgid "The password is too short - use at least 6 characters!" +msgstr "密码太短 - 至少6位字符" + +#: admin/user.php:106 +msgid "Webserver authentification" +msgstr "Web服务器认证" + +#: admin/verify.php:45 +#: admin/verify.php:145 +#: functions/config_class.php:711 +#: functions/config_class.php:712 +#: functions/config_class.php:928 +msgid "Writing of the configuration failed - no dataset or not activated dataset found" +msgstr "" + +#: admin/verify.php:57 +msgid "Write host configurations" +msgstr "写入主机配置文件" + +#: admin/verify.php:63 +#: admin/verify.php:83 +msgid "No configuration items defined!" +msgstr "配置选项没有被定义!" + +#: admin/verify.php:77 +msgid "Write service configurations" +msgstr "写入服务配置文件" + +#: admin/verify.php:94 +#: admin/verify.php:108 +#: admin/verify.php:122 +#: admin/verify.php:136 +#: admin/verify.php:190 +#: admin/verify.php:204 +#: admin/verify.php:218 +#: admin/verify.php:232 +#: admin/verify.php:246 +#: admin/verify.php:260 +#: admin/verify.php:274 +msgid "No dataset or no activated dataset found - empty configuration written" +msgstr "" + +#: admin/verify.php:291 +msgid "Cannot find the Nagios binary or no rights for execution!" +msgstr "找不到Nagios执行文件或没有执行权限" + +#: admin/verify.php:304 +msgid "Remote execution (FTP SITE EXEC) is not supported on your system!" +msgstr "远程执行(FTP SITE EXEC)在您的系统上不支持" + +#: admin/verify.php:321 +msgid "Remote execution of nagios verify command failed (remote SSH)!" +msgstr "在远程执行Nagios确认命令失败(远程SSH链接)!" + +#: admin/verify.php:324 +msgid "Nagios binary or configuration file not found (remote SSH)!" +msgstr "没有发现Nagios二进制或配置文件(远程SSH)!" + +#: admin/verify.php:355 +msgid "Nagios daemon successfully restarted" +msgstr "Nagios进程成功重启" + +#: admin/verify.php:356 +msgid "Restart command successfully send to Nagios" +msgstr "重启命令成功发送给Nagios" + +#: admin/verify.php:358 +#: admin/verify.php:363 +#: admin/verify.php:364 +msgid "Restart failed - Nagios command file not found or no rights to execute" +msgstr "重启失败 - 找不到Nagios执行文件或没有执行权限" + +#: admin/verify.php:359 +msgid "Nagios command file not found or no rights to write!" +msgstr "没有发现Nagios命令文件或没有写权限" + +#: admin/verify.php:367 +msgid "Restart failed - Nagios daemon was not running" +msgstr "重启失败 - Nagios进程没有运行" + +#: admin/verify.php:368 +msgid "Nagios daemon is not running, cannot send restart command!" +msgstr "Nagios进程没有运行,不能发送重启命令!" + +#: admin/verify.php:371 +msgid "Restart failed - FTP restrictions" +msgstr "重启失败 - FTP限制" + +#: admin/verify.php:372 +msgid "Nagios restart is not possible via FTP remote connection!" +msgstr "不能通过远程FTP连接重启Nagios" + +#: admin/verify.php:389 +msgid "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!" +msgstr "重启失败 - 找不到Nagios执行文件或没有执行权限(远程SSH链接)!" + +#: admin/verify.php:391 +msgid "Nagios daemon successfully restarted (remote SSH)" +msgstr "Nagios进程成功重启(远程SSH链接)" + +#: admin/verify.php:392 +msgid "Restart command successfully send to Nagios (remote SSH)" +msgstr "重启命令成功发送给Nagios(远程SSH链接)" + +#: admin/verify.php:395 +msgid "Nagios command file not found (remote SSH)!" +msgstr "没有发现Nagios命令文件(远程SSH链接)!" + +#: admin/verify.php:403 +msgid "Check written configuration files" +msgstr "检查写入的配置文件" + +#: admin/verify.php:406 +msgid "Check configuration files:" +msgstr "检查配置文件:" + +#: admin/verify.php:407 +msgid "Restart Nagios:" +msgstr "重新启动Nagios:" + +#: admin/verify.php:408 +msgid "Write monitoring data" +msgstr "写入检测数据" + +#: admin/verify.php:409 +msgid "Write additional data" +msgstr "写入其他数据" + +#: admin/verify.php:410 +msgid "Warning, always check the configuration files before restart Nagios!" +msgstr "警告,重启Nagios前要检查配置文件!" + +#: admin/verify.php:411 +#: config/fieldvars.php:54 +msgid "Do it" +msgstr "执行" + +#: admin/verify.php:436 +#: admin/verify.php:465 +msgid "Written Nagios configuration checked - Warnings/Errors:" +msgstr "检查写入的Nagios配置 - 警告/错误:" + +# config_class.php +#: admin/verify.php:440 +#: admin/verify.php:468 +msgid "Written configuration files are valid, Nagios can be restarted!" +msgstr "写入的配置文件可用,Nagios可以重启" + +#: admin/versioncheck.php:64 +#: admin/versioncheck.php:72 +msgid "check proxy settings" +msgstr "" + +#: admin/versioncheck.php:75 +msgid "Installed" +msgstr "已安装" + +#: admin/versioncheck.php:77 +#: config/fieldvars.php:171 +msgid "Information" +msgstr "信息" + +#: admin/versioncheck.php:91 +msgid "You already have the latest version installed" +msgstr "你已经安装了最新版本" + +#: admin/versioncheck.php:93 +msgid "You are using an old NagiosQL version. Please update to the latest stable version" +msgstr "你正在使用老版本的NagiosQL。请更新到最新的稳定版。" + +#: admin/versioncheck.php:96 +msgid "You are using a newer development version without official support" +msgstr "" + +# fieldvars.php +#: config/fieldvars.php:22 +#: functions/prepend_adm.php:446 +msgid "Domain" +msgstr "域" + +#: config/fieldvars.php:24 +#: config/fieldvars.php:29 +msgid "Server name" +msgstr "服务器名" + +#: config/fieldvars.php:25 +msgid "Method" +msgstr "方法" + +#: config/fieldvars.php:28 +msgid "Directory with SSH key pair" +msgstr "有SSH密钥对的目录" + +#: config/fieldvars.php:30 +msgid "Configuration directories" +msgstr "配置目录" + +#: config/fieldvars.php:31 +msgid "Base directory" +msgstr "基目录" + +#: config/fieldvars.php:32 +msgid "Host directory" +msgstr "主机目录" + +#: config/fieldvars.php:33 +msgid "Service directory" +msgstr "服务目录" + +#: config/fieldvars.php:34 +msgid "Backup directory" +msgstr "备份目录" + +#: config/fieldvars.php:35 +msgid "Host backup directory" +msgstr "主机备份目录" + +#: config/fieldvars.php:36 +msgid "Service backup directory" +msgstr "服务备份目录" + +#: config/fieldvars.php:37 +msgid "Picture base directory" +msgstr "图片根目录" + +#: config/fieldvars.php:43 +msgid "Use common domain" +msgstr "使用普通域" + +#: config/fieldvars.php:44 +msgid "Decode UTF8 data in config files" +msgstr "解码配置文件中的UTF8数据" + +#: config/fieldvars.php:45 +msgid "Access key holes" +msgstr "访问须输入密码" + +# user.php +#: config/fieldvars.php:46 +msgid "Access keys" +msgstr "访问密码" + +#: config/fieldvars.php:48 +msgid "Registered" +msgstr "" + +#: config/fieldvars.php:52 +msgid "Function" +msgstr "功能" + +#: config/fieldvars.php:53 +msgid "Marked" +msgstr "标记" + +#: config/fieldvars.php:55 +msgid "Add" +msgstr "添加" + +#: config/fieldvars.php:56 +msgid "Formcheck" +msgstr "表格检查" + +#: config/fieldvars.php:57 +msgid "Secure question" +msgstr "安全问题" + +#: config/fieldvars.php:58 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "Yes" +msgstr "是" + +#: config/fieldvars.php:59 +#: functions/content_class.php:241 +#: functions/content_class.php:242 +msgid "No" +msgstr "否" + +#: config/fieldvars.php:60 +msgid "Time" +msgstr "时间" + +#: config/fieldvars.php:61 +msgid "User" +msgstr "用户" + +#: config/fieldvars.php:62 +msgid "IP" +msgstr "IP" + +#: config/fieldvars.php:63 +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "Entry" +msgstr "入口" + +#: config/fieldvars.php:64 +msgid "From" +msgstr "发件人" + +#: config/fieldvars.php:65 +msgid "To" +msgstr "收件人" + +#: config/fieldvars.php:66 +msgid "Delete log entries" +msgstr "删除日志条目" + +#: config/fieldvars.php:67 +#: config/fieldvars.php:80 +#: config/fieldvars.php:168 +msgid "Copy" +msgstr "复制" + +#: config/fieldvars.php:70 +msgid "Confirm password" +msgstr "确认密码" + +# password.php +#: config/fieldvars.php:71 +msgid "Old password" +msgstr "旧密码" + +#: config/fieldvars.php:72 +#: config/fieldvars.php:281 +msgid "New password" +msgstr "新密码" + +#: config/fieldvars.php:73 +msgid "Change password" +msgstr "修改密码" + +#: config/fieldvars.php:74 +msgid "Menu page" +msgstr "菜单页" + +#: config/fieldvars.php:75 +msgid "Search string" +msgstr "搜索字符串" + +#: config/fieldvars.php:78 +#: config/fieldvars.php:172 +msgid "Write config file" +msgstr "写入配置文件" + +#: config/fieldvars.php:81 +msgid "Command" +msgstr "命令" + +#: config/fieldvars.php:83 +msgid "Command type" +msgstr "命令类型" + +#: config/fieldvars.php:85 +msgid "Exclude" +msgstr "排除" + +#: config/fieldvars.php:86 +msgid "Include" +msgstr "包含" + +#: config/fieldvars.php:87 +msgid "Time definitions" +msgstr "时间定义" + +#: config/fieldvars.php:88 +msgid "Weekday" +msgstr "平日" + +#: config/fieldvars.php:89 +msgid "Time range" +msgstr "时间范围" + +#: config/fieldvars.php:90 +msgid "Time definition" +msgstr "时间定义" + +#: config/fieldvars.php:91 +msgid "Insert" +msgstr "插入" + +#: config/fieldvars.php:92 +msgid "Modify selection" +msgstr "修改被选项" + +#: config/fieldvars.php:95 +msgid "Time period hosts" +msgstr "时间段主机" + +#: config/fieldvars.php:96 +msgid "Time period services" +msgstr "时间段服务" + +#: config/fieldvars.php:97 +msgid "Host options" +msgstr "主机选项" + +#: config/fieldvars.php:98 +msgid "Service options" +msgstr "服务选项" + +#: config/fieldvars.php:99 +msgid "Host command" +msgstr "主机命令" + +#: config/fieldvars.php:100 +msgid "Service command" +msgstr "服务命令" + +#: config/fieldvars.php:101 +msgid "EMail address" +msgstr "电子邮件地址" + +#: config/fieldvars.php:102 +msgid "Pager number" +msgstr "页码" + +#: config/fieldvars.php:103 +msgid "Addon address" +msgstr "附加地址" + +#: config/fieldvars.php:104 +msgid "Host notif. enable" +msgstr "启用主机提醒" + +#: config/fieldvars.php:105 +msgid "Service notif. enable" +msgstr "启用服务提醒" + +#: config/fieldvars.php:106 +msgid "Can submit commands" +msgstr "能提交命令" + +#: config/fieldvars.php:107 +msgid "Retain status info" +msgstr "保留状态信息" + +#: config/fieldvars.php:108 +msgid "Retain nonstatus info" +msgstr "保留非状态信息" + +# contactgroups.php +#: config/fieldvars.php:109 +msgid "Members" +msgstr "成员" + +#: config/fieldvars.php:110 +msgid "Group members" +msgstr "组成员" + +#: config/fieldvars.php:111 +msgid "Common settings" +msgstr "普通设置" + +#: config/fieldvars.php:112 +msgid "Service settings" +msgstr "服务选项" + +#: config/fieldvars.php:113 +msgid "Add this host configuration to existing service definitions" +msgstr "将此主机配置加入到现有服务定义中" + +#: config/fieldvars.php:115 +msgid "Parents" +msgstr "父" + +#: config/fieldvars.php:117 +msgid "Check command" +msgstr "检查命令" + +#: config/fieldvars.php:118 +msgid "Command view" +msgstr "命令视图" + +#: config/fieldvars.php:119 +msgid "Additional templates" +msgstr "其他模板" + +#: config/fieldvars.php:120 +msgid "Check settings" +msgstr "检查设置" + +#: config/fieldvars.php:121 +msgid "Initial state" +msgstr "初始状态" + +#: config/fieldvars.php:122 +msgid "Retry interval" +msgstr "重试间隔" + +#: config/fieldvars.php:123 +msgid "Max check attempts" +msgstr "最大重试次数" + +#: config/fieldvars.php:124 +msgid "Check interval" +msgstr "检查间隔" + +#: config/fieldvars.php:125 +msgid "Active checks enabled" +msgstr "启用的主动检查" + +#: config/fieldvars.php:126 +msgid "Passive checks enabled" +msgstr "启用的被动检查" + +#: config/fieldvars.php:127 +msgid "Check period" +msgstr "检查时段" + +#: config/fieldvars.php:128 +msgid "Freshness treshold" +msgstr "刷新阈值" + +#: config/fieldvars.php:129 +msgid "Check freshness" +msgstr "检查新数据" + +#: config/fieldvars.php:130 +msgid "Obsess over host" +msgstr "关注主机" + +#: config/fieldvars.php:131 +msgid "Obsess over service" +msgstr "关注服务" + +#: config/fieldvars.php:132 +msgid "Event handler" +msgstr "事件处理方法" + +#: config/fieldvars.php:133 +msgid "Event handler enabled" +msgstr "启用时间处理方法" + +#: config/fieldvars.php:134 +msgid "Low flap threshold" +msgstr "通过阈值下限" + +#: config/fieldvars.php:135 +msgid "High flap threshold" +msgstr "通过阈值上限" + +#: config/fieldvars.php:136 +msgid "Flap detection enabled" +msgstr "启用通过检测" + +#: config/fieldvars.php:137 +msgid "Flap detection options" +msgstr "通过检测选项" + +#: config/fieldvars.php:138 +msgid "Retain status information" +msgstr "保留状态信息" + +#: config/fieldvars.php:139 +msgid "Retain nostatus information" +msgstr "保留非状态信息" + +#: config/fieldvars.php:140 +msgid "Process perf data" +msgstr "进程性能信息" + +#: config/fieldvars.php:141 +msgid "Alarm settings" +msgstr "报警设置" + +#: config/fieldvars.php:142 +msgid "Contacts" +msgstr "联系人" + +#: config/fieldvars.php:144 +msgid "Notification period" +msgstr "通知时段" + +#: config/fieldvars.php:145 +msgid "Notification options" +msgstr "通知选项" + +#: config/fieldvars.php:146 +msgid "Notification interval" +msgstr "通知时长" + +#: config/fieldvars.php:147 +msgid "First notification delay" +msgstr "第一次通知延时" + +#: config/fieldvars.php:148 +msgid "Notification enabled" +msgstr "启用通知" + +#: config/fieldvars.php:149 +msgid "Stalking options" +msgstr "纠缠选项" + +#: config/fieldvars.php:150 +msgid "Addon settings" +msgstr "附加设置" + +#: config/fieldvars.php:152 +msgid "VRML image" +msgstr "VRML图片" + +#: config/fieldvars.php:153 +msgid "Notes URL" +msgstr "注释URL" + +#: config/fieldvars.php:154 +msgid "Status image" +msgstr "状态图片" + +#: config/fieldvars.php:155 +msgid "Icon image" +msgstr "图标图片" + +#: config/fieldvars.php:156 +msgid "Action URL" +msgstr "行动URL" + +#: config/fieldvars.php:157 +msgid "2D coords" +msgstr "2D坐标" + +#: config/fieldvars.php:158 +msgid "3D coords" +msgstr "3D坐标" + +#: config/fieldvars.php:159 +msgid "Icon image ALT text" +msgstr "图片替换文字" + +#: config/fieldvars.php:160 +msgid "standard" +msgstr "标准" + +#: config/fieldvars.php:161 +msgid "on" +msgstr "开" + +#: config/fieldvars.php:162 +msgid "off" +msgstr "关" + +#: config/fieldvars.php:163 +msgid "skip" +msgstr "忽略" + +#: config/fieldvars.php:164 +msgid "Free variable definitions" +msgstr "自由变量定义" + +#: config/fieldvars.php:165 +msgid "Variable name" +msgstr "变量名" + +#: config/fieldvars.php:166 +msgid "Variable value" +msgstr "变量值" + +#: config/fieldvars.php:169 +msgid "Activate" +msgstr "激活" + +#: config/fieldvars.php:170 +msgid "Deactivate" +msgstr "停用" + +#: config/fieldvars.php:173 +msgid "Do you really want to delete this database entry:" +msgstr "你真想删除此数据库条目:" + +#: config/fieldvars.php:174 +msgid "Do you really want to delete all marked entries?" +msgstr "你真想删除所有被标记的条目?" + +#: config/fieldvars.php:175 +msgid "Mark all shown datasets" +msgstr "标记所有被显示数据集" + +#: config/fieldvars.php:176 +msgid "File" +msgstr "文件" + +#: config/fieldvars.php:177 +msgid "Write all config files" +msgstr "写入所有配置文件" + +#: config/fieldvars.php:178 +msgid "Address" +msgstr "地址" + +#: config/fieldvars.php:179 +msgid "Display name" +msgstr "显示名" + +#: config/fieldvars.php:180 +msgid "Use this configuration as template" +msgstr "使用此配置作为模板" + +#: config/fieldvars.php:181 +msgid "Generic name" +msgstr "通用名" + +#: config/fieldvars.php:185 +msgid "Please check at least one option from:" +msgstr "请至少从一个选项检查:" + +#: config/fieldvars.php:186 +msgid "Host group name" +msgstr "主机组名" + +#: config/fieldvars.php:187 +msgid "Host group members" +msgstr "主机组成员" + +#: config/fieldvars.php:191 +msgid "Is volatile" +msgstr "是暂时的" + +#: config/fieldvars.php:192 +msgid "Parallelize checks" +msgstr "并行检查" + +#: config/fieldvars.php:193 +msgid "Config name filter" +msgstr "配置名过滤器" + +#: config/fieldvars.php:195 +msgid "Import directory" +msgstr "导入路径" + +#: config/fieldvars.php:196 +msgid "Please insert a variable name and a variable definition" +msgstr "请插入一个变量名以及一个变量值" + +#: config/fieldvars.php:197 +#: config/fieldvars.php:201 +#: config/fieldvars.php:233 +msgid "Warning:" +msgstr "警告:" + +#: config/fieldvars.php:197 +msgid "You have not filled in some required fields!

If this values are set by a template, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "你没有填写一些必须的域!

如果这些值由模板设置,你可以保存 - 否则你的配置无效" + +#: config/fieldvars.php:199 +msgid "Nagios base directory" +msgstr "Nagios基目录" + +#: config/fieldvars.php:200 +msgid "Write config" +msgstr "写入配置" + +#: config/fieldvars.php:201 +msgid "You have not filled in all command arguments (ARGx) for your selected command!

If this arguments are optional, you can save anyway - otherwise you will get an invalid configuration!" +msgstr "对选定的命令您没有填写一些必须的参数!

如果这些值是可选的,你可以保存 - 否则你的配置无效!" + +#: config/fieldvars.php:202 +msgid "Service group members" +msgstr "服务组成员" + +#: config/fieldvars.php:203 +msgid "Service group name" +msgstr "服务组名" + +#: config/fieldvars.php:206 +msgid "Hostgroups" +msgstr "主机组" + +#: config/fieldvars.php:207 +msgid "Inherit parents" +msgstr "继承的父类" + +#: config/fieldvars.php:208 +msgid "Execution failure criteria" +msgstr "执行失败标准" + +#: config/fieldvars.php:209 +msgid "Nofification failure criteria" +msgstr "通知失败标准" + +#: config/fieldvars.php:210 +msgid "Dependency period" +msgstr "依赖时段" + +#: config/fieldvars.php:211 +msgid "Escalation period" +msgstr "升级时段" + +#: config/fieldvars.php:212 +msgid "Escalation options" +msgstr "升级选项" + +#: config/fieldvars.php:213 +msgid "First notification" +msgstr "第一次通知" + +#: config/fieldvars.php:214 +msgid "Last notification" +msgstr "最后一次通知" + +#: config/fieldvars.php:217 +msgid "Dependent servicegroups" +msgstr "" + +#: config/fieldvars.php:218 +msgid "Help" +msgstr "帮助" + +#: config/fieldvars.php:219 +msgid "Calendar" +msgstr "日历" + +#: config/fieldvars.php:220 +msgid "Group name" +msgstr "组名" + +#: config/fieldvars.php:221 +msgid "Users" +msgstr "用户" + +#: config/fieldvars.php:222 +msgid "Access group" +msgstr "访问组" + +#: config/fieldvars.php:223 +msgid "User definitions" +msgstr "用户定义" + +#: config/fieldvars.php:224 +msgid "User name" +msgstr "用户名" + +#: config/fieldvars.php:225 +msgid "User rights" +msgstr "用户权限" + +#: config/fieldvars.php:226 +msgid "Object access restrictions" +msgstr "对象访问限制" + +#: config/fieldvars.php:227 +msgid "Enable group administration" +msgstr "启用组管理" + +#: config/fieldvars.php:228 +msgid "Show relation data" +msgstr "显示相关数据" + +#: config/fieldvars.php:229 +msgid "Hide relation data" +msgstr "隐藏相关数据" + +#: config/fieldvars.php:231 +msgid "User language" +msgstr "" + +#: config/fieldvars.php:232 +msgid "Standard domain" +msgstr "" + +#: config/fieldvars.php:233 +msgid "The associated services must be additionally written to the files. Only writing the host configuration is not sufficient because the modification is stored inside the service files!" +msgstr "" + +#: config/fieldvars.php:235 +msgid "Monday" +msgstr "星期一" + +#: config/fieldvars.php:236 +msgid "Tuesday" +msgstr "星期二" + +#: config/fieldvars.php:237 +msgid "Wednesday" +msgstr "星期三" + +#: config/fieldvars.php:238 +msgid "Thursday" +msgstr "星期四" + +#: config/fieldvars.php:239 +msgid "Friday" +msgstr "星期五" + +#: config/fieldvars.php:240 +msgid "Saturday" +msgstr "星期六" + +#: config/fieldvars.php:241 +msgid "Sunday" +msgstr "星期日" + +#: config/fieldvars.php:252 +msgid "Main page" +msgstr "主页" + +#: config/fieldvars.php:253 +msgid "Supervision" +msgstr "监督" + +#: config/fieldvars.php:256 +msgid "Commands" +msgstr "命令" + +#: config/fieldvars.php:257 +msgid "Specialties" +msgstr "特征" + +#: config/fieldvars.php:258 +msgid "Tools" +msgstr "工具" + +#: config/fieldvars.php:269 +msgid "Service dependency" +msgstr "服务依赖" + +#: config/fieldvars.php:270 +msgid "Service escalation" +msgstr "服务升级" + +#: config/fieldvars.php:271 +msgid "Host dependency" +msgstr "主机依赖项" + +#: config/fieldvars.php:272 +msgid "Host escalation" +msgstr "主机升级" + +#: config/fieldvars.php:273 +msgid "Extended Host" +msgstr "扩展主机" + +#: config/fieldvars.php:274 +msgid "Extended Service" +msgstr "扩展服务" + +#: config/fieldvars.php:275 +msgid "Data import" +msgstr "导入数据" + +#: config/fieldvars.php:278 +msgid "User admin" +msgstr "用户管理" + +#: config/fieldvars.php:279 +msgid "Group admin" +msgstr "组管理" + +#: config/fieldvars.php:280 +msgid "Nagios control" +msgstr "Nagios控制" + +#: config/fieldvars.php:282 +msgid "Logbook" +msgstr "日志簿" + +#: config/fieldvars.php:283 +msgid "Nagios config" +msgstr "Nagios配置" + +#: config/fieldvars.php:284 +msgid "Settings" +msgstr "设置" + +#: config/fieldvars.php:285 +msgid "Definitions" +msgstr "定义" + +#: config/fieldvars.php:286 +msgid "CGI config" +msgstr "CGI配置" + +#: config/fieldvars.php:287 +msgid "Menu access" +msgstr "访问菜单" + +#: config/fieldvars.php:288 +msgid "Domains" +msgstr "域" + +#: config/fieldvars.php:292 +msgid "Help editor" +msgstr "帮助编辑器" + +# fieldvars.php +#: config/fieldvars.php:293 +msgid "Data domains" +msgstr "" + +#: config/fieldvars.php:294 +msgid "Config targets" +msgstr "" + +#: config/fieldvars.php:295 +msgid "Support" +msgstr "" + +# config_class.php +#: functions/config_class.php:164 +#: functions/config_class.php:168 +msgid "Warning: configuration file is out of date!" +msgstr "警告:配置文件已过期" + +#: functions/config_class.php:173 +#: functions/config_class.php:729 +msgid "Warning: no configuration target defined!" +msgstr "" + +#: functions/config_class.php:340 +msgid "Cannot backup and delete the old configuration file (check the permissions)!" +msgstr "不能备份或者删除旧配置文件(检查权限)!" + +#: functions/config_class.php:358 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote FTP)!" +msgstr "不能备份旧配置文件,权限错误(远程FTP)" + +#: functions/config_class.php:380 +msgid "Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!" +msgstr "不能备份旧配置文件,权限错误(远程SFTP)" + +#: functions/config_class.php:411 +msgid "Cannot delete the file (wrong permissions)!" +msgstr "" + +#: functions/config_class.php:415 +msgid "Cannot delete the file (file does not exist)!" +msgstr "" + +#: functions/config_class.php:432 +msgid "Cannot delete file because the permissions are wrong (remote FTP)!" +msgstr "由于权限错误不能备份配置文件(远程FTP)!" + +#: functions/config_class.php:438 +msgid "Cannot delete file because it does not exists (remote FTP)!" +msgstr "由于文件不存在不能删除配置文件(远程FTP)!" + +#: functions/config_class.php:451 +msgid "Cannot delete file because the permissions are wrong (remote SFTP)!" +msgstr "由于权限错误不能删除文件(远程SFTP)!" + +#: functions/config_class.php:454 +msgid "Cannot delete file because it does not exists (remote SFTP)!" +msgstr "由于文件不存在不能删除文件(远程SFTP)!" + +#: functions/config_class.php:488 +msgid "Cannot get the configuration file (FTP connection failed)!" +msgstr "不能获取配置文件(FTP连接失败)!" + +#: functions/config_class.php:499 +msgid "Cannot write the configuration file (FTP connection failed)!" +msgstr "不能写入配置文件(FTP连接失败)!" + +#: functions/config_class.php:518 +msgid "Cannot get the configuration file (SSH connection failed)!" +msgstr "不能获取配置文件(SSH连接失败)!" + +#: functions/config_class.php:524 +msgid "Cannot get the configuration file (remote file does not exist)!" +msgstr "不能获取配置文件(远程文件不存在)!" + +#: functions/config_class.php:533 +msgid "Cannot write the configuration file (SSH connection failed)!" +msgstr "不能写入配置文件(SSH连接失败)!" + +#: functions/config_class.php:563 +#: functions/config_class.php:761 +msgid "It is not possible to write config files directly from the common domain!" +msgstr "不能从普通域直接写入配置文件。" + +#: functions/config_class.php:929 +msgid "Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission." +msgstr "" + +#: functions/config_class.php:1046 +msgid "Configuration write failed (FTP connection failed):" +msgstr "配置写入失败(FTP连接失败):" + +#: functions/config_class.php:1047 +#: functions/config_class.php:1111 +msgid "Cannot open/overwrite the configuration file (FTP connection failed)!" +msgstr "不能打开/覆盖配置文件(FTP连接失败)!" + +#: functions/config_class.php:1133 +msgid "Cannot open/overwrite the configuration file (remote SFTP)!" +msgstr "不能打开/覆盖配置文件(远程SFTP)!" + +#: functions/config_class.php:1608 +#: functions/config_class.php:1609 +#: functions/config_class.php:1652 +#: functions/config_class.php:1653 +msgid "Connection to remote system failed (SSH2 connection):" +msgstr "链接远程系统失败(SSH2链接):" + +#: functions/config_class.php:1624 +#: functions/config_class.php:1625 +msgid "SSH public key does not exist or is not readable" +msgstr "SSH公钥不存在或不可读。" + +#: functions/config_class.php:1629 +#: functions/config_class.php:1630 +msgid "SSH private key does not exist or is not readable" +msgstr "SSH私钥不存在或不可读" + +#: functions/config_class.php:1733 +#: functions/config_class.php:1734 +msgid "Connection to remote system failed (FTP connection):" +msgstr "链接远程系统失败(FTP连接):" + +# contacts.php +#: functions/config_class.php:1867 +msgid "Could not open directory" +msgstr "不能打开目录" + +#: functions/content_class.php:274 +#: functions/content_class.php:278 +msgid "out-of-date" +msgstr "过期" + +#: functions/content_class.php:275 +msgid "no target" +msgstr "" + +#: functions/content_class.php:276 +#: functions/content_class.php:277 +msgid "missed" +msgstr "丢失" + +#: functions/content_class.php:279 +msgid "up-to-date" +msgstr "最新" + +#: functions/content_class.php:351 +msgid "Last database update:" +msgstr "最后一次数据库升级:" + +#: functions/content_class.php:354 +msgid "Last file change of the configuration target " +msgstr "" + +# data_class.php +#: functions/data_class.php:116 +#: functions/data_class.php:140 +msgid "Delete failed because a database error:" +msgstr "由于数据库错误删除失败:" + +#: functions/data_class.php:119 +#: functions/data_class.php:149 +#: functions/data_class.php:158 +msgid "No data deleted. Probably the dataset does not exist or it is protected from delete." +msgstr "没有数据被删除。可能由于数据集不存在或者它是受保护对象不能删除。" + +#: functions/data_class.php:123 +msgid "Delete dataset id:" +msgstr "删除数据集ID:" + +#: functions/data_class.php:123 +msgid "- from table:" +msgstr "- 从表中:" + +#: functions/data_class.php:123 +#: functions/data_class.php:153 +#: functions/data_class.php:311 +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "- with affected rows:" +msgstr "- 受影响行:" + +#: functions/data_class.php:153 +#: functions/data_class.php:311 +msgid "Delete data from table:" +msgstr "从表中删除数据:" + +#: functions/data_class.php:306 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:316 +msgid "No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission." +msgstr "" + +#: functions/data_class.php:553 +#: functions/data_class.php:554 +msgid "Data set copy failed - table [new name]:" +msgstr "数据集复制失败 - 表[新名]:" + +#: functions/data_class.php:557 +#: functions/data_class.php:558 +msgid "Data set copied - table [new name]:" +msgstr "数据集复制成功 - 表[新名]:" + +#: functions/data_class.php:576 +#: functions/data_class.php:580 +msgid "No dataset copied. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:633 +msgid "No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission." +msgstr "" + +#: functions/data_class.php:637 +msgid "Dataset successfully activated. Affected rows:" +msgstr "数据集成功激活。影响行数:" + +#: functions/data_class.php:638 +#: functions/data_class.php:703 +msgid "Activate dataset from table:" +msgstr "从表中激活数据集:" + +#: functions/data_class.php:642 +msgid "No dataset activated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:698 +msgid "No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the \"info\" function for detailed informations about relations!" +msgstr "" + +#: functions/data_class.php:702 +msgid "Dataset successfully deactivated. Affected rows:" +msgstr "数据集成功停用。影响行数:" + +#: functions/data_class.php:707 +msgid "No dataset deactivated. Maybe the dataset does not exist or you do not have write permission." +msgstr "" + +#: functions/data_class.php:891 +msgid "Relation information for " +msgstr "" + +#: functions/data_class.php:891 +msgid " of table " +msgstr "" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid "Relation to " +msgstr "关系到" + +#: functions/data_class.php:945 +#: functions/data_class.php:947 +#: functions/data_class.php:951 +#: functions/data_class.php:967 +#: functions/data_class.php:970 +msgid ", entry " +msgstr ", 条目" + +#: functions/data_class.php:945 +#: functions/data_class.php:951 +#: functions/data_class.php:970 +msgid "deletion possible" +msgstr "删除" + +#: functions/data_class.php:947 +#: functions/data_class.php:967 +msgid "deletion not possible" +msgstr "不能删除!" + +#: functions/import_class.php:78 +msgid "Unable to get configuration data:" +msgstr "" + +#: functions/import_class.php:98 +msgid "Cannot receive the configuration file (FTP connection)!" +msgstr "不能接收配置文件(FTP连接)!" + +#: functions/import_class.php:116 +msgid "Cannot receive the configuration file (SSH connection)!" +msgstr "不能接收配置文件(SSH连接)!" + +#: functions/import_class.php:189 +msgid "No valid configuration found:" +msgstr "" + +#: functions/import_class.php:198 +msgid "Import file does not exist or is not readable:" +msgstr "" + +#: functions/import_class.php:266 +msgid "Table for import definition" +msgstr "导入定义的表" + +# mutdialog.php +#: functions/import_class.php:266 +msgid "is not available!" +msgstr "不存在!" + +#: functions/import_class.php:318 +#: functions/import_class.php:323 +#: functions/import_class.php:635 +#: functions/import_class.php:636 +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "inside" +msgstr "内部" + +#: functions/import_class.php:318 +msgid "exists and were not overwritten" +msgstr "存在并没有被覆盖" + +#: functions/import_class.php:323 +msgid "were not written" +msgstr "没有被写入" + +# contacts.php +#: functions/import_class.php:635 +#: functions/import_class.php:636 +msgid "could not be inserted:" +msgstr "不能被插入:" + +#: functions/import_class.php:639 +#: functions/import_class.php:640 +msgid "successfully inserted" +msgstr "成功插入" + +#: functions/import_class.php:1275 +msgid "Error: wrong number of arguments - cannot import service group members" +msgstr "错误:参数个数错误 - 不能导入服务组成员" + +#: functions/mysql_class.php:269 +msgid "Missing server connection parameter!" +msgstr "不存在服务器连接参数" + +#: functions/mysql_class.php:276 +#: functions/mysql_class.php:305 +msgid "Connection to the database server has failed by reason:" +msgstr "连接到数据库失败,原因如下:" + +#: functions/mysql_class.php:298 +msgid "Missing database connection parameter!" +msgstr "不存在数据库连接参数" + +#: functions/nag_class.php:123 +msgid "Hide menu" +msgstr "隐藏菜单" + +#: functions/nag_class.php:132 +msgid "Show menu" +msgstr "显示菜单" + +#: functions/nag_class.php:406 +msgid "Page" +msgstr "页" + +#: functions/nag_class.php:961 +msgid "Unrestricted access" +msgstr "无限制访问" + +# prepend.adm +#: functions/prepend_adm.php:101 +#: install/index.php:100 +msgid "Error while connecting to database:" +msgstr "连接数据库失败" + +#: functions/prepend_adm.php:133 +#: functions/prepend_adm.php:192 +msgid "Error in setting the correct locale, please report this error with the associated output of 'locale -a' to bugs@nagiosql.org" +msgstr "在设置正确的区域时出错,请将此错误以及'locale -a'的输出汇报给bugs@nagiosql.org" + +#: functions/prepend_adm.php:269 +msgid "Webserver login successfull" +msgstr "网页服务器成功登录!" + +#: functions/prepend_adm.php:302 +msgid "Login successfull" +msgstr "成功登录" + +#: functions/prepend_adm.php:307 +#: functions/prepend_adm.php:308 +msgid "Login failed!" +msgstr "登录失败" + +#: functions/prepend_adm.php:332 +msgid "Session timeout reached - Seconds:" +msgstr "Session超时-秒:" + +#: functions/prepend_adm.php:343 +msgid "Restricted site accessed:" +msgstr "访问受限站点" + +#: functions/prepend_adm.php:355 +msgid "User not found in database" +msgstr "数据库中未发现用户" + +#: functions/prepend_adm.php:393 +msgid "Admin" +msgstr "管理" + +#: functions/prepend_adm.php:457 +msgid "Logged in:" +msgstr "进入" + +#: functions/prepend_adm.php:458 +msgid "Logout" +msgstr "退出登录" + +#: functions/prepend_adm.php:478 +msgid "Warning - template file not found or not readable, please check your file permissions! - File: " +msgstr "警告 - 模板文件没有发现或不可读,请检查文件权限! - 文件:" + +#: functions/prepend_content.php:303 +#: functions/prepend_content.php:306 +#: functions/prepend_content.php:322 +#: functions/prepend_content.php:325 +msgid "Some configuration files were not written. Dataset not activated, not found or you do not have write permission!" +msgstr "" + +#: functions/prepend_content.php:305 +#: functions/prepend_content.php:324 +msgid "Configuration files successfully written!" +msgstr "" + +#: functions/prepend_content.php:344 +msgid "Admin can't be deleted" +msgstr "管理员不能被删除" + +#: functions/prepend_content.php:347 +msgid "Localhost can't be deleted" +msgstr "Localhost不能删除" + +#: functions/prepend_content.php:475 +msgid "No permission to open configuration!" +msgstr "没有打开配置的权限!" + +#: functions/translator.php:56 +msgid "English" +msgstr "英语" + +#: functions/translator.php:60 +msgid "German" +msgstr "德语" + +#: functions/translator.php:64 +msgid "Chinese (Simplified)" +msgstr "中文(简体)" + +#: functions/translator.php:68 +msgid "Italian" +msgstr "意大利语" + +#: functions/translator.php:72 +msgid "French" +msgstr "法语" + +#: functions/translator.php:76 +msgid "Russian" +msgstr "俄语" + +#: functions/translator.php:80 +msgid "Spanish" +msgstr "西班牙语" + +#: functions/translator.php:84 +msgid "Portuguese (Brazilian)" +msgstr "葡萄牙语(巴西)" + +#: functions/translator.php:88 +msgid "Dutch" +msgstr "荷兰语" + +#: functions/translator.php:92 +msgid "Danish" +msgstr "丹麦语" + +#: install/index.php:63 +#: install/index.php:172 +msgid "Online Documentation" +msgstr "在线文档" + +#: install/index.php:99 +msgid "Database connection failed. Upgrade not available!" +msgstr "" + +#: install/index.php:105 +msgid "Settings table not available or wrong. Upgrade not available!" +msgstr "" + +#: install/index.php:116 +msgid "Installation cannot continue, please make sure you have the mysql extension loaded!" +msgstr "" + +#: install/index.php:121 +msgid "Installation cannot continue, postgres is not yet available in beta!" +msgstr "" + +#: install/index.php:124 +msgid "Installation cannot continue, please make sure you have the pgsql extension loaded!" +msgstr "" + +#: install/index.php:128 +msgid "Database type in settings file is wrong (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:131 +msgid "Database values in settings file are missing (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:134 +msgid "Settings file not found or not readable (config/settings.php). Upgrade not available!" +msgstr "" + +#: install/index.php:144 +msgid "Default values file is not available or not readable (install/functions/initial_settings.php). Installation possible, but without predefined data!" +msgstr "" + +#: install/index.php:150 +#: install/install.php:124 +msgid "Welcome to the NagiosQL Installation Wizard" +msgstr "欢迎使用NagiosQL安装向导" + +#: install/index.php:151 +msgid "This wizard will help you to install and configure NagiosQL." +msgstr "此向导将帮你安装并配置NagiosQL。" + +#: install/index.php:152 +msgid "For questions please visit" +msgstr "如有问题请访问" + +#: install/index.php:153 +msgid "First let's check your local environment and find out if everything NagiosQL needs is available." +msgstr "首先检查你的本地环境以及检查NagiosQL所需的环境是否可用。" + +#: install/index.php:154 +msgid "The basic requirements are:" +msgstr "基本所需软件:" + +#: install/index.php:155 +msgid "PHP 5.2.0 or greater including:" +msgstr "PHP 5.2.0或以上版本,包括:" + +#: install/index.php:156 +#: install/index.php:157 +#: install/index.php:158 +#: install/index.php:161 +#: install/index.php:163 +#: install/index.php:164 +msgid "PHP Module:" +msgstr "PHP模块:" + +#: install/index.php:163 +#: install/index.php:164 +#: install/index.php:165 +msgid "(optional)" +msgstr "(可选)" + +#: install/index.php:165 +msgid "PECL Extension:" +msgstr "PECL扩展:" + +#: install/index.php:166 +msgid "php.ini options" +msgstr "php.ini选项" + +#: install/index.php:167 +msgid "file_uploads on (for upload features)" +msgstr "file_uploads在(用于上传文件)" + +#: install/index.php:168 +msgid "session.auto_start needs to be off" +msgstr "session.auto_start需要设置为off" + +#: install/index.php:169 +msgid "A MySQL database server" +msgstr "MySQL服务器" + +#: install/index.php:170 +msgid "Nagios 2.x/3.x" +msgstr "" + +#: install/index.php:176 +msgid "START INSTALLATION" +msgstr "开始安装" + +#: install/index.php:177 +msgid "START UPDATE" +msgstr "开始更新" + +#: install/step1.php:80 +msgid "Requirements" +msgstr "需求" + +#: install/step1.php:82 +msgid "Finish" +msgstr "完成" + +#: install/step1.php:83 +msgid "Checking requirements" +msgstr "检查前提条件" + +#: install/step1.php:84 +msgid "Checking Client" +msgstr "检查客户端" + +#: install/step1.php:85 +msgid "Checking PHP version" +msgstr "检查PHP版本" + +#: install/step1.php:86 +msgid "Checking PHP extensions" +msgstr "检查PHP扩展" + +#: install/step1.php:87 +msgid "Checking available database interfaces" +msgstr "检查可用的数据库接口" + +#: install/step1.php:88 +msgid "Checking php.ini/.htaccess settings" +msgstr "检查php.ini/.htaccess配置" + +#: install/step1.php:89 +msgid "Checking System Permission" +msgstr "检查系统权限" + +#: install/step1.php:90 +msgid "The following modules/extensions are required to run NagiosQL" +msgstr "要运行NagiosQL需要下列模块/扩展。" + +#: install/step1.php:91 +msgid "The next couple of extensions are optional but recommended" +msgstr "下列扩展是可选的但推荐。" + +#: install/step1.php:92 +msgid "Check which of the supported extensions are installed. At least one of them is required." +msgstr "检查已安装的可支持扩展。需要至少其中的一个。" + +#: install/step1.php:93 +msgid "The following settings are required to run NagiosQL" +msgstr "要运行NagiosQL需要下列配置" + +#: install/step1.php:107 +msgid "ENABLED" +msgstr "启用" + +#: install/step1.php:109 +msgid "NOT ENABLED" +msgstr "未启用" + +#: install/step1.php:113 +msgid "Version" +msgstr "版本" + +#: install/step1.php:115 +#: install/step1.php:128 +#: install/step1.php:141 +#: install/step1.php:158 +#: install/step1.php:178 +#: install/step1.php:182 +#: install/step1.php:194 +#: install/step1.php:201 +#: install/step1.php:203 +#: install/step1.php:213 +#: install/step1.php:220 +#: install/step1.php:227 +#: install/step1.php:234 +#: install/step1.php:241 +#: install/step1.php:248 +msgid "OK" +msgstr "完成" + +#: install/step1.php:116 +#: install/step1.php:118 +msgid "detected" +msgstr "检测到" + +#: install/step1.php:119 +msgid "or greater is required" +msgstr "或者需要更高版本" + +#: install/step1.php:131 +#: install/step1.php:144 +#: install/step1.php:162 +msgid "Could be loaded. Please add in php.ini" +msgstr "不能加载。请在php.ini加入。" + +#: install/step1.php:132 +#: install/step1.php:145 +#: install/step1.php:163 +#: install/step1.php:175 +msgid "NOT AVAILABLE" +msgstr "不可用" + +#: install/step1.php:157 +msgid "New installation only - updates are only supported using the same database interface!" +msgstr "" + +#: install/step1.php:175 +msgid "cannot be empty and needs to be set" +msgstr "不能为空,需要设置。" + +#: install/step1.php:184 +msgid "should be" +msgstr "应该是" + +#: install/step1.php:194 +#: install/step1.php:196 +msgid "Read test on settings file (config/settings.php)" +msgstr "配置文件读取测试(config/settings.php)" + +#: install/step1.php:198 +msgid "Settings file does not exists (config/settings.php)" +msgstr "配置文件不存在(config/settings.php)" + +#: install/step1.php:198 +msgid "will be created" +msgstr "将被创建" + +#: install/step1.php:201 +#: install/step1.php:205 +msgid "Write test on settings file (config/settings.php)" +msgstr "配置文件写测试(config/settings.php)" + +#: install/step1.php:203 +#: install/step1.php:208 +msgid "Write test on settings directory (config/)" +msgstr "配置目录写测试(config/)" + +#: install/step1.php:213 +#: install/step1.php:215 +msgid "Read test on a class file (functions/nag_class.php)" +msgstr "类文件读取测试(functions/nag_class.php)" + +#: install/step1.php:220 +#: install/step1.php:222 +msgid "Read test on startsite file (admin.php)" +msgstr "开始站点文件读测试(admin.php)" + +#: install/step1.php:227 +#: install/step1.php:229 +msgid "Read test on a template file (templates/index.tpl.htm)" +msgstr "模板文件读测试(templates/index.tpl.htm)" + +#: install/step1.php:234 +#: install/step1.php:236 +msgid "Read test on a admin template file (templates/admin/admin_master.tpl.htm)" +msgstr "管理模板文件读取测试(templates/admin/admin_master.tpl.htm)" + +#: install/step1.php:241 +#: install/step1.php:243 +msgid "Read test on a file template (templates/files/contacts.tpl.dat)" +msgstr "模板文件读取测试(templates/files/contacts.tpl.dat)" + +#: install/step1.php:248 +#: install/step1.php:250 +msgid "Read test on a image file (images/pixel.gif)" +msgstr "图片文件读取测试(images/pixel.gif)" + +#: install/step1.php:254 +msgid "There are some errors - please check your system settings and read the requirements of NagiosQL!" +msgstr "有些错误-请检查你的系统配置并阅读NagiosQL的需求文档" + +#: install/step1.php:255 +msgid "Read the INSTALLATION file from NagiosQL to find out, how to fix them." +msgstr "阅读NagiosQL的安装文件以找出解决问题的方法" + +#: install/step1.php:256 +msgid "After that - refresh this page to proceed" +msgstr "完成后-刷新页面以继续" + +#: install/step1.php:259 +msgid "Refresh" +msgstr "刷新" + +#: install/step1.php:261 +msgid "Environment test sucessfully passed" +msgstr "环境测试成功通过" + +#: install/step1.php:264 +msgid "Next" +msgstr "下一步" + +#: install/step2.php:33 +msgid "The NagiosQL first passwords are not equal!" +msgstr "" + +#: install/step2.php:38 +msgid "Setup" +msgstr "创建" + +#: install/step2.php:39 +msgid "Please complete the form below. Mandatory fields marked *" +msgstr "请完成以下表格。强制项有*标记" + +#: install/step2.php:40 +msgid "Database Configuration" +msgstr "数据库配置文件" + +#: install/step2.php:41 +msgid "Database Type" +msgstr "" + +#: install/step2.php:43 +msgid "Database Server" +msgstr "" + +#: install/step2.php:45 +msgid "Local hostname or IP address" +msgstr "" + +#: install/step2.php:51 +msgid "Database Server Port" +msgstr "" + +#: install/step2.php:55 +msgid "NagiosQL DB User" +msgstr "NagiosQL数据库用户" + +#: install/step2.php:57 +msgid "NagiosQL DB Password" +msgstr "NagiosQL数据库密码" + +#: install/step2.php:59 +msgid "Administrative Database User" +msgstr "" + +#: install/step2.php:61 +msgid "Administrative Database Password" +msgstr "" + +#: install/step2.php:62 +msgid "Drop database if already exists?" +msgstr "如果数据库存在是否删除?" + +#: install/step2.php:64 +msgid "NagiosQL User Setup" +msgstr "创建NagiosQL用户" + +#: install/step2.php:65 +msgid "Initial NagiosQL User" +msgstr "初始Nagios用户" + +#: install/step2.php:67 +msgid "Initial NagiosQL Password" +msgstr "初始NagiosQL密码" + +#: install/step2.php:69 +msgid "Please repeat the password" +msgstr "请重复输入密码" + +#: install/step2.php:70 +msgid "Nagios Configuration" +msgstr "Nagios配置文件" + +#: install/step2.php:71 +msgid "Import Nagios sample config?" +msgstr "导入Nagios参考配置" + +#: install/step2.php:74 +msgid "NagiosQL path values" +msgstr "" + +#: install/step2.php:75 +msgid "Create NagiosQL config paths?" +msgstr "" + +#: install/step2.php:77 +msgid "NagiosQL config path" +msgstr "" + +#: install/step2.php:79 +msgid "Nagios config path" +msgstr "" + +#: install/step2.php:81 +msgid "Both path values were stored in your configuration target settings for localhost." +msgstr "" + +#: install/step2.php:82 +msgid "If you select the create path option, be sure that the NagiosQL base path exist and the webserver demon has write access to it. So the installer will create the required subdirectories in your localhost's filesystem (hosts, services, backup etc.)" +msgstr "" + +#: install/step2.php:94 +msgid "Please backup your database before proceeding!" +msgstr "请继续前备份数据库!" + +#: install/step3.php:40 +msgid "Finishing Setup" +msgstr "完成安装" + +#: install/step3.php:42 +msgid "Deploy NagiosQL settings" +msgstr "部署NagiosQL配置" + +#: install/step3.php:43 +msgid "Database server connection (privileged user)" +msgstr "" + +#: install/step3.php:44 +msgid "Database server version" +msgstr "" + +#: install/step3.php:45 +msgid "Database server support" +msgstr "" + +#: install/step3.php:46 +msgid "Delete existing NagiosQL database" +msgstr "删除现有的NagiosQL数据库" + +#: install/step3.php:47 +msgid "Creating new database" +msgstr "创建新数据库" + +#: install/step3.php:48 +msgid "Create NagiosQL database user" +msgstr "" + +#: install/step3.php:49 +msgid "Installing NagiosQL database tables" +msgstr "" + +#: install/step3.php:50 +msgid "Set initial NagiosQL Administrator" +msgstr "设置初始NagiosQL管理员" + +#: install/step3.php:51 +msgid "Database server connection (NagiosQL user)" +msgstr "" + +#: install/step3.php:52 +msgid "Writing global settings to database" +msgstr "将全局设置写入数据库" + +#: install/step3.php:53 +msgid "Writing database configuration to settings.php" +msgstr "向settings.php写入数据库配置" + +#: install/step3.php:54 +msgid "Import Nagios sample data" +msgstr "导入Nagios参考数据" + +#: install/step3.php:55 +msgid "Create and/or store NagiosQL path settings" +msgstr "" + +#: install/step3.php:73 +msgid "Updating existing NagiosQL database" +msgstr "更新现有的NagiosQL数据库" + +#: install/step3.php:80 +msgid "Installed NagiosQL version" +msgstr "已安装的NagiosQL版本" + +#: install/step3.php:86 +msgid "Upgrading from version" +msgstr "升级自版本" + +#: install/step3.php:86 +msgid "to" +msgstr "到" + +#: install/step3.php:92 +msgid "Converting database to utf8 character set" +msgstr "将数据库转换为utf8字符集" + +#: install/step3.php:98 +msgid "Converting database tables to utf8 character set" +msgstr "将数据库表转换为utf8字符集" + +#: install/step3.php:104 +msgid "Converting database fields to utf8 character set" +msgstr "将数据库字段转换为utf8字符集" + +#: install/step3.php:126 +msgid "Create new NagiosQL database" +msgstr "创建新NagiosQL数据库" + +#: install/step3.php:133 +msgid "Database already exists and drop database was not selected, please correct or manage manually" +msgstr "数据库已经存在并且删除数据库没有被选择,请改正或者手工操作" + +#: install/step3.php:137 +#: install/functions/install_class.php:115 +#: install/functions/install_class.php:159 +msgid "passed" +msgstr "通过" + +#: install/step3.php:146 +msgid "unknown" +msgstr "" + +#: install/step3.php:211 +msgid "Back" +msgstr "返回" + +#: install/step3.php:216 +msgid "Please delete the install directory to continue!" +msgstr "请删除安装目录以继续" + +#: install/functions/install_class.php:110 +#: install/functions/install_class.php:154 +#: install/functions/install_class.php:188 +#: install/functions/install_class.php:229 +#: install/functions/install_class.php:303 +#: install/functions/install_class.php:335 +#: install/functions/install_class.php:413 +#: install/functions/install_class.php:529 +#: install/functions/install_class.php:768 +#: install/functions/install_class.php:814 +#: install/functions/install_class.php:901 +msgid "Database type not defined!" +msgstr "" + +#: install/functions/install_class.php:195 +#: install/functions/install_class.php:265 +msgid "supported" +msgstr "支持" + +#: install/functions/install_class.php:198 +msgid "not supported" +msgstr "不支持" + +#: install/functions/install_class.php:268 +msgid "Your NagiosQL installation is up to date - no further actions are needed!" +msgstr "" + +#: install/functions/install_class.php:272 +#: install/functions/install_class.php:279 +msgid "Updates to NagiosQL 3.2 and above are only supported from NagiosQL 3.0.0 and above!" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:277 +msgid "Error while selecting settings table." +msgstr "" + +#: install/functions/install_class.php:308 +#: install/functions/install_class.php:340 +#: install/functions/install_class.php:419 +#: install/functions/install_class.php:421 +#: install/functions/install_class.php:494 +#: install/functions/install_class.php:534 +#: install/functions/install_class.php:625 +#: install/functions/install_class.php:675 +#: install/functions/install_class.php:732 +#: install/functions/install_class.php:740 +#: install/functions/install_class.php:773 +#: install/functions/install_class.php:819 +#: install/functions/install_class.php:906 +msgid "done" +msgstr "完成" + +#: install/functions/install_class.php:419 +msgid "Only added rights to existing user" +msgstr "" + +#: install/functions/install_class.php:483 +#: install/functions/install_class.php:488 +msgid "SQL file is not readable or empty" +msgstr "" + +# mutdialog.php +#: install/functions/install_class.php:501 +msgid "No SQL update files available" +msgstr "" + +#: install/functions/install_class.php:571 +#: install/functions/install_class.php:576 +#: install/functions/install_class.php:585 +#: install/functions/install_class.php:590 +#: install/functions/install_class.php:613 +#: install/functions/install_class.php:620 +msgid "Inserting initial data to settings database has failed:" +msgstr "" + +#: install/functions/install_class.php:679 +msgid "Connot open/write to config/settings.php" +msgstr "" + +#: install/functions/install_class.php:713 +#: install/functions/install_class.php:720 +msgid "Inserting path data to database has failed:" +msgstr "" + +#: install/functions/install_class.php:732 +msgid "Check the permissions of the created paths!" +msgstr "" + +#: install/functions/install_class.php:736 +msgid "NagiosQL config path is not writeable - only database values updated" +msgstr "" + +# prepend.adm +#: install/functions/install_class.php:776 +#: install/functions/install_class.php:822 +#: install/functions/install_class.php:909 +msgid "Database errors while converting to utf-8:" +msgstr "" + +#~ msgid "Polish" +#~ msgstr "Polish" +#~ msgid "Japanese" +#~ msgstr "Japanese" +#~ msgid "Spanish (Argentina)" +#~ msgstr "Spanish (Argentina)" +#~ msgid "PHP session module" +#~ msgstr "PHP session module" +#~ msgid "PHP gettext module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ftp module" +#~ msgstr "PHP Module:" +#~ msgid "PHP ssh module" +#~ msgstr "PHP Module:" +#~ msgid "Could not connect to Updateserver" +#~ msgstr "Could not connect to update server" +#~ msgid "Error" +#~ msgstr "Error" +#~ msgid "An error occured during the version check" +#~ msgstr "An error occured during the version check" +#~ msgid "Checking for NagiosQL Updates" +#~ msgstr "Checking for NagiosQL Updates" +#~ msgid "You already have the latest development version installed" +#~ msgstr "You already have the latest development version installed" +#~ msgid "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgstr "" +#~ "Entry cannot be deactivated because it is used by another configuration" +#~ msgid "Automatically check for online updates (internet access required!)" +#~ msgstr "Automatically check for online updates (internet access required!)" +#~ msgid "Connection to remote system failed (SSH2 connection)!" +#~ msgstr "Connection to remote system failed (SSH2 connection)!" +#~ msgid "Connection to remote system failed (FTP connection)!" +#~ msgstr "Connection to remote system failed (FTP connection)!" +#~ msgid "No dataset activated. Probably the dataset does not exist" +#~ msgstr "No dataset activated. Probably the dataset does not exist" +#~ msgid "No dataset deactivated. Probably the dataset does not exist" +#~ msgstr "No dataset deactivated. Probably the dataset does not exist" +#~ msgid "Relation information for " +#~ msgstr "Relational information for " +#~ msgid "Not installed" +#~ msgstr "Not installed" +#~ msgid "The following settings are optional but recommended" +#~ msgstr "The following settings are optional but recommended" + diff --git a/config/locale/zh_CN/index.html b/config/locale/zh_CN/index.html new file mode 100644 index 0000000..e69de29 diff --git a/config/main.css b/config/main.css new file mode 100644 index 0000000..af7dfab --- /dev/null +++ b/config/main.css @@ -0,0 +1,226 @@ +@charset "utf-8"; +/*///////////////////////////////////////////////////////////////////////////// +// +// NagiosQL +// +/////////////////////////////////////////////////////////////////////////////// +// +// (c) 2005-2012 by Martin Willisegger +// +// Project : NagiosQL +// Component : CSS Main definition +// Website : http://www.nagiosql.org +// Date : $LastChangedDate: 2012-02-21 14:10:41 +0100 (Tue, 21 Feb 2012) $ +// Author : $LastChangedBy: martin $ +// Version : 3.2.0 +// Revision : $LastChangedRevision: 1229 $ +// +/////////////////////////////////////////////////////////////////////////////*/ +body { + font-family: Arial, Helvetica, sans-serif; + background-color: #FFFFFF; + margin: 0px; + padding: 0px; + font-size: 12px; +} +#login { + text-align: center; + margin:0pt auto; + max-width:80em; + min-width:740px; +} +/************************/ +/** HEADER definitions */ +/************************/ +.header { + background: #FFFFFF url(../images/bg_top.png) repeat-x right top; +} +.headerleft { + vertical-align: bottom; + text-align: left; + padding-left: 10px; +} +.headerleft a { + color: #002C52; + background-color: #FFFFFF; +} +.headerleft a:hover { + color: #002C52; + background-color: #E5E9ED ; +} +.headerleft a:active { + color: #002C52; + background-color: #E5E9ED ; +} +.top-link { + color: #002C52; + font-size: 10pt; + text-decoration: none; + font-weight: bold; + background-color: #FFFFFF; + padding: 2px 3px 0px 3px; + border-top:1px solid #002C52; + border-left:1px solid #002C52; + border-right:1px solid #002C52; +} +.headermiddle { + vertical-align: bottom; + height: 40px; + width: 200px; +} +.headerright { + text-align: right; + vertical-align: bottom; + padding-right: 20px; +} +.infoleft { + vertical-align: middle; + text-align: left; + font-size: 10px ; + padding-left: 20px; +} +.inforight { + width:200px; + vertical-align: middle; + text-align: right; + font-size: 10px; + padding: 4px 20px 4px 4px; +} +.inforight2 { + vertical-align: middle; + text-align: right; + font-size: 10px; +} +/********************/ +/** Formatierungen */ +/********************/ +h1,h2,h3 { + color: #0c4271; + margin-top: 0px; +} +h1 { + text-align: left; + font-size: 22px; +} +h2 { + font-size: 14px; +} +h3 { + font-size: 14px; + font-style:italic; +} +/********************/ +/** Menu **********/ +/********************/ +.menutable { + margin: 0px; + padding: 0px; + border: none; + text-align:left; +} +.menutable a { + text-decoration: none; + color: #666666; +} +.menutable a:hover { + color: #FF00FF; +} +.menutable .menu_act { + color: #FF0000; + font-size: 12px; + font-weight: bold; + padding-left: 20px; + height: 20px; + background: url(../images/bg_menu_aktiv.png) repeat-x left top; + width: 140px; +} +.menutable .menu_act a { + color: #00396a; +} +.menutable .menu_act a:hover { + color: #00396a; +} +.menutable .menu { + color: #FFFFFF; + font-size: 12px; + font-weight: bold; + padding-left: 20px; + height: 20px; + background: url(../images/bg_menu_inaktiv.png) repeat-x left top; + width: 140px; +} +.menutable .menu a { + color: #d6d6d6; +} +.menutable .menu a:hover { + color: #FFFFFF; +} +.menutable .menu_sub { + font-size: 11px; + color: #666666; + text-decoration: none; + height: 5px; + padding-left: 30px; + background: #FFFFFF url(../images/bg_submenu.png) repeat-y left top; +} +.menutable .menu_sub a { + color: #666666; +} +.menutable .menu_sub a:hover { + color: #666666; + text-decoration: underline; +} +.menutable .menu_sub_act { + font-size: 11px; + font-weight: bold; + color: #666666; + text-decoration: none; + height: 5px; + padding-left: 30px; + background: #FFFFFF url(../images/bg_submenu.png) repeat-y left top; +} +.menutable .menu_sub_act a { + color: #666666; +} +.menutable .menu_sub_act a:hover { + color: #666666; + text-decoration: underline; +} +.menulinksmall { + font-size: 10px; + color: #666666; + text-decoration: none; +} +/************************/ +/** YUI definitions */ +/************************/ +#cal-cont .bd:after { + content:"."; + display:block; + clear:left; + height:0; + visibility:hidden; +} +#cal-cont .bd { + padding:0; +} +#cal-cont2 .bd:after { + content:"."; + display:block; + clear:left; + height:0; + visibility:hidden; +} +#cal-cont2 .bd { + padding:0; +} +#cal { + border:none; + padding:1em +} +.yui-content input[type="radio"] { + background-color:#EDF5FF; +} +.yui-content input[type="checkbox"] { + background-color:#EDF5FF; +} \ No newline at end of file diff --git a/doc/CHANGELOG b/doc/CHANGELOG new file mode 100755 index 0000000..881229f --- /dev/null +++ b/doc/CHANGELOG @@ -0,0 +1,23 @@ +CHANGELOG 3.2.0 +--------------- + +- [OK] Enable/Disable regardless of register +- [OK] HTML reworking +- [OK] Domain separation (Data / Configuration) +- [OK] Additional user settings + o Language + o Standard domain +- [OK] Better HTML/CSS implementation for IE (scroll fields) +- [OK] Configuration name is stored as free variable inside the configuration file +- [OK] New support page with additional checks +- [OK] New/reworked installer +- [OK] Servicegroup support for servicedependencies and serviceescalations +- [OK][BUG] Reworked service selection in servicedependencies and serviceescalations +- [OK][BUG] Reworked right management (menu access / read rights) + +OPEN in 3.2.0 +------------- +- YUI3 - YUI3 is still BETA +- Reworking templates for better integration +- Support for different time zones of remote systems (timestamp/file_stamp) +- PosgresQL support (comes with 3.2.x) diff --git a/doc/INSTALLATION_deDE.txt b/doc/INSTALLATION_deDE.txt new file mode 100644 index 0000000..c586dd8 --- /dev/null +++ b/doc/INSTALLATION_deDE.txt @@ -0,0 +1,110 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// NagiosQL +// +/////////////////////////////////////////////////////////////////////////////// +// +// (c) 2008-2012 by Martin Willisegger +// +// Project : NagiosQL +// Component: Installations HowTo +// Website : http://www.nagiosql.org +// Date : $LastChangedDate: 2012-03-12 08:30:07 +0100 (Mon, 12 Mar 2012) $ +// Author : $LastChangedBy: martin $ +// Version : 3.2.0 +// Revision : $LastChangedRevision: 1288 $ +// SVN-ID : $Id: INSTALLATION_deDE.txt 1288 2012-03-12 07:30:07Z martin $ +// +/////////////////////////////////////////////////////////////////////////////// + +==================== += Vorraussetzungen = +==================== + + * Webserver z.B. Apache 2.x + * MySQL 5.x oder neuer + * Nagios 2.x/3.x oder Nagios kompatible Monitoringsoftware + * PHP 5.2.0 oder groesser, inklusive: + * PHP Module: Session + * PHP Module: MySQL + * PHP Module: gettext + * PHP Module: filter + * PHP Module: FTP (optional) + * PECL Erweiterung: SSH (optional) + * Javascript im Webbrowser zugelassen + * Empfohlener Webbrowser: Mozilla Firefox + +=================== += Neuinstallation = +=================== + + 1. Download und entpacken von NagiosQL 3.2 in einem Apache zugaenglichen Verzeichnis. + 2. Der Installationsassistent wird automatisch durch Eingabe von install/index.php gestartet. + 3. Die gewuenschte Sprache auswaehlen (siehe Appendix 2.) + 4. Zum Installieren von NagiosQL den Anweisungen folgen. + +================== += AKTUALISIERUNG = +================== + + 1. Aktualisierungen von NagiosQL 1.x und 2.x sind leider nicht moeglich, bitte einfach eine neue Installation starten und + dann die Nagios Konfiguration durch den Import einbinden. + 2. Aktualisierungen von NagiosQL 3.x + a. Download und entpacken von NagiosQL 3.2 in ein NEUES Apache zugaenglichen Verzeichnis (DocumentRoot auf neues Verzeichnis + aendern) + b. Wird dieselbe Apachekonfiguration verwendet (altes NagiosQL Verzeichnis wegkopiert, neues NagiosQL Verzeichnis bekommt + denselben Namen), sollte der Apache Demon vor dem Upgrade neu gestartet werden. + c. Verschiebe die alte config/settings.php Datei in das neue NagiosQL 3.2 Verzeichnis config/ + d. Die alte Datenbank manuell sichern (z.Bsp. mit mysqldump) + e. Der Installationsassistent wird durch den Aufruf von install/index.php gestartet + f. Die gewuenschte Sprache waehlen (siehe auch Appendix 1.) und den Anweisungen folgen + +================= += Konfiguration = +================= + 1. NagiosQL + a. Loggen Sie sich in Ihre neue NagiosQL Installation ein. + b. Ueberpruefen Sie die automatisch gesetzten Einstellungen unter: Administration => Einstellungen + c. Konfigurieren Sie die individuellen Nagios Einstellungen unter: Administration => Domains + 2. Nagios + a. Ueberpruefen Sie, dass der Webserver Benutzer die Berechtigungen besitzt, die Nagios Ordner zu lesen und ggf. zu schreiben. Zum Testen "nagios -v" als Webserver Benutzer ausfuehren. + Tip: Den Webserver Benutzer der Gruppe Nagios zufuegen und der Gruppe die noetigen Rechte geben. + b. Aendern Sie alle "cfg_dir" und "cfg_file" Definitionen in der "nagios.cfg" wie folgt: + + cfg_file=/timeperiods.cfg + + cfg_file=/commands.cfg + + cfg_file=/contacts.cfg + cfg_file=/contactgroups.cfg + cfg_file=/contacttemplates.cfg + + cfg_dir=/hosts + cfg_file=/hosttemplates.cfg + cfg_file=/hostgroups.cfg + cfg_file=/hostextinfo.cfg + cfg_file=/hostescalations.cfg + cfg_file=/hostdependencies.cfg + + cfg_dir=/services + cfg_file=/servicetemplates.cfg + cfg_file=/servicegroups.cfg + cfg_file=/serviceextinfo.cfg + cfg_file=/serviceescalations.cfg + cfg_file=/servicedependencies.cfg + +================ +==== Pruefen ==== +================ +Oeffnen Sie nach erfolgter Installation die Support Seite unter Administration um die Installation zu pruefen und allfaellige Korrekturen festzustellen. + +================ +=== Probleme === +================ +Zur Zeit gibt es keine bekannten Probleme. Support erreicht man ueber das Forum (http://www.nagiosql.org/forum.html) oder fuer Programmfehler den Bugtracker (http://dev.nagigosql.org) + +================ +=== APPENDIX === +================ + 1. Zum Umstellen der Sprache muss das gewuenschte Encoding in den locales verfuegbar sein, z.B. de_DE.utf8. Das laesst sich an der Console ueber den Aufruf von "locale -a" herausfinden. + 2. Bei Problemen mit der Sprachdarstellung oder fehlender Uebersetzung waehrend der Installation kann ein Apache Restart helfen diff --git a/doc/INSTALLATION_enGB.txt b/doc/INSTALLATION_enGB.txt new file mode 100644 index 0000000..44d5ce0 --- /dev/null +++ b/doc/INSTALLATION_enGB.txt @@ -0,0 +1,110 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// NagiosQL +// +/////////////////////////////////////////////////////////////////////////////// +// +// (c) 2008-2012 by Martin Willisegger +// +// Project : NagiosQL +// Component: Installation HowTo +// Website : http://www.nagiosql.org +// Date : $LastChangedDate: 2012-03-12 08:30:07 +0100 (Mon, 12 Mar 2012) $ +// Author : $LastChangedBy: martin $ +// Version : 3.2.0 +// Revision : $LastChangedRevision: 1288 $ +// SVN-ID : $Id: INSTALLATION_enGB.txt 1288 2012-03-12 07:30:07Z martin $ +// +/////////////////////////////////////////////////////////////////////////////// + +================ += REQUIREMENTS = +================ + + * Webserver like Apache 2.x + * MySQL 5.x or greater + * Nagios 2.x/3.x or Nagios compatible monitoring software + * PHP 5.2.0 or greater including: + * PHP Module: Session + * PHP Module: MySQL + * PHP Module: gettext + * PHP Module: filter + * PHP Module: FTP (optional) + * PECL Extension: SSH (optional) + * Javascript activated in Webbrowser + * Recommended Webbrowser: Mozilla Firefox + +================ +NEW INSTALLATION +================ + + 1. Download and extract NagiosQL 3.2 to a directory within your Apache Document Root + 2. Start the Installation Wizard by opening install/index.php + 3. Switch to your preferred language (see Appendix 1.) + 4. Follow the instructions to install NagiosQL + +================ +=== UPGRADES === +================ + + 1. Upgrade from NagiosQL 1.x and 2.x are not possible, you should better start at "New Installation" and after the installation is done, + import Nagios configuration files with NagiosQL + 2. Upgrade from NagiosQL 3.x + a. Download and extract NagiosQL 3.2 to a NEW directory and change your Apache DocumentRoot to the new directory + b. If the same Apache configuration is used (old NagiosQL directory moved away and new NagiosQL directory moved to the old + DocumentRoot), you should restart the apache demon before upgrade + b. Move your old config/settings.php file to the new NagiosQL 3.2 config/ folder + c. Backup your old NagiosQL database (as example with mysqldump) + d. Start the Installation Wizard by opening install/index.php + e. Switch to your preferred language (see Appendix) and follow the instructions + + +================= += CONFIGURATION = +================= + 1. NagiosQL + a. Login to your new installed NagiosQL + b. Verify automatically detected settings at Administration => Settings + c. Configure your Nagios Installation at Administration => Domains + 2. Nagios + a. Verify that the webserver user has sufficent permission to the required Nagios directories. You could check that, if you execute "nagios -v" as the webserver user. + b. Verify that all required directories and files (defined in 1.c "Configuration") exists and have sufficent permissions for the webserver user + c. Replace all existing cfg_dir and cfg_file definitions in nagios.cfg by: + + cfg_file= empty passphrase! + +3. Copy the key on the remote system +# ssh-copy-id -i /etc/nagiosql/ssh/id_rsa/id_rsa.pub nagiosql_usr@remote-system + +4. Check the permissions (read access for apache user) +# chown wwwrun /etc/nagiosql/ssh/id_rsa + +5. Check the login on the remote system: +# ssh -i /etc/nagiosql/ssh/id_rsa nagiosql_usr@remote-system +-> Login without a password should be possible! + +6. In NagiosQL GUI - go to Administration -> Domain and edit the domain data of your remote system: +6.1. Select SSH/SFTP as Method +6.2. Fill in nagiosql_usr as User +6.3. Fill in /etc/nagiosql/ssh/ as Directory of the key pair (without id_rsa)! + + +Using passwort authentication (not recommended) +=============================================== + +If you are using ssh2 with user/password - you have to enable PasswordAuthentication in your sshd_config: +PasswordAuthentication yes + + +Installing SSH2 Module for PHP +============================== + +1. Install pecl extension from distribution (probably part of php5-devel) + +2. Install libssh2 devel from distribution + +3. # pecl install ssh2 + or + # pecl install ssh2-beta + (Use predefined values -> return) + +4. Add ssh2.so to your php.ini: + extension=ssh2.so \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6a01da57c57e52f32a1aaf0938ba7a7ef5c7d9b7 GIT binary patch literal 1150 zcmb`GSx8i27>1866uC`}nVFe}+E^eiNrZ;WIF4H`qs~~iXho*u>@&xas9bYF=b|(X zrBX91GR>@1IF-vJND|sb5C%bX6$eC!F5kXU=16xD{fFm#@c!>}_%Hs$FfR0nL=3$H zm`j@&#+zXn2|*DhYdMY8C3a;P2mf=is>or2XH`*uU{OZ$m4!$6tHp6VTM)%xJ0H(m zPek)9<CG?vO> zI8MH!nX9ZC=1n=Jr;a)=-v?+Vw=$f;G z*8R*t&Xlna6$@g`?hSQ<2v6Fq7_jM~NfN`9;lJ*u`Eoj$7&eU@ z6a6i)mCLX&Gm61>E9NE!aJTjx)bVa;RZB6_T@9^tJ4~s&1>cbD#c8FUs4t4f#Yg)K)SL>(?aL~RbX7r<;0{xYx8PgSd}d5?FUode=2;h(7N${C z7zQo%jLADNOj~wwVd{a Y|HtY7%LEvv%H{8QOWm);GU0H41J^ULbpQYW literal 0 HcmV?d00001 diff --git a/functions/common.js b/functions/common.js new file mode 100644 index 0000000..b769ed9 --- /dev/null +++ b/functions/common.js @@ -0,0 +1,435 @@ +popup = false; +function info(key1,key2,ver) { + if(popup&&popup.closed==false) popup.close(); + var top = (screen.availHeight - 240) / 2; + var left = (screen.availWidth - 320) / 2; + popup = window.open("info.php?key1=" + key1 + "&key2=" + key2 + "&version=" + ver, + "Information", + "width=320, height=240, top=" + top + ", left=" + left + ", SCROLLBARS=YES, MERNUBAR=NO, DEPENDENT=YES"); + popup.focus(); +} +var myFocusObject = new Object(); +function checkfields(fields,frm,object) { + var error = false; + var ar_field = fields.split(","); + for (i=0;i +function msginit(msg,header,type) { + YAHOO.namespace("msg.container"); + var handleOK = function() { + this.hide(); + //myFocusObject.myValue.focus(); + }; + if (type == 1) { + var iconobj = YAHOO.widget.SimpleDialog.ICON_WARN; + } + if (type == 2) { + var iconobj = YAHOO.widget.SimpleDialog.ICON_HELP; + } + YAHOO.msg.container.domainmsg = new YAHOO.widget.SimpleDialog("domainmsg", + { width: "300px", + fixedcenter: true, + visible: false, + draggable: false, + close: true, + text: msg, + modal: true, + icon: iconobj, + constraintoviewport: true, + buttons: [ { text:"Ok", handler:handleOK, isDefault:true } ] + } ); + YAHOO.msg.container.domainmsg.setHeader(header); + YAHOO.msg.container.domainmsg.render("msgcontainer"); + YAHOO.msg.container.domainmsg.show(); +} + + +function confirminit(msg,header,type,yes,no,key) { + YAHOO.namespace("question.container"); + var handleYes = function() { + confOpenerYes(key); + this.hide(); + }; + var handleNo = function() { + this.hide(); + }; + if (type == 1) { + var iconobj = YAHOO.widget.SimpleDialog.ICON_WARN; + } + YAHOO.question.container.domainmsg = new YAHOO.widget.SimpleDialog("confirm1", + { width: "400px", + fixedcenter: true, + visible: false, + draggable: false, + close: true, + text: msg, + modal: true, + icon: iconobj, + constraintoviewport: true, + buttons: [ { text:yes, handler:handleYes, isDefault:true }, + { text:no, handler:handleNo }] + } ); + YAHOO.question.container.domainmsg.setHeader(header); + YAHOO.question.container.domainmsg.render("confirmcontainer"); + YAHOO.question.container.domainmsg.show(); +} + + + +function dialoginit(key1,key2,ver,header) { + YAHOO.namespace("dialog.container"); + + var handleCancel = function() { + this.cancel(); + }; + var handleSuccess = function(o){ + if(o.responseText !== undefined){ + document.getElementById('dialogcontent').innerHTML = o.responseText; + } + } + var handleFailure = function(o){ + if(o.responseText !== undefined){ + document.getElementById('dialogcontent').innerHTML = "No information found"; + } + } + var callback = { + success:handleSuccess, + failure: handleFailure + }; + if (key2 == "updInfo") { + sUrl = "admin/info.php?key1=" + key1 + "&key2=" + key2 + "&version=" + ver; + } else { + sUrl = "info.php?key1=" + key1 + "&key2=" + key2 + "&version=" + ver; + } + var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); + + if (typeof YAHOO.dialog.container.infodialog == "undefined") { + YAHOO.dialog.container.infodialog = new YAHOO.widget.Dialog("infodialog", + { width : "50em", + visible : false, + draggable: true, + fixedcenter: true, + constraintoviewport : true, + buttons : [ { text:"Ok", handler:handleCancel, isDefault:true } ] + }); + + } + + YAHOO.dialog.container.infodialog.setHeader(header); + YAHOO.dialog.container.infodialog.render(); + YAHOO.dialog.container.infodialog.show(); +} + + +function calendarinit(lang,start,field,key,cont,obj) { + YAHOO.util.Event.onDOMReady(function(){ + + var dialog, calendar; + + calendar = new YAHOO.widget.Calendar(obj, { + iframe:false, + hide_blank_weeks:true, + START_WEEKDAY:start + }); + if (lang == "de_DE") { + calendar.cfg.setProperty("MONTHS_LONG", ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); + calendar.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); + } + + function cancelHandler() { + this.hide(); + } + + function handleSelect(type,args,obj) { + var dates = args[0]; + var date = dates[0]; + var year = date[0], month = date[1], day = date[2]; + + var txtDate1 = document.getElementById(field); + if (month < 10) { month = "0" + month;} + if (day < 10) { day = "0" + day;} + txtDate1.value = year + "-" + month + "-" + day; + dialog.hide(); + } + + dialog = new YAHOO.widget.Dialog(cont, { + context:[field, "tl", "bl"], + width:"16em", + draggable:true, + close:true + }); + calendar.render(); + dialog.render(); + dialog.hide(); + + calendar.renderEvent.subscribe(function() { + dialog.fireEvent("changeContent"); + }); + calendar.selectEvent.subscribe(handleSelect, calendar.cal1, true); + + YAHOO.util.Event.on(key, "click", dialog.show, dialog, true); + }); +} + +// Open edit dialog for list boxes +function openMutDlgInit(field,divbox,header,key,langkey1,langkey2,exclude) { + + YAHOO.util.Event.onDOMReady(function(){ + + var mutdialog; + + var handleSuccess = function(o){ + if(o.responseText !== undefined){ + document.getElementById(divbox+'content').innerHTML = o.responseText; + } + } + var handleFailure = function(o){ + if(o.responseText !== undefined){ + document.getElementById(divbox+'content').innerHTML = "No information found"; + } + } + var callback = { + success:handleSuccess, + failure: handleFailure + }; + sUrl = "mutdialog.php?object=" + field + "&exclude=" + exclude; + var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback); + + var handleSave = function() { + var source = document.getElementById(field); + var targetSelect = document.getElementById(field+'Selected'); + var targetAvail = document.getElementById(field+'Avail'); + for (i = 0; i < targetSelect.length; ++i) { + targetSelect.options[i].selected = true; + } + for (i = 0; i < source.length; ++i) { + source.options[i].selected = false; + source.options[i].className = source.options[i].className.replace(/ ieselected/g , ''); + } + for (i = 0; i < targetSelect.length; ++i) { + for (y = 0; y < source.length; ++y) { + var value1 = targetSelect.options[i].value.replace(/^e/g , ''); + var value2 = "e"+value1; + if ((source.options[y].value == value1) || (source.options[y].value == value2)) { + source.options[y].selected = true; + source.options[y].value = targetSelect.options[i].value; + source.options[y].text = targetSelect.options[i].text; + source.options[y].className = source.options[y].className+" ieselected"; + } + } + } + this.cancel(); + if ((typeof(update) == 'number') && (update == 1)) { + updateForm(field); + } + }; + var handleCancel = function() { + this.cancel(); + }; + mutdialog = new YAHOO.widget.Dialog(divbox, + { width : "60em", + fixedcenter : true, + visible : false, + draggable: true, + modal: true, + constraintoviewport : true, + buttons : [ { text:langkey1, handler:handleSave, isDefault:true }, + { text:langkey2, handler:handleCancel } ] + }); + + mutdialog.setHeader(header); + mutdialog.render(); + mutdialog.hide(); + mutdialog.beforeShowEvent.subscribe(function() { + getData(field); + }); + + YAHOO.util.Event.on(key, "click", mutdialog.show, mutdialog, true); + }); +} + +// Additional functions for edit dialog +function getData(field) { + var source = document.getElementById(field); + var targetSelect = document.getElementById(field+'Selected'); + var targetAvail = document.getElementById(field+'Avail'); + for (i=0; i < targetSelect.length; i++) { + targetSelect.options[i] = null; + } + targetSelect.length = 0; + for (i=0; i < targetAvail.length; i++) { + targetAvail.options[i] = null; + } + targetAvail.length = 0; + for (i = 0; i < source.length; ++i) { + if (source.options[i].selected == true) { + NeuerEintrag1 = new Option(source.options[i].text, source.options[i].value, false, false); + NeuerEintrag1.className = source.options[i].className.replace(/ ieselected/g , ''); + NeuerEintrag1.className = NeuerEintrag1.className.replace(/ inpmust/g , ''); + targetSelect.options[targetSelect.length] = NeuerEintrag1; + } + if (source.options[i].selected == false) { + if (source.options[i].text != "") { + NeuerEintrag2 = new Option(source.options[i].text, source.options[i].value, false, false); + NeuerEintrag2.className = source.options[i].className.replace(/ ieselected/g , ''); + NeuerEintrag2.className = NeuerEintrag2.className.replace(/ inpmust/g , ''); + targetAvail.options[targetAvail.length] = NeuerEintrag2; + } + } + } +} +// Insert selection +function selValue(field) { + var targetSelect = document.getElementById(field+'Selected'); + var targetAvail = document.getElementById(field+'Avail'); + if (targetAvail.selectedIndex != -1) { + var DelOptions = new Array(); + for (i = 0; i < targetAvail.length; ++i) { + if (targetAvail.options[i].selected == true) { + NeuerEintrag = new Option(targetAvail.options[i].text, targetAvail.options[i].value, false, false); + NeuerEintrag.className = targetAvail.options[i].className; + targetSelect.options[targetSelect.length] = NeuerEintrag; + DelOptions.push(i); + } + } + sort(targetSelect); + DelOptions.reverse(); + for (var i = 0; i < DelOptions.length; ++i) { + targetAvail.options[DelOptions[i]] = null; + } + } +} +// Insert selection (exclude variant) +function selValueEx(field) { + var targetSelect = document.getElementById(field+'Selected'); + var targetAvail = document.getElementById(field+'Avail'); + if (targetAvail.selectedIndex != -1) { + var DelOptions = new Array(); + for (i = 0; i < targetAvail.length; ++i) { + if (targetAvail.options[i].selected == true) { + if ((targetAvail.options[i].text != '*') && (targetAvail.options[i].value != '0')) { + NeuerEintrag = new Option("!"+targetAvail.options[i].text, "e"+targetAvail.options[i].value, false, false); + } else { + NeuerEintrag = new Option(targetAvail.options[i].text, targetAvail.options[i].value, false, false); + } + NeuerEintrag.className = targetAvail.options[i].className; + targetSelect.options[targetSelect.length] = NeuerEintrag; + DelOptions.push(i); + } + } + sort(targetSelect); + DelOptions.reverse(); + for (var i = 0; i < DelOptions.length; ++i) { + targetAvail.options[DelOptions[i]] = null; + } + } +} +// Remove selection +function desValue(field) { + var targetSelect = document.getElementById(field+'Selected'); + var targetAvail = document.getElementById(field+'Avail'); + if (targetSelect.selectedIndex != -1) { + var DelOptions = new Array(); + for (i = 0; i < targetSelect.length; ++i) { + if (targetSelect.options[i].selected == true) { + var text = targetSelect.options[i].text.replace(/^!/g , ''); + var value = targetSelect.options[i].value.replace(/^e/g , ''); + NeuerEintrag = new Option(text, value, false, false); + NeuerEintrag.className = targetSelect.options[i].className; + targetAvail.options[targetAvail.length] = NeuerEintrag; + DelOptions.push(i); + } + } + sort(targetAvail); + DelOptions.reverse(); + for (var i = 0; i < DelOptions.length; ++i) { + targetSelect.options[DelOptions[i]] = null; + } + } +} +// Sort entries +function sort(obj){ + var sortieren = new Array(); + var list = new Array(); + var i; + + // Insert list to array + for (i=0; i < obj.options.length; i++) { + list[i] = new Array(); + list[i]["text"] = obj.options[i].text; + list[i]["value"] = obj.options[i].value; + list[i]["className"] = obj.options[i].className; + } + + // Sort into a single dimension array + for (i=0; i < obj.length; i++){ + sortieren[i]=list[i]["text"]+";"+list[i]["value"]+";"+list[i]["className"]; + } + + // Real sort + sortieren.sort(); + + // Make array to list + for (i=0; i < sortieren.length; i++) { + var felder = sortieren[i].split(";"); + list[i]["text"] = felder[0]; + list[i]["value"] = felder[1]; + list[i]["className"] = felder[2]; + } + + // Remove list field + for (i=0; i < obj.options.length; i++) { + obj.options[i] = null; + } + + // insert list to dialog + for (i=0; i < list.length; i++){ + NeuerEintrag = new Option(list[i]["text"], list[i]["value"], false, false); + NeuerEintrag.className = list[i]["className"]; + obj.options[i] = NeuerEintrag; + } +} +// Show relation data +function showRelationData(option) { + if (option == 1) { + document.getElementById("rel_text").className = "elementHide"; + document.getElementById("rel_info").className = "elementShow"; + } else { + document.getElementById("rel_text").className = "elementShow"; + document.getElementById("rel_info").className = "elementHide"; + } +} \ No newline at end of file diff --git a/functions/config_class.php b/functions/config_class.php new file mode 100644 index 0000000..ff4e2cd --- /dev/null +++ b/functions/config_class.php @@ -0,0 +1,1887 @@ +arrSettings = $_SESSION['SETS']; + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get last change date of table and config files + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Determines the dates of the last data table change and the last modification to the + // configuration files + // + // Parameter: $strTableName Name of the data table + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + // $arrTimeData Array with time data of table and all config files + // $strCheckConfig Information string (text message) + // + /////////////////////////////////////////////////////////////////////////////////////////// + function lastModifiedFile($strTableName,&$arrTimeData,&$strCheckConfig) { + // Get configuration filename based on table name + switch($strTableName) { + case "tbl_timeperiod": $strFile = "timeperiods.cfg"; break; + case "tbl_command": $strFile = "commands.cfg"; break; + case "tbl_contact": $strFile = "contacts.cfg"; break; + case "tbl_contacttemplate": $strFile = "contacttemplates.cfg"; break; + case "tbl_contactgroup": $strFile = "contactgroups.cfg"; break; + case "tbl_hosttemplate": $strFile = "hosttemplates.cfg"; break; + case "tbl_servicetemplate": $strFile = "servicetemplates.cfg"; break; + case "tbl_hostgroup": $strFile = "hostgroups.cfg"; break; + case "tbl_servicegroup": $strFile = "servicegroups.cfg"; break; + case "tbl_servicedependency": $strFile = "servicedependencies.cfg"; break; + case "tbl_hostdependency": $strFile = "hostdependencies.cfg"; break; + case "tbl_serviceescalation": $strFile = "serviceescalations.cfg"; break; + case "tbl_hostescalation": $strFile = "hostescalations.cfg"; break; + case "tbl_hostextinfo": $strFile = "hostextinfo.cfg"; break; + case "tbl_serviceextinfo": $strFile = "serviceextinfo.cfg"; break; + } + // Get table times + $strCheckConfig = ""; + $arrTimeData = ""; + $arrTimeData['table'] = "unknown"; + // Clear status cache + clearstatcache(); + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + $this->getDomainData("enable_common",$strCommon); + // Get last change of date table + if ($strCommon == 1) { + $strSQL = "SELECT `updateTime` FROM `tbl_tablestatus` + WHERE (`domainId`=".$this->intDomainId." OR `domainId`=0) AND `tableName`='".$strTableName."' ORDER BY `updateTime` DESC LIMIT 1"; + } else { + $strSQL = "SELECT `updateTime` FROM `tbl_tablestatus` WHERE `domainId`=".$this->intDomainId." AND `tableName`='".$strTableName."'"; + } + $booReturn = $this->myDBClass->getSingleDataset($strSQL,$arrDataset); + if ($booReturn && isset($arrDataset['updateTime'])) { + $arrTimeData['table'] = $arrDataset['updateTime']; + } else { + $strSQL = "SELECT `last_modified` FROM `".$strTableName."` WHERE `config_id`=".$this->intDomainId." ORDER BY `last_modified` DESC LIMIT 1"; + $booReturn = $this->myDBClass->getSingleDataset($strSQL,$arrDataset); + if (($booReturn == true) && isset($arrDataset['last_modified'])) { + $arrTimeData['table'] = $arrDataset['last_modified']; + } + } + // Get config sets + $arrConfigId = $this->getConfigSets(); + if ($arrConfigId != 1) { + // Define variables + $strTimeFile = "unknown"; + $intFileStamp = mktime(); + foreach($arrConfigId AS $intConfigId) { + // Get configuration file data + $this->getConfigData($intConfigId,"target",$strTarget); + $this->getConfigData($intConfigId,"basedir",$strBaseDir); + $this->getConfigData($intConfigId,"method",$strMethod); + $arrTimeData[$strTarget] = "unknown"; + $intFileStampTemp = -1; + // Lokal file system + if (($strMethod == 1) && (file_exists($strBaseDir."/".$strFile))) { + $intFileStampTemp = filemtime($strBaseDir."/".$strFile); + $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + // FTP file system + } else if ($strMethod == 2) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId) || ($this->resConnectType != "FTP")) { + $booReturn = $this->getFTPConnection($intConfigId); + if ($booReturn == 1) return(1); + } + $intFileStampTemp = ftp_mdtm($this->resConnectId, $strBaseDir."/".$strFile); + if ($intFileStampTemp != -1) $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + ftp_close($this->resConnectId); + // SSH file system + } else if ($strMethod == 3) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getSSHConnection($intConfigId); + if ($booReturn == 1) return(1); + } + // Check file date + if (is_array($this->sendSSHCommand('ls '.str_replace("//","/",$strBaseDir."/".$strFile)))) { + $arrInfo = ssh2_sftp_stat($this->resSFTP,str_replace("//","/",$strBaseDir."/".$strFile)); + $intFileStampTemp = $arrInfo['mtime']; + if ($intFileStampTemp != -1) $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + } + } + if (isset($intFileStampTemp)) { + if (strtotime($arrTimeData['table']) > $intFileStampTemp) { + $strCheckConfig = translate('Warning: configuration file is out of date!'); + } + } + if ($arrTimeData[$strTarget] == 'unknown') { + $strCheckConfig = translate('Warning: configuration file is out of date!'); + } + } + return(0); + } else { + $strCheckConfig = translate('Warning: no configuration target defined!'); + return(0); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get last change date of table and config file + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Determines the dates of the last data table change and the last modification to the + // configuration file + // + // Parameter: $strTableName Name of the datatable + // $strConfigName Name of the configuration file + // $arrTimeData Array with timestamps of files/data item + // $intTimeStatus Time status value + // 0 = all files are newer than the database item + // 1 = some file are older than the database item + // 2 = one file is missing + // 3 = any files are missing + // 4 = no configuration targets defined + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function lastModifiedDir($strTableName,$strConfigName,$intDataId,&$arrTimeData,&$intTimeInfo) { + // Build file name + $strFile = $strConfigName.".cfg"; + // Get table times + $intTimeInfo = -1; + $arrTimeData = ""; + $arrTimeData['table'] = "unknown"; + // Clear status cache + clearstatcache(); + // Get last change on dataset + if ($strTableName == "tbl_host") { + $arrTimeData['table'] = $this->myDBClass->getFieldData("SELECT DATE_FORMAT(`last_modified`,'%Y-%m-%d %H:%i:%s') FROM `tbl_host` + WHERE `host_name`='".$strConfigName."' AND `config_id`=".$this->intDomainId); + $strActive = $this->myDBClass->getFieldData("SELECT `active` FROM `tbl_host` WHERE `host_name`='".$strConfigName."' + AND `config_id`=".$this->intDomainId); + } else if ($strTableName == "tbl_service") { + $arrTimeData['table'] = $this->myDBClass->getFieldData("SELECT DATE_FORMAT(`last_modified`,'%Y-%m-%d %H:%i:%s') FROM `tbl_service` + WHERE `id`='".$intDataId."' AND `config_id`=".$this->intDomainId); + $intServiceCount = $this->myDBClass->countRows("SELECT * FROM `$strTableName` WHERE `config_name`='".$strConfigName."' + AND `config_id`=".$this->intDomainId." AND `active`='1'"); + if ($intServiceCount == 0) {$strActive = 0;} else {$strActive = 1;} + } else { + return(1); + } + // Get config sets + $arrConfigId = $this->getConfigSets(); + if ($arrConfigId != 1) { + // Define variables + $strTimeFile = "unknown"; + $intFileStamp = mktime(); + foreach($arrConfigId AS $intConfigId) { + // Get configuration file data + $this->getConfigData($intConfigId,"target",$strTarget); + $this->getConfigData($intConfigId,"method",$strMethod); + // Get last change on dataset + if ($strTableName == "tbl_host") { + $booReturn = $this->getConfigData($intConfigId,"hostconfig",$strBaseDir); + } else if ($strTableName == "tbl_service") { + $booReturn = $this->getConfigData($intConfigId,"serviceconfig",$strBaseDir); + } + $arrTimeData[$strTarget] = "unknown"; + $intFileStampTemp = -1; + // Lokal file system + if (($strMethod == 1) && (file_exists($strBaseDir."/".$strFile))) { + $intFileStampTemp = filemtime($strBaseDir."/".$strFile); + $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + // FTP file system + } else if ($strMethod == 2) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId) || ($this->resConnectType != "FTP")) { + $booReturn = $this->getFTPConnection($intConfigId); + if ($booReturn == 1) return(1); + } + $intFileStampTemp = ftp_mdtm($this->resConnectId, $strBaseDir."/".$strFile); + if ($intFileStampTemp != -1) $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + ftp_close($this->resConnectId); + // SSH file system + } else if ($strMethod == 3) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId) || ($this->resConnectType != "SSH")) { + $booReturn = $this->getSSHConnection($intConfigId); + } + // Check file date + if (is_array($this->sendSSHCommand('ls '.str_replace("//","/",$strBaseDir."/".$strFile)))) { + $arrInfo = ssh2_sftp_stat($this->resSFTP,str_replace("//","/",$strBaseDir."/".$strFile)); + $intFileStampTemp = $arrInfo['mtime']; + if ($intFileStampTemp != -1) $arrTimeData[$strTarget] = date("Y-m-d H:i:s",$intFileStampTemp); + } + } + if (($intFileStampTemp == -1) && ($strActive == '1')) { + $intTimeInfo = 2; + return(0); + } + if ((strtotime($arrTimeData['table']) > $intFileStampTemp) && ($strActive == '1')) { + $intTimeInfo = 1; + return(0); + } + } + $intItems = count($arrTimeData) - 1; + $intUnknown = 0; + $intUpToDate = 0; + foreach($arrTimeData AS $elem => $key) { + if ($key == 'unknown') $intUnknown++; + if (strtotime($arrTimeData['table']) < strtotime($key)) $intUpToDate++; + } + if ($intUnknown == $intItems) $intTimeInfo = 3; + if ($intUpToDate == $intItems) $intTimeInfo = 0; + return(0); + } else { + $intTimeInfo = 4; + return(0); + } + } + + + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Move a config file to the backup directory + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Moves an existing configuration file to the backup directory and removes then the + // original file + // + // Parameter: $strType Type of the configuration file + // $strName Name of the configuration file + // $intConfigID Configuration target ID + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function moveFile($strType,$strName,$intConfigID) { + // Get directories + switch ($strType) { + case "host": $this->getConfigData($intConfigID,"hostconfig",$strConfigDir); + $this->getConfigData($intConfigID,"hostbackup",$strBackupDir); + break; + case "service": $this->getConfigData($intConfigID,"serviceconfig",$strConfigDir); + $this->getConfigData($intConfigID,"servicebackup",$strBackupDir); + break; + case "basic": $this->getConfigData($intConfigID,"basedir",$strConfigDir); + $this->getConfigData($intConfigID,"backupdir",$strBackupDir); + break; + case "nagiosbasic": $this->getConfigData($intConfigID,"nagiosbasedir",$strConfigDir); + $this->getConfigData($intConfigID,"backupdir",$strBackupDir); + break; + default: return(1); + } + // Get tranfer method + $this->getConfigData($intConfigID,"method",$strMethod); + // Local file system + if ($strMethod == 1) { + // Save configuration file + if (file_exists($strConfigDir."/".$strName) && is_writable($strBackupDir) && is_writable($strConfigDir)) { + $strOldDate = date("YmdHis",mktime()); + copy($strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate); + unlink($strConfigDir."/".$strName); + } else if (!is_writable($strBackupDir)) { + $this->processClassMessage(translate('Cannot backup and delete the old configuration file (check the permissions)!')."::",$this->strErrorMessage); + return(1); + } + // Remote file (FTP) + } else if ($strMethod == 2) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId) || ($this->resConnectType != "FTP")) { + $booReturn = $this->getFTPConnection($intConfigID); + if ($booReturn == 1) return(1); + } + // Save configuration file + $intFileStamp = ftp_mdtm($this->resConnectId, $strConfigDir."/".$strName); + if ($intFileStamp > -1) { + $strOldDate = date("YmdHis",mktime()); + $intErrorReporting = error_reporting(); + error_reporting(0); + $intReturn = ftp_rename($this->resConnectId,$strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate); + if (!$intReturn) { + $this->processClassMessage(translate('Cannot backup the old configuration file because the permissions are wrong (remote FTP)!')."::",$this->strErrorMessage); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + } + // Remote file (SFTP) + } else if ($strMethod == 3) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId) || ($this->resConnectType != "SSH")) { + $booReturn = $this->getSSHConnection($intConfigID); + if ($booReturn == 1) return(1); + } + // Save configuration file + if (is_array($this->sendSSHCommand('ls '.str_replace("//","/",$strConfigDir."/".$strName)))) { + $arrInfo = ssh2_sftp_stat($this->resSFTP,str_replace("//","/",$strConfigDir."/".$strName)); + $intFileStamp = $arrInfo['mtime']; + if ($intFileStamp > -1) { + + $strOldDate = date("YmdHis",mktime()); + $intReturn = ssh2_sftp_rename($this->resSFTP,$strConfigDir."/".$strName,$strBackupDir."/".$strName."_old_".$strOldDate); + if (!$intReturn) { + $this->processClassMessage(translate('Cannot backup the old configuration file because the permissions are wrong (remote SFTP)!')."::",$this->strErrorMessage); + return(1); + } + } + } + } + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Remove a config file + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $strType Filename including path to remove + // $intConfigID Configuration target ID + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function removeFile($strName,$intConfigID) { + // Get access method + $this->getConfigData($intConfigID,"method",$strMethod); + // Local file system + if ($strMethod == 1) { + // Remove file if exists + if (file_exists($strName)) { + if (is_writable($strName)) { + unlink($strName); + } else { + $this->processClassMessage(translate('Cannot delete the file (wrong permissions)!').'::'.$strName."::",$this->strErrorMessage); + return(1); + } + } else { + $this->processClassMessage(translate('Cannot delete the file (file does not exist)!').'::'.$strName."::",$this->strErrorMessage); + return(1); + } + // Remote file (FTP) + } else if ($strMethod == 2) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getFTPConnection($intConfigID); + if ($booReturn == 1) return(1); + } + // Remove file if exists + $intFileStamp = ftp_mdtm($this->resConnectId, $strName); + if ($intFileStamp > -1) { + $intErrorReporting = error_reporting(); + error_reporting(0); + $intReturn = ftp_delete($this->resConnectId,$strName); + if (!$intReturn) { + $this->processClassMessage(translate('Cannot delete file because the permissions are wrong (remote FTP)!')."::",$this->strErrorMessage); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + } else { + $this->processClassMessage(translate('Cannot delete file because it does not exists (remote FTP)!')."::",$this->strErrorMessage); + } + // Remote file (SSH) + } else if ($strMethod == 3) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getSSHConnection($intConfigID); + if ($booReturn == 1) return(1); + } + // Remove file if exists + if (is_array($this->sendSSHCommand('ls '.$strName))) { + $intReturn = ssh2_sftp_unlink($this->resSFTP,$strName); + if (!$intReturn) { + $this->processClassMessage(translate('Cannot delete file because the permissions are wrong (remote SFTP)!')."::",$this->strErrorMessage); + } + } else { + $this->processClassMessage(translate('Cannot delete file because it does not exists (remote SFTP)!')."::",$this->strErrorMessage); + } + } + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Copy a config file + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $strFileRemote Remote file name + // $intConfigID Configuration target id + // $strLocalFile Local file name + // $intDirection 0 = from remote to local + // 1 = from local to remote + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function configCopy($strFileRemote,$intConfigID,$strFileLokal,$intDirection=0) { + // Get method + $this->getConfigData($intConfigID,"method",$strMethod); + if ($strMethod == 2) { + // Open ftp connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getFTPConnection($intConfigID); + if ($booReturn == 1) return(1); + } + if ($intDirection == 0) { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ftp_get($this->resConnectId,$strFileLokal,$strFileRemote,FTP_ASCII)) { + $this->processClassMessage(translate('Cannot get the configuration file (FTP connection failed)!')."::",$this->strErrorMessage); + ftp_close($this->resConnectId); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + } + if ($intDirection == 1) { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ftp_put($this->resConnectId,$strFileRemote,$strFileLokal,FTP_ASCII)) { + $this->processClassMessage(translate('Cannot write the configuration file (FTP connection failed)!')."::",$this->strErrorMessage); + ftp_close($this->resConnectId); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + } + return(0); + } else if ($strMethod == 3) { + // Open ssh connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getSSHConnection($intConfigID); + if ($booReturn == 1) return(1); + } + if ($intDirection == 0) { + if (is_array($this->sendSSHCommand('ls '.$strFileRemote))) { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ssh2_scp_recv($this->resConnectId,$strFileRemote,$strFileLokal)) { + $this->processClassMessage(translate('Cannot get the configuration file (SSH connection failed)!')."::",$this->strErrorMessage); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + } else { + $this->processClassMessage(translate('Cannot get the configuration file (remote file does not exist)!')."::",$this->strErrorMessage); + return(1); + } + return(0); + } + if ($intDirection == 1) { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ssh2_scp_send($this->resConnectId,$strFileLokal,$strFileRemote,0644)) { + $this->processClassMessage(translate('Cannot write the configuration file (SSH connection failed)!')."::",$this->strErrorMessage); + error_reporting($intErrorReporting); + return(1); + } + error_reporting($intErrorReporting); + return(0); + } + } + return(1); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Write a config file (full version) + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Writes a configuration file including all datasets of a configuration table or returns + // the output as a text file for download. + // + // Parameters: $strTableName Table name + // ----------- $intMode 0 = Write file to filesystem + // 1 = Return Textfile for download + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function createConfig($strTableName,$intMode=0) { + // Do not create configs in common domain + if ($this->intDomainId == 0) { + $this->processClassMessage(translate('It is not possible to write config files directly from the common domain!')."::",$this->strErrorMessage); + return(1); + } + // Get config strings + $this->getConfigStrings($strTableName,$strFileString,$strOrderField); + if ($strFileString == "") return 1; + $strFile = $strFileString.".cfg"; + $setTemplate = $strFileString.".tpl.dat"; + // Get configuration targets + $intFileWrite = 0; + $arrConfigID = $this->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + foreach($arrConfigID AS $intConfigID) { + // Open configuration file in "write" mode + if ($intMode == 0) { + $booReturn = $this->getConfigFile($strFile,$intConfigID,0,$resConfigFile,$strConfigFile); + if ($booReturn == 1) return 1; + } + // Load config template file + $arrTplOptions = array('use_preg' => false); + $configtp = new HTML_Template_IT($this->arrSettings['path']['base_path']."/templates/files/"); + $configtp->loadTemplatefile($setTemplate, true, true); + $configtp->setOptions($arrTplOptions); + $configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",mktime())); + $this->getConfigData($intConfigID,"version",$this->intNagVersion); + $configtp->setVariable("NAGIOS_QL_VERSION",$this->arrSettings['db']['version']); + if ($this->intNagVersion == 3) $strVersion = "Nagios 3.x config file"; + if ($this->intNagVersion == 2) $strVersion = "Nagios 2.9 config file"; + if ($this->intNagVersion == 1) $strVersion = "Nagios 2.x config file"; + $configtp->setVariable("VERSION",$strVersion); + // Get config data from given table and define file name + $this->getConfigData($intConfigID,"utf8_decode",$setUTF8Decode); + $this->getDomainData("enable_common",$setEnableCommon); + if ($setEnableCommon != 0) { + $strDomainWhere = " (`config_id`=".$this->intDomainId." OR `config_id`=0) "; + } else { + $strDomainWhere = " (`config_id`=".$this->intDomainId.") "; + } + $strSQL = "SELECT * FROM `".$strTableName."` WHERE $strDomainWhere AND `active`='1' ORDER BY `".$strOrderField."`"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) { + $this->processClassMessage(translate('Error while selecting data from database:')."::",$this->strErrorMessage); + $this->processClassMessage($this->myDBClass->strErrorMessage,$this->strErrorMessage); + } else if ($intDataCount != 0) { + // Process every data set + for ($i=0;$i<$intDataCount;$i++) { + foreach($arrData[$i] AS $key => $value) { + $intSkip = 0; + if ($key == "id") $intDataId = $value; + if ($key == "config_name") $key = "#NAGIOSQL_CONFIG_NAME"; + + // UTF8 decoded vaules + if ($setUTF8Decode == 1) $value = utf8_decode($value); + + // Pass special fields (NagiosQL data fields not used by Nagios itselves) + if ($this->skipEntries($strTableName,$this->intNagVersion,$key,$value) == 1) continue; + + // Get relation data + $intSkip = $this->getRelationData($strTableName,$configtp,$arrData[$i],$key,$value); + + // Rename field names + $this->renameFields($strTableName,$intConfigID,$intDataId,$key,$value,$intSkip); + + // Inset data field + if ($intSkip != 1) { + // Insert fill spaces + $strFillLen = (30-strlen($key)); + $strSpace = " "; + for ($f=0;$f<$strFillLen;$f++) { + $strSpace .= " "; + } + // Write key and value to template + $configtp->setVariable("ITEM_TITLE",$key.$strSpace); + // Short values + if ((strlen($value) < 800) || ($this->intNagVersion != 3)) { + $configtp->setVariable("ITEM_VALUE",$value); + $configtp->parse("configline"); + // Long values + } else { + $arrValueTemp = explode(",",$value); + $strValueNew = ""; + $intArrCount = count($arrValueTemp); + $intCounter = 0; + $strSpace = " "; + for ($f=0;$f<30;$f++) { + $strSpace .= " "; + } + foreach($arrValueTemp AS $elem) { + if (strlen($strValueNew) < 800) { + $strValueNew .= $elem.","; + } else { + if (substr($strValueNew,-1) == ",") { + $strValueNew = substr($strValueNew,0,-1); + } + if ($intCounter < $intArrCount) { + $strValueNew = $strValueNew.",\\"; + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $configtp->setVariable("ITEM_TITLE",$strSpace); + } else { + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $configtp->setVariable("ITEM_TITLE",$strSpace); + } + $strValueNew = $elem.","; + } + $intCounter++; + } + if ($strValueNew != "") { + if (substr($strValueNew,-1) == ",") { + $strValueNew = substr($strValueNew,0,-1); + } + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $strValueNew = ""; + } + } + } + } + + // Special processing for time periods + if ($strTableName == "tbl_timeperiod") { + $strSQLTime = "SELECT `definition`, `range` FROM `tbl_timedefinition` WHERE `tipId` = ".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQLTime,$arrDataTime,$intDataCountTime); + if ($booReturn && $intDataCountTime != 0) { + foreach ($arrDataTime AS $data) { + // Skip other values than weekdays in nagios version below 3 + if ($this->intNagVersion != 3) { + $arrWeekdays = array('monday','tuesday','wednesday','thursday','friday','saturday','sunday'); + if (!in_array($data['definition'],$arrWeekdays)) continue; + } + // Insert fill spaces + $strFillLen = (30-strlen($data['definition'])); + $strSpace = " "; + for ($f=0;$f<$strFillLen;$f++) { + $strSpace .= " "; + } + // Write key and value + $configtp->setVariable("ITEM_TITLE",$data['definition'].$strSpace); + $configtp->setVariable("ITEM_VALUE",$data['range']); + $configtp->parse("configline"); + } + } + } + // Write configuration set + $configtp->parse("configset"); + } + } else { + $this->myDataClass->writeLog(translate('Writing of the configuration failed - no dataset or not activated dataset found')); + $this->processClassMessage(translate('Writing of the configuration failed - no dataset or not activated dataset found')."::",$this->strErrorMessage); + $configtp->parse(); + $booReturn = $this->writeConfigFile($configtp->get(),$strFile,0,$intConfigID,$resConfigFile,$strConfigFile); + return(1); + } + $configtp->parse(); + // Write configuration file + if ($intMode == 0) { + $booReturn = $this->writeConfigFile($configtp->get(),$strFile,0,$intConfigID,$resConfigFile,$strConfigFile); + $intFileWrite += $booReturn; + // Return configuration file (download) + } else if ($intMode == 1) { + $configtp->show(); + return(0); + } + } + if ($intFileWrite != 0) return(1); + return(0); + } else { + $strCheckConfig = translate('Warning: no configuration target defined!'); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Write a config file (single dataset version) + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Writes a configuration file including one single datasets of a configuration table or + // returns the output as a text file for download. + // + // Parameters: $strTableName Table name + // ----------- $intDbId Data ID + // $intMode 0 = Write file to filesystem + // 1 = Return Textfile fot download + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function createConfigSingle($strTableName,$intDbId = 0,$intMode = 0) { + // Do not create configs in common domain + if ($this->intDomainId == 0) { + $this->processClassMessage(translate('It is not possible to write config files directly from the common domain!')."::",$this->strErrorMessage); + return(1); + } + // Get all data from table + $this->getDomainData("enable_common",$setEnableCommon); + if ($setEnableCommon != 0) { + $strDomainWhere = " (`config_id`=".$this->intDomainId." OR `config_id`=0) "; + } else { + $strDomainWhere = " (`config_id`=".$this->intDomainId.") "; + } + if ($intDbId == 0) { + $strSQL = "SELECT * FROM `".$strTableName."` WHERE $strDomainWhere AND `active`='1' ORDER BY `id`"; + } else { + $strSQL = "SELECT * FROM `".$strTableName."` WHERE $strDomainWhere AND `active`='1' AND `id`=$intDbId"; + } + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if (($booReturn != false) && ($intDataCount != 0)) { + $intError = 0; + for ($i=0;$i<$intDataCount;$i++) { + // Process form POST variable + $strChbName = "chbId_".$arrData[$i]['id']; + // Check if this POST variable exists or the data ID parameter matches + if (isset($_POST[$strChbName]) || (($intDbId != 0) && ($intDbId == $arrData[$i]['id']))) { + // Define variable names based on table name + switch($strTableName) { + case "tbl_host": + $strConfigName = $arrData[$i]['host_name']; + $intDomainId = $arrData[$i]['config_id']; + $setTemplate = "hosts.tpl.dat"; + $intType = 1; + $strSQLData = "SELECT * FROM `".$strTableName."` WHERE `host_name`='$strConfigName' AND `active`='1' AND `config_id`=$intDomainId"; + break; + case "tbl_service": + $strConfigName = $arrData[$i]['config_name']; + $intDomainId = $arrData[$i]['config_id']; + $setTemplate = "services.tpl.dat"; + $intType = 2; + $strSQLData = "SELECT * FROM `".$strTableName."` WHERE `config_name`='$strConfigName' AND `active`='1' AND `config_id`=$intDomainId + ORDER BY `service_description`"; + break; + } + $strFile = $strConfigName.".cfg"; + // Get configuration targets + $arrConfigID = $this->getConfigSets(); + if (($arrConfigID != 1) && is_array($arrConfigID)) { + foreach($arrConfigID AS $intConfigID) { + $this->myDBClass->strErrorMessage = ""; + // Open configuration file in "write" mode + if ($intMode == 0) { + $booReturn = $this->getConfigFile($strFile,$intConfigID,$intType,$resConfigFile,$strConfigFile); + if ($booReturn == 1) { + return(1); + } + } + // Load config template file + $arrTplOptions = array('use_preg' => false); + $configtp = new HTML_Template_IT($this->arrSettings['path']['base_path']."/templates/files/"); + $configtp->loadTemplatefile($setTemplate, true, true); + $configtp->setOptions($arrTplOptions); + $configtp->setVariable("CREATE_DATE",date("Y-m-d H:i:s",mktime())); + if ($this->intNagVersion == 0) { + $this->getConfigData($intConfigID,"version",$this->intNagVersion); + } + $configtp->setVariable("NAGIOS_QL_VERSION",$this->arrSettings['db']['version']); + if ($this->intNagVersion == 3) $strVersion = "Nagios 3.x config file"; + if ($this->intNagVersion == 2) $strVersion = "Nagios 2.9 config file"; + if ($this->intNagVersion == 1) $strVersion = "Nagios 2.x config file"; + $configtp->setVariable("VERSION",$strVersion); + + // Alle passenden Datensätze holen + $booReturn = $this->myDBClass->getDataArray($strSQLData,$arrDataConfig,$intDataCountConfig); + if ($booReturn == false) { + $this->processClassMessage(translate('Error while selecting data from database:')."::".$this->myDBClass->strErrorMessage."::",$this->strErrorMessage); + } else if ($intDataCountConfig != 0) { + // Process every data set + for ($y=0;$y<$intDataCountConfig;$y++) { + foreach($arrDataConfig[$y] AS $key => $value) { + $intSkip = 0; + if ($key == "id") $intDataId = $value; + if ($key == "config_name") $key = "#NAGIOSQL_CONFIG_NAME"; + + // UTF8 decoded vaules + //if ($setUTF8Decode == 1) $value = utf8_decode($value); + + // Pass special fields (NagiosQL data fields not used by Nagios itselves) + if ($this->skipEntries($strTableName,$this->intNagVersion,$key,$value) == 1) continue; + + // Get relation data + $intSkip = $this->getRelationData($strTableName,$configtp,$arrDataConfig[$y],$key,$value); + + // Rename field names + $this->renameFields($strTableName,$intConfigID,$intDataId,$key,$value,$intSkip); + + // Inset data field + if ($intSkip != 1) { + // Insert fill spaces + $strFillLen = (30-strlen($key)); + $strSpace = " "; + for ($f=0;$f<$strFillLen;$f++) { + $strSpace .= " "; + } + // Write key and value to template + $configtp->setVariable("ITEM_TITLE",$key.$strSpace); + // Short values + if ((strlen($value) < 800) || ($this->intNagVersion != 3)) { + $configtp->setVariable("ITEM_VALUE",$value); + $configtp->parse("configline"); + // Long values + } else { + $arrValueTemp = explode(",",$value); + $strValueNew = ""; + $intArrCount = count($arrValueTemp); + $intCounter = 0; + $strSpace = " "; + for ($f=0;$f<30;$f++) { + $strSpace .= " "; + } + foreach($arrValueTemp AS $elem) { + if (strlen($strValueNew) < 800) { + $strValueNew .= $elem.","; + } else { + if (substr($strValueNew,-1) == ",") { + $strValueNew = substr($strValueNew,0,-1); + } + if ($intCounter < $intArrCount) { + $strValueNew = $strValueNew.",\\"; + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $configtp->setVariable("ITEM_TITLE",$strSpace); + } else { + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $configtp->setVariable("ITEM_TITLE",$strSpace); + } + $strValueNew = $elem.","; + } + $intCounter++; + } + if ($strValueNew != "") { + if (substr($strValueNew,-1) == ",") { + $strValueNew = substr($strValueNew,0,-1); + } + $configtp->setVariable("ITEM_VALUE",$strValueNew); + $configtp->parse("configline"); + $strValueNew = ""; + } + } + } + } + // Write configuration set + $configtp->parse("configset"); + } + $configtp->parse(); + // Write configuration file + if ($intMode == 0) { + $booReturn = $this->writeConfigFile($configtp->get(),$strFile,$intType,$intConfigID,$resConfigFile,$strConfigFile); + if ($booReturn == 1) $intError++; + // Return configuration file (download) + } else if ($intMode == 1) { + $configtp->show(); + } + } + } + } + } + } + } else { + $this->myDataClass->writeLog(translate('Writing of the configuration failed - no dataset or not activated dataset found')); + $this->processClassMessage(translate('Writing of the configuration failed - no dataset, not activated dataset found or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } + if ($intError == 0) return(0); + return(1); + } + + //3.1 HELP FUNCTIONS + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get config parameters + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTableName -> Table name + // $strFileString -> File name string + // $strOrderField -> Order field name (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function getConfigStrings($strTableName,&$strFileString,&$strOrderField) { + switch($strTableName) { + case "tbl_timeperiod": $strFileString = "timeperiods"; + $strOrderField = "timeperiod_name"; + break; + case "tbl_command": $strFileString = "commands"; + $strOrderField = "command_name"; + break; + case "tbl_contact": $strFileString = "contacts"; + $strOrderField = "contact_name"; + break; + case "tbl_contacttemplate": $strFileString = "contacttemplates"; + $strOrderField = "template_name"; + break; + case "tbl_contactgroup": $strFileString = "contactgroups"; + $strOrderField = "contactgroup_name"; + break; + case "tbl_hosttemplate": $strFileString = "hosttemplates"; + $strOrderField = "template_name"; + break; + case "tbl_hostgroup": $strFileString = "hostgroups"; + $strOrderField = "hostgroup_name"; + break; + case "tbl_servicetemplate": $strFileString = "servicetemplates"; + $strOrderField = "template_name"; + break; + case "tbl_servicegroup": $strFileString = "servicegroups"; + $strOrderField = "servicegroup_name"; + break; + case "tbl_hostdependency": $strFileString = "hostdependencies"; + $strOrderField = "dependent_host_name"; + break; + case "tbl_hostescalation": $strFileString = "hostescalations"; + $strOrderField = "host_name`,`hostgroup_name"; + break; + case "tbl_hostextinfo": $strFileString = "hostextinfo"; + $strOrderField = "host_name"; + break; + case "tbl_servicedependency": $strFileString = "servicedependencies"; + $strOrderField = "config_name"; + break; + case "tbl_serviceescalation": $strFileString = "serviceescalations"; + $strOrderField = "config_name"; + break; + case "tbl_serviceextinfo": $strFileString = "serviceextinfo"; + $strOrderField = "host_name"; + break; + default: $strFileString = ""; + $strOrderField = ""; + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Open configuration file + /////////////////////////////////////////////////////////////////////////////////////////// + // $strFile -> File name + // $intConfigID -> Configuration ID + // $intType -> Type ID + // $resConfigFile -> Temporary or configuration file ressource (return value) + // $strConfigFile -> Configuration file name (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function getConfigFile($strFile,$intConfigID,$intType,&$resConfigFile,&$strConfigFile) { + // Get config data + if ($intType == 1) { + $this->getConfigData($intConfigID,"hostconfig",$strBaseDir); + $this->getConfigData($intConfigID,"hostbackup",$strBackupDir); + $strType = 'host'; + } else if ($intType == 2) { + $this->getConfigData($intConfigID,"serviceconfig",$strBaseDir); + $this->getConfigData($intConfigID,"servicebackup",$strBackupDir); + $strType = 'service'; + } else { + $this->getConfigData($intConfigID,"basedir",$strBaseDir); + $this->getConfigData($intConfigID,"backupdir",$strBackupDir); + $strType = 'basic'; + } + $booReturn = $this->getConfigData($intConfigID,"method",$strMethod); + // Backup config file + $intReturn = $this->moveFile($strType,$strFile,$intConfigID); + if ($intReturn == 1) return(1); + // Method 1 - local file system + if ($strMethod == 1) { + // Open the config file + if (is_writable($strBaseDir."/".$strFile) || ((!file_exists($strBaseDir."/".$strFile) && (is_writable($strBaseDir))) )) { + $strConfigFile = $strBaseDir."/".$strFile; + $resConfigFile = fopen($strConfigFile,"w"); + chmod($strConfigFile, 0644); + } else { + $this->myDataClass->writeLog(translate('Configuration write failed:')." ".$strFile); + $this->processClassMessage(translate('Cannot open/overwrite the configuration file (check the permissions)!')."::",$this->strErrorMessage); + return(1); + } + // Method 2 - ftp access + } else if ($strMethod == 2) { + // Set up basic connection + $booReturn = $this->getConfigData($intConfigID,"server",$strServer); + $this->resConnectId = ftp_connect($strServer); + // Login with username and password + $booReturn = $this->getConfigData($intConfigID,"user",$strUser); + $booReturn = $this->getConfigData($intConfigID,"password",$strPasswd); + $login_result = ftp_login($this->resConnectId, $strUser, $strPasswd); + // Check connection + if ((!$this->resConnectId) || (!$login_result)) { + $this->myDataClass->writeLog(translate('Configuration write failed (FTP connection failed):')." ".$strFile); + $this->processClassMessage(translate('Cannot open/overwrite the configuration file (FTP connection failed)!')."::",$this->strErrorMessage); + return(1); + } else { + // Open the config file + if (isset($this->arrSettings['path']) && isset($this->arrSettings['path']['tempdir'])) { + $strConfigFile = tempnam($this->arrSettings['path']['tempdir'], 'nagiosql'); + } else { + $strConfigFile = tempnam(sys_get_temp_dir(), 'nagiosql'); + } + $resConfigFile = fopen($strConfigFile,"w"); + } + // Method 3 - ssh access + } else if ($strMethod == 3) { + // Check connection + if (!isset($this->resConnectId) || !is_resource($this->resConnectId)) { + $booReturn = $this->getSSHConnection(); + if ($booReturn == 1) return(1); + } + // Open the config file + if (isset($this->arrSettings['path']) && isset($this->arrSettings['path']['tempdir'])) { + $strConfigFile = tempnam($this->arrSettings['path']['tempdir'], 'nagiosql'); + } else { + $strConfigFile = tempnam(sys_get_temp_dir(), 'nagiosql'); + } + $resConfigFile = fopen($strConfigFile,"w"); + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Write configuration file + /////////////////////////////////////////////////////////////////////////////////////////// + // $strData -> Data string + // $strFile -> File name + // $intType -> Type ID + // $intConfigID -> Configuration target ID + // $resConfigFile -> Temporary or configuration file ressource + // $strConfigFile -> Configuration file name + /////////////////////////////////////////////////////////////////////////////////////////// + function writeConfigFile($strData,$strFile,$intType,$intConfigID,$resConfigFile,$strConfigFile) { + // Get config data + if ($intType == 1) { + $this->getConfigData($intConfigID,"hostconfig",$strBaseDir); + } else if ($intType == 2) { + $this->getConfigData($intConfigID,"serviceconfig",$strBaseDir); + } else { + $this->getConfigData($intConfigID,"basedir",$strBaseDir); + } + $booReturn = $this->getConfigData($intConfigID,"method",$strMethod); + $strData = str_replace("\r\n","\n",$strData); + fwrite($resConfigFile,$strData); + // Local filesystem + if ($strMethod == 1) { + fclose($resConfigFile); + // FTP access + } else if ($strMethod == 2) { + // SSH Possible + if (!function_exists('ftp_put')) { + $this->processClassMessage(translate('FTP module not loaded!')."::",$this->strErrorMessage); + return(1); + } + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ftp_put($this->resConnectId,$strBaseDir."/".$strFile,$strConfigFile,FTP_ASCII)) { + $arrError = error_get_last(); + error_reporting($intErrorReporting); + $this->processClassMessage(translate('Cannot open/overwrite the configuration file (FTP connection failed)!')."::",$this->strErrorMessage); + if ($arrError['message'] != "") $this->processClassMessage($arrError['message']."::",$this->strErrorMessage); + ftp_close($this->resConnectId); + fclose($resConfigFile); + unlink($strConfigFile); + return(1); + } + error_reporting($intErrorReporting); + ftp_close($this->resConnectId); + fclose($resConfigFile); + // SSH access + } else if ($strMethod == 3) { + // SSH Possible + if (!function_exists('ssh2_scp_send')) { + $this->processClassMessage(translate('SSH module not loaded!')."::",$this->strErrorMessage); + return(1); + } + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!ssh2_scp_send($this->resConnectId,$strConfigFile,$strBaseDir."/".$strFile,0644)) { + $arrError = error_get_last(); + error_reporting($intErrorReporting); + $this->processClassMessage(translate('Cannot open/overwrite the configuration file (remote SFTP)!')."::",$this->strErrorMessage); + if ($arrError['message'] != "") $this->processClassMessage($arrError['message']."::",$this->strErrorMessage); + $this->resConnectId = null; + return(1); + } + $arrError = error_get_last(); + error_reporting($intErrorReporting); + fclose($resConfigFile); + unlink($strConfigFile); + $this->resConnectId = null; + } + $this->myDataClass->writeLog(translate('Configuration successfully written:')." ".$strFile); + $this->processClassMessage(translate('Configuration file successfully written!')."::",$this->strInfoMessage); + return(0); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Return related value + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTableName -> Table name + // $resTemplate -> Template ressource + // $arrData -> Dataset array + // $strDataKey -> Data key + // $strDataValue -> Data value (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function getRelationData($strTableName,$resTemplate,$arrData,$strDataKey,&$strDataValue) { + // Pass function for tbl_command + if ($strTableName == 'tbl_command') return(0); + // Get relation info and store the value in a class variable (speedup export) + if ($this->strRelTable != $strTableName) { + $intReturn = $this->myDataClass->tableRelations($strTableName,$arrRelations); + $this->strRelTable = $strTableName; + $this->arrRelData = $arrRelations; + } else { + $arrRelations = $this->arrRelData; + $intReturn = 1; + } + if (($intReturn == 0) || (!is_array($arrRelations))) return(1); + // Common domain is enabled? + $this->getDomainData("enable_common",$intCommonEnable); + if ($intCommonEnable == 1) { + $strDomainWhere1 = " (`config_id`=".$this->intDomainId." OR `config_id`=0) "; + $strDomainWhere2 = " (`tbl_service`.`config_id`=".$this->intDomainId." OR `tbl_service`.`config_id`=0) "; + } else { + $strDomainWhere1 = " `config_id`=".$this->intDomainId." "; + $strDomainWhere2 = " `tbl_service`.`config_id`=".$this->intDomainId." "; + } + // Process relations + foreach($arrRelations AS $elem) { + if ($elem['fieldName'] == $strDataKey) { + // Process normal 1:n relations (1 = only data / 2 = including a * value) + if (($elem['type'] == 2) && (($strDataValue == 1) || ($strDataValue == 2))) { + $strSQLRel = "SELECT `".$elem['tableName1']."`.`".$elem['target1']."`, `".$elem['linkTable']."`.`exclude` FROM `".$elem['linkTable']."` + LEFT JOIN `".$elem['tableName1']."` ON `".$elem['linkTable']."`.`idSlave` = `".$elem['tableName1']."`.`id` + WHERE `idMaster`=".$arrData['id']." AND `active`='1' AND $strDomainWhere1 + ORDER BY `".$elem['tableName1']."`.`".$elem['target1']."`"; + $booReturn = $this->myDBClass->getDataArray($strSQLRel,$arrDataRel,$intDataCountRel); + if ($booReturn && ($intDataCountRel != 0)) { + // Rewrite $strDataValue with returned relation data + if ($strDataValue == 2) {$strDataValue = "*,";} else {$strDataValue = "";} + foreach ($arrDataRel AS $data) { + if ($data['exclude'] == 0) { + $strDataValue .= $data[$elem['target1']].","; + } else if ($this->intNagVersion >=3) { + $strDataValue .= "!".$data[$elem['target1']].","; + } + } + $strDataValue = substr($strDataValue,0,-1); + if ($strDataValue == "") return(1); + } else { + if ($strDataValue == 2) {$strDataValue = "*";} else {return(1);} + } + // Process normal 1:1 relations + } else if ($elem['type'] == 1) { + if (($elem['tableName1'] == "tbl_command") && (substr_count($arrData[$elem['fieldName']],"!") != 0)) { + $arrField = explode("!",$arrData[$elem['fieldName']]); + $strCommand = strchr($arrData[$elem['fieldName']],"!"); + $strSQLRel = "SELECT `".$elem['target1']."` FROM `".$elem['tableName1']."` + WHERE `id`=".$arrField[0]." AND `active`='1' AND $strDomainWhere1"; + } else { + $strSQLRel = "SELECT `".$elem['target1']."` FROM `".$elem['tableName1']."` + WHERE `id`=".$arrData[$elem['fieldName']]." AND `active`='1' AND $strDomainWhere1"; + } + $booReturn = $this->myDBClass->getDataArray($strSQLRel,$arrDataRel,$intDataCountRel); + if ($booReturn && ($intDataCountRel != 0)) { + // Rewrite $strDataValue with returned relation data + if (($elem['tableName1'] == "tbl_command") && (substr_count($strDataValue,"!") != 0)) { + $strDataValue = $arrDataRel[0][$elem['target1']].$strCommand; + } else { + $strDataValue = $arrDataRel[0][$elem['target1']]; + } + } else { + if (($elem['tableName1'] == "tbl_command") && (substr_count($strDataValue,"!") != 0) && ($arrField[0] == -1)) { + $strDataValue = "null"; + } else { + return(1); + } + } + // Process normal 1:n relations with special table and idSort (template tables) + } else if (($elem['type'] == 3) && ($strDataValue == 1)) { + $strSQLMaster = "SELECT * FROM `".$elem['linkTable']."` WHERE `idMaster` = ".$arrData['id']." ORDER BY idSort"; + $booReturn = $this->myDBClass->getDataArray($strSQLMaster,$arrDataMaster,$intDataCountMaster); + if ($booReturn && ($intDataCountMaster != 0)) { + // Rewrite $strDataValue with returned relation data + $strDataValue = ""; + foreach ($arrDataMaster AS $data) { + if ($data['idTable'] == 1) { + $strSQLName = "SELECT `".$elem['target1']."` FROM `".$elem['tableName1']."` WHERE `active`='1' AND $strDomainWhere1 AND `id` = ".$data['idSlave']; + } else { + $strSQLName = "SELECT `".$elem['target2']."` FROM `".$elem['tableName2']."` WHERE `active`='1' AND $strDomainWhere1 AND `id` = ".$data['idSlave']; + } + $strDataValue .= $this->myDBClass->getFieldData($strSQLName).","; + } + $strDataValue = substr($strDataValue,0,-1); + } else { + return(1); + } + // Process special 1:n:str relations with string values (servicedependencies) + } else if (($elem['type'] == 6) && (($strDataValue == 1) || ($strDataValue == 2))) { + $strSQLRel = "SELECT `".$elem['linkTable']."`.`strSlave`, `".$elem['linkTable']."`.`exclude` + FROM `".$elem['linkTable']."` + LEFT JOIN `tbl_service` ON `".$elem['linkTable']."`.`idSlave`=`tbl_service`.`id` + WHERE `".$elem['linkTable']."`.`idMaster`=".$arrData['id']." AND `active`='1' AND $strDomainWhere1 + ORDER BY `".$elem['linkTable']."`.`strSlave`"; + $booReturn = $this->myDBClass->getDataArray($strSQLRel,$arrDataRel,$intDataCountRel); + if ($booReturn && ($intDataCountRel != 0)) { + // Rewrite $strDataValue with returned relation data + if ($strDataValue == 2) {$strDataValue = "*,";} else {$strDataValue = "";} + foreach ($arrDataRel AS $data) { + if ($data['exclude'] == 0) { + $strDataValue .= $data['strSlave'].","; + } else if ($this->intNagVersion >=3) { + $strDataValue .= "!".$data['strSlave'].","; + } + } + $strDataValue = substr($strDataValue,0,-1); + if ($strDataValue == "") return(1); + } else { + if ($strDataValue == 2) {$strDataValue = "*";} else {return(1);} + } + // Process special relations for free variables + } else if (($elem['type'] == 4) && ($strDataValue == 1) && ($this->intNagVersion >= 3)) { + $strSQLVar = "SELECT * FROM `tbl_variabledefinition` LEFT JOIN `".$elem['linkTable']."` ON `id` = `idSlave` + WHERE `idMaster`=".$arrData['id']." ORDER BY `name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLVar,$arrDSVar,$intDCVar); + if ($booReturn && ($intDCVar != 0)) { + foreach ($arrDSVar AS $vardata) { + // Insert fill spaces + $strFillLen = (30-strlen($vardata['name'])); + $strSpace = " "; + for ($f=0;$f<$strFillLen;$f++) { + $strSpace .= " "; + } + $resTemplate->setVariable("ITEM_TITLE",$vardata['name'].$strSpace); + $resTemplate->setVariable("ITEM_VALUE",$vardata['value']); + $resTemplate->parse("configline"); + } + } + return(1); + // Process special relations for service groups + } else if (($elem['type'] == 5) && ($strDataValue == 1)) { + $strSQLMaster = "SELECT * FROM `".$elem['linkTable']."` WHERE `idMaster` = ".$arrData['id']; + $booReturn = $this->myDBClass->getDataArray($strSQLMaster,$arrDataMaster,$intDataCountMaster); + if ($booReturn && ($intDataCountMaster != 0)) { + // Rewrite $strDataValue with returned relation data + $strDataValue = ""; + foreach ($arrDataMaster AS $data) { + if ($data['idSlaveHG'] != 0) { + $strService = $this->myDBClass->getFieldData("SELECT `".$elem['target2']."` FROM `".$elem['tableName2']. + "` WHERE `id` = ".$data['idSlaveS']); + $strSQLHG1 = "SELECT `host_name` FROM `tbl_host` LEFT JOIN `tbl_lnkHostgroupToHost` ON `id`=`idSlave` + WHERE `idMaster`=".$data['idSlaveHG']." AND `active`='1' AND $strDomainWhere1"; + $booReturn = $this->myDBClass->getDataArray($strSQLHG1,$arrHG1,$intHG1); + if ($booReturn && ($intHG1 != 0)) { + foreach ($arrHG1 AS $elemHG1) { + if (substr_count($strDataValue,$elemHG1['host_name'].",".$strService) == 0) { + $strDataValue .= $elemHG1['host_name'].",".$strService.","; + } + } + } + $strSQLHG2 = "SELECT `host_name` FROM `tbl_host` LEFT JOIN `tbl_lnkHostToHostgroup` ON `id`=`idMaster` + WHERE `idSlave`=".$data['idSlaveHG']." AND `active`='1' AND $strDomainWhere1"; + $booReturn = $this->myDBClass->getDataArray($strSQLHG2,$arrHG2,$intHG2); + if ($booReturn && ($intHG2 != 0)) { + foreach ($arrHG2 AS $elemHG2) { + if (substr_count($strDataValue,$elemHG2['host_name'].",".$strService) == 0) { + $strDataValue .= $elemHG2['host_name'].",".$strService.","; + } + } + } + } else { + $strHost = $this->myDBClass->getFieldData("SELECT `".$elem['target1']."` FROM `".$elem['tableName1']."` ". + "WHERE `id` = ".$data['idSlaveH']." AND `active`='1' AND $strDomainWhere1"); + $strService = $this->myDBClass->getFieldData("SELECT `".$elem['target2']."` FROM `".$elem['tableName2']."` ". + "WHERE `id` = ".$data['idSlaveS']." AND `active`='1' AND $strDomainWhere1"); + if (($strHost != "") && ($strService != "")) { + if (substr_count($strDataValue,$strHost.",".$strService) == 0) { + $strDataValue .= $strHost.",".$strService.","; + } + } + } + } + $strDataValue = substr($strDataValue,0,-1); + if ($strDataValue == "") return(1); + } else { + return(1); + } + // Process "*" + } else if ($strDataValue == 2) { + $strDataValue = "*"; + } else { + return(1); + } + } + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Rename field names + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTableName -> Table name + // $intConfigID -> Configuration target ID + // $intDataId -> Data ID + // $key -> Data key (return value) + // $value -> Data value (return value) + // $intSkip -> Skip value (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function renameFields($strTableName,$intConfigID,$intDataId,&$key,&$value,&$intSkip) { + if ($this->intNagVersion == 0) { + $this->getConfigData($intConfigID,"version",$this->intNagVersion); + } + // Picture path + if ($this->strPicPath == "none") { + $this->getConfigData($intConfigID,"picturedir",$this->strPicPath); + } + if ($key == "icon_image") $value = $this->strPicPath.$value; + if ($key == "vrml_image") $value = $this->strPicPath.$value; + if ($key == "statusmap_image") $value = $this->strPicPath.$value; + // Tables + if ($strTableName == "tbl_host") { + if ($key == "use_template") $key = "use"; + $strVIValues = "active_checks_enabled,passive_checks_enabled,check_freshness,obsess_over_host,event_handler_enabled,"; + $strVIValues .= "flap_detection_enabled,process_perf_data,retain_status_information,retain_nonstatus_information,"; + $strVIValues .= "notifications_enabled"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "parents") $value = $this->checkTpl($value,"parents_tploptions","tbl_host",$intDataId,$intSkip); + if ($key == "hostgroups") $value = $this->checkTpl($value,"hostgroups_tploptions","tbl_host",$intDataId,$intSkip); + if ($key == "contacts") $value = $this->checkTpl($value,"contacts_tploptions","tbl_host",$intDataId,$intSkip); + if ($key == "contact_groups") $value = $this->checkTpl($value,"contact_groups_tploptions","tbl_host",$intDataId,$intSkip); + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_host",$intDataId,$intSkip); + if ($key == "check_command") $value = str_replace("\::bang::","\!",$value); + if ($key == "check_command") $value = str_replace("::bang::","\!",$value); + } + if ($strTableName == "tbl_service") { + if ($key == "use_template") $key = "use"; + if (($this->intNagVersion != 3) && ($this->intNagVersion != 2)) { + if ($key == "check_interval") $key = "normal_check_interval"; + if ($key == "retry_interval") $key = "retry_check_interval"; + } + $strVIValues = "is_volatile,active_checks_enabled,passive_checks_enabled,parallelize_check,obsess_over_service,"; + $strVIValues .= "check_freshness,event_handler_enabled,flap_detection_enabled,process_perf_data,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information,notifications_enabled"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "host_name") $value = $this->checkTpl($value,"host_name_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "hostgroup_name") $value = $this->checkTpl($value,"hostgroup_name_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "servicegroups") $value = $this->checkTpl($value,"servicegroups_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "contacts") $value = $this->checkTpl($value,"contacts_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "contact_groups") $value = $this->checkTpl($value,"contact_groups_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_service",$intDataId,$intSkip); + if ($key == "check_command") $value = str_replace("\::bang::","\!",$value); + if ($key == "check_command") $value = str_replace("::bang::","\!",$value); + } + if ($strTableName == "tbl_hosttemplate") { + if ($key == "template_name") $key = "name"; + if ($key == "use_template") $key = "use"; + $strVIValues = "active_checks_enabled,passive_checks_enabled,check_freshness,obsess_over_host,event_handler_enabled,"; + $strVIValues .= "flap_detection_enabled,process_perf_data,retain_status_information,retain_nonstatus_information,"; + $strVIValues .= "notifications_enabled"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "parents") $value = $this->checkTpl($value,"parents_tploptions","tbl_hosttemplate",$intDataId,$intSkip); + if ($key == "hostgroups") $value = $this->checkTpl($value,"hostgroups_tploptions","tbl_hosttemplate",$intDataId,$intSkip); + if ($key == "contacts") $value = $this->checkTpl($value,"contacts_tploptions","tbl_hosttemplate",$intDataId,$intSkip); + if ($key == "contact_groups") $value = $this->checkTpl($value,"contact_groups_tploptions","tbl_hosttemplate",$intDataId,$intSkip); + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_hosttemplate",$intDataId,$intSkip); + } + if ($strTableName == "tbl_servicetemplate") { + if ($key == "template_name") $key = "name"; + if ($key == "use_template") $key = "use"; + if (($this->intNagVersion != 3) && ($this->intNagVersion != 2)) { + if ($key == "check_interval") $key = "normal_check_interval"; + if ($key == "retry_interval") $key = "retry_check_interval"; + } + $strVIValues = "is_volatile,active_checks_enabled,passive_checks_enabled,parallelize_check,obsess_over_service,"; + $strVIValues .= "check_freshness,event_handler_enabled,flap_detection_enabled,process_perf_data,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information,notifications_enabled"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "host_name") $value = $this->checkTpl($value,"host_name_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + if ($key == "hostgroup_name") $value = $this->checkTpl($value,"hostgroup_name_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + if ($key == "servicegroups") $value = $this->checkTpl($value,"servicegroups_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + if ($key == "contacts") $value = $this->checkTpl($value,"contacts_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + if ($key == "contact_groups") $value = $this->checkTpl($value,"contact_groups_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_servicetemplate",$intDataId,$intSkip); + } + if ($strTableName == "tbl_contact") { + if ($key == "use_template") $key = "use"; + $strVIValues = "host_notifications_enabled,service_notifications_enabled,can_submit_commands,retain_status_information,"; + $strVIValues = "retain_nonstatus_information"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "contactgroups") $value = $this->checkTpl($value,"contactgroups_tploptions","tbl_contact",$intDataId,$intSkip); + if ($key == "host_notification_commands") { + $value = $this->checkTpl($value,"host_notification_commands_tploptions","tbl_contact",$intDataId,$intSkip);} + if ($key == "service_notification_commands") { + $value = $this->checkTpl($value,"service_notification_commands_tploptions","tbl_contact",$intDataId,$intSkip);} + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_contact",$intDataId,$intSkip); + } + if ($strTableName == "tbl_contacttemplate") { + if ($key == "template_name") $key = "name"; + if ($key == "use_template") $key = "use"; + $strVIValues = "host_notifications_enabled,service_notifications_enabled,can_submit_commands,retain_status_information,"; + $strVIValues = "retain_nonstatus_information"; + if (in_array($key,explode(",",$strVIValues))) { + if ($value == -1) $value = "null"; + if ($value == 3) $value = "null"; + } + if ($key == "contactgroups") $value = $this->checkTpl($value,"contactgroups_tploptions","tbl_contacttemplate",$intDataId,$intSkip); + if ($key == "host_notification_commands") { + $value = $this->checkTpl($value,"host_notification_commands_tploptions","tbl_contacttemplate",$intDataId,$intSkip);} + if ($key == "service_notification_commands") { + $value = $this->checkTpl($value,"service_notification_commands_tploptions","tbl_contacttemplate",$intDataId,$intSkip);} + if ($key == "use") $value = $this->checkTpl($value,"use_template_tploptions","tbl_contacttemplate",$intDataId,$intSkip); + } + if (($strTableName == "tbl_hosttemplate") || ($strTableName == "tbl_servicetemplate") || ($strTableName == "tbl_contacttemplate")) { + if ($key == "register") $value = "0"; + } + if ($strTableName == "tbl_timeperiod") { + if ($key == "use_template") $key = "use"; + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Skip database values + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTableName -> Table name + // $strVersionValue -> NagiosQL version value + // $key -> Data key + // $value -> Data value + /////////////////////////////////////////////////////////////////////////////////////////// + function skipEntries($strTableName,$strVersionValue,$key,&$value) { + // Common fields + $strSpecial = "id,active,last_modified,access_rights,access_group,config_id,template,nodelete,command_type,import_hash"; + $arrOption = array(); + // Fields for special tables + if ($strTableName == "tbl_hosttemplate") $strSpecial .= ",parents_tploptions,hostgroups_tploptions,contacts_tploptions". + ",contact_groups_tploptions,use_template_tploptions"; + if ($strTableName == "tbl_servicetemplate") $strSpecial .= ",host_name_tploptions,hostgroup_name_tploptions,contacts_tploptions". + ",servicegroups_tploptions,contact_groups_tploptions,use_template_tploptions"; + if ($strTableName == "tbl_contact") $strSpecial .= ",use_template_tploptions,contactgroups_tploptions". + ",host_notification_commands_tploptions,service_notification_commands_tploptions"; + if ($strTableName == "tbl_contacttemplate") $strSpecial .= ",use_template_tploptions,contactgroups_tploptions". + ",host_notification_commands_tploptions,service_notification_commands_tploptions"; + if ($strTableName == "tbl_host") $strSpecial .= ",parents_tploptions,hostgroups_tploptions,contacts_tploptions". + ",contact_groups_tploptions,use_template_tploptions"; + if ($strTableName == "tbl_service") $strSpecial .= ",host_name_tploptions,hostgroup_name_tploptions,servicegroups_tploptions". + ",contacts_tploptions,contact_groups_tploptions,use_template_tploptions"; + + // Pass special fields based on nagios version + if ($strVersionValue != 3) { + // Timeperiod + if ($strTableName == "tbl_timeperiod") $strSpecial .= ",use_template,exclude,name"; + // Contact + if ($strTableName == "tbl_contact") { $strSpecial .= ",host_notifications_enabled,service_notifications_enabled,can_submit_commands,". + "retain_status_information,retain_nonstatus_information"; + $arrOption['host_notification_options'] = ",s"; + $arrOption['service_notification_options'] = ",s"; } + // Contacttemplate + if ($strTableName == "tbl_contacttemplate") { $strSpecial .= ",host_notifications_enabled,service_notifications_enabled,can_submit_commands,". + "retain_status_information,retain_nonstatus_information"; + $arrOption['host_notification_options'] = ",s"; + $arrOption['service_notification_options'] = ",s"; } + // Contactgroup + if ($strTableName == "tbl_contactgroup") $strSpecial .= ",contactgroup_members"; + // Hostgroup + if ($strTableName == "tbl_hostgroup") $strSpecial .= ",hostgroup_members,notes,notes_url,action_url"; + // Servicegroup + if ($strTableName == "tbl_servicegroup") $strSpecial .= ",servicegroup_members,notes,notes_url,action_url"; + // Hostdependencies + if ($strTableName == "tbl_hostdependency") $strSpecial .= ",dependent_hostgroup_name,hostgroup_name,dependency_period"; + // Hostescalations + if ($strTableName == "tbl_hostescalation") $strSpecial .= ",contacts"; + // Servicedependencies + if ($strTableName == "tbl_servicedependency") $strSpecial .= ",dependent_hostgroup_name,hostgroup_name,dependency_period,dependent_servicegroup_name". + ",servicegroup_name"; + // Serviceescalations + if ($strTableName == "tbl_serviceescalation") $strSpecial .= ",hostgroup_name,contacts,servicegroup_name"; + // Hosts + if ($strTableName == "tbl_host") { $strSpecial .= ",initial_state,flap_detection_options,contacts,notes,notes_url,action_url". + ",icon_image,icon_image_alt,vrml_image,statusmap_image,2d_coords,3d_coords"; + $arrOption['notification_options'] = ",s"; } + // Services + if ($strTableName == "tbl_service") { $strSpecial .= ",initial_state,flap_detection_options,contacts,notes,notes_url,action_url". + ",icon_image,icon_image_alt"; + $arrOption['notification_options'] = ",s"; } + // Hosttemplates + if ($strTableName == "tbl_hosttemplate") { $strSpecial .= ",initial_state,flap_detection_options,contacts,notes,notes_url,action_url". + ",icon_image,icon_image_alt,vrml_image,statusmap_image,2d_coords,3d_coords"; + $arrOption['notification_options'] = ",s"; } + // Servicetemplates + if ($strTableName == "tbl_servicetemplate") { $strSpecial .= ",initial_state,flap_detection_options,contacts,notes,notes_url,action_url". + ",icon_image,icon_image_alt"; + $arrOption['notification_options'] = ",s"; } + } + if ($strVersionValue == 3) { + // Servicetemplate + if ($strTableName == "tbl_servicetemplate") $strSpecial .= ",parallelize_check "; + // Service + if ($strTableName == "tbl_service") $strSpecial .= ",parallelize_check"; + + } + if ($strVersionValue == 1) { + $strSpecial .= ""; + } + // Reduce option values + if ((count($arrOption) != 0) && array_key_exists($key,$arrOption)) { + $value = str_replace($arrOption[$key],'',$value); + $value = str_replace(str_replace(',','',$arrOption[$key]),'',$value); + if ($value == '') return(1); + } + // Skip entries + $arrSpecial = explode(",",$strSpecial); + if (($value == "") || (in_array($key,$arrSpecial))) return(1); + + // Do not write config data (based on 'skip' option) + $strNoTwo = "active_checks_enabled,passive_checks_enabled,obsess_over_host,check_freshness,event_handler_enabled,flap_detection_enabled,"; + $strNoTwo .= "process_perf_data,retain_status_information,retain_nonstatus_information,notifications_enabled,parallelize_check,is_volatile,"; + $strNoTwo .= "host_notifications_enabled,service_notifications_enabled,can_submit_commands,obsess_over_service"; + $booTest = 0; + foreach(explode(",",$strNoTwo) AS $elem){ + if (($key == $elem) && ($value == "2")) $booTest = 1; + if (($this->intNagVersion != 3) && ($key == $elem) && ($value == "3")) $booTest = 1; + } + if ($booTest == 1) return(1); + return(0); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Open an SSH connection + /////////////////////////////////////////////////////////////////////////////////////////// + function getSSHConnection($intConfigID) { + // SSH Possible + if (!function_exists('ssh2_connect')) { + $this->processClassMessage(translate('SSH module not loaded!')."::",$this->strErrorMessage); + return(1); + } + // Set up basic connection + $this->getConfigData($intConfigID,"server",$strServer); + $this->resConnectServer = $strServer; + $this->resConnectType = "SSH"; + $intErrorReporting = error_reporting(); + error_reporting(0); + $this->resConnectId = ssh2_connect($strServer); + $arrError = error_get_last(); + error_reporting($intErrorReporting); + // Check connection + if (!$this->resConnectId) { + $this->myDataClass->writeLog(translate('Connection to remote system failed (SSH2 connection):')." ".$strServer); + $this->processClassMessage(translate('Connection to remote system failed (SSH2 connection):')." ".$strServer."::",$this->strErrorMessage); + if ($arrError['message'] != "") $this->processClassMessage($arrError['message']."::",$this->strErrorMessage); + $this->resConnectServer = ""; + $this->resConnectType = "none"; + return(1); + } + // Login with username and password + $this->getConfigData($intConfigID,"user",$strUser); + $this->getConfigData($intConfigID,"password",$strPasswd); + $this->getConfigData($intConfigID,"ssh_key_path",$strSSHKeyPath); + if ($strSSHKeyPath != "") { + $strPublicKey = str_replace("//","/",$strSSHKeyPath."/id_rsa.pub"); + $strPrivatKey = str_replace("//","/",$strSSHKeyPath."/id_rsa"); + // Check if ssh key file are readable + if (!file_exists($strPublicKey) || !is_readable($strPublicKey)) { + $this->myDataClass->writeLog(translate('SSH public key does not exist or is not readable')." ".$strSSHKeyPath.$strPublicKey); + $this->processClassMessage(translate('SSH public key does not exist or is not readable')." ".$strSSHKeyPath.$strPublicKey."::",$this->strErrorMessage); + return(1); + } + if (!file_exists($strPrivatKey) || !is_readable($strPrivatKey)) { + $this->myDataClass->writeLog(translate('SSH private key does not exist or is not readable')." ".$strPrivatKey); + $this->processClassMessage(translate('SSH private key does not exist or is not readable')." ".$strPrivatKey."::",$this->strErrorMessage); + return(1); + } + $intErrorReporting = error_reporting(); + error_reporting(0); + if ($strPasswd == "") { + $login_result = ssh2_auth_pubkey_file($this->resConnectId, $strUser, $strSSHKeyPath."/id_rsa.pub", $strSSHKeyPath."/id_rsa"); + } else { + $login_result = ssh2_auth_pubkey_file($this->resConnectId, $strUser, $strSSHKeyPath."/id_rsa.pub", $strSSHKeyPath."/id_rsa",$strPasswd); + } + $arrError = error_get_last(); + error_reporting($intErrorReporting); + } else { + $intErrorReporting = error_reporting(); + error_reporting(0); + $login_result = ssh2_auth_password($this->resConnectId,$strUser,$strPasswd); + $arrError = error_get_last(); + $strPasswordNote = "If you are using ssh2 with user/password - you have to enable PasswordAuthentication in your sshd_config"; + error_reporting($intErrorReporting); + } + // Check connection + if ((!$this->resConnectId) || (!$login_result)) { + $this->myDataClass->writeLog(translate('Connection to remote system failed (SSH2 connection):')." ".$strServer); + $this->processClassMessage(translate('Connection to remote system failed (SSH2 connection):')." ".$strServer."::",$this->strErrorMessage); + if ($arrError['message'] != "") $this->processClassMessage($arrError['message']."::",$this->strErrorMessage); + if (isset($strPasswordNote)) $this->processClassMessage($strPasswordNote."::",$this->strErrorMessage); + $this->resConnectServer = ""; + $this->resConnectType = "none"; + $this->resConnectId = null; + return(1); + } + // Etablish an SFTP connection ressource + $this->resSFTP = ssh2_sftp($this->resConnectId); + return(0); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Sends a command via SSH and stores the result in an array + /////////////////////////////////////////////////////////////////////////////////////////// + // $strCommand -> Command + // $intLines -> Read max output lines + // This functions returs a result array or false in case of error + /////////////////////////////////////////////////////////////////////////////////////////// + function sendSSHCommand($strCommand,$intLines=100) { + $intCount1 = 0; + $intCount2 = 0; + $booResult = false; + if (is_resource($this->resConnectId)) { + $resStream = ssh2_exec($this->resConnectId, $strCommand.'; echo "__END__";'); + if ($resStream) { + stream_set_blocking($resStream,1); + stream_set_timeout($resStream,2); + do { + $strLine = stream_get_line($resStream,1024,"\n"); + if ($strLine == "") { + $intCount1++; + } else if (substr_count($strLine,"__END__") != 1) { + $arrResult[] = $strLine; + $booResult = true; + } + $intCount2++; + $arrStatus = stream_get_meta_data($resStream); + } while ($resStream && !(feof($resStream)) && ($intCount1 <= 10) && ($intCount2 <= $intLines) && ($arrStatus['timed_out'] != true)); + fclose($resStream); + if ($booResult) { + if ($arrStatus['timed_out'] == true) { + //echo "timed_out".var_dump($arrResult)."
"; + } + return $arrResult; + } else { + return true; + } + } + } + return false; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Open an FTP connection + /////////////////////////////////////////////////////////////////////////////////////////// + function getFTPConnection($intConfigID) { + // Set up basic connection + $this->getConfigData($intConfigID,"server",$strServer); + $this->resConnectServer = $strServer; + $this->resConnectType = "FTP"; + $this->resConnectId = ftp_connect($strServer); + // Login with username and password + if ($this->resConnectId) { + $this->getConfigData($intConfigID,"user",$strUser); + $this->getConfigData($intConfigID,"password",$strPasswd); + $intErrorReporting = error_reporting(); + error_reporting('0'); + $login_result = ftp_login($this->resConnectId,$strUser,$strPasswd); + $arrError = error_get_last(); + error_reporting($intErrorReporting); + if ($login_result == false) { + $strFTPError = $arrError['message']; + ftp_close($this->resConnectId); + $this->resConnectServer = ""; + $this->resConnectType = "none"; + } + } + // Check connection + if ((!$this->resConnectId) || (!$login_result)) { + $this->myDataClass->writeLog(translate('Connection to remote system failed (FTP connection):')." ".$strServer); + $this->processClassMessage(translate('Connection to remote system failed (FTP connection):')." ".$strServer."::",$this->strErrorMessage); + if (isset($arrError) && ($arrError['message'] != "")) $this->processClassMessage($arrError['message']."::",$this->strErrorMessage); + return(1); + } + return(0); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get configuration set IDs + /////////////////////////////////////////////////////////////////////////////////////////// + // $strTableName -> Configuration table name + // Return value -> Array including configuration target IDs + /////////////////////////////////////////////////////////////////////////////////////////// + function getConfigSets($strTableName = '') { + $arrConfigId = array(); + if ($strTableName == '') { + $strSQL = "SELECT `targets` FROM `tbl_datadomain` WHERE `id` = ".$this->intDomainId; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrData AS $elem) { + $arrConfigId[] = $elem['targets']; + } + return($arrConfigId); + } + } + return(1); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get configuration domain parameters + /////////////////////////////////////////////////////////////////////////////////////////// + // $intConfigId -> Configuration ID + // $strConfigItem -> Configuration key + // $strValue -> Configuration value (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function getConfigData($intConfigId,$strConfigItem,&$strValue) { + $strSQL = "SELECT `".$strConfigItem."` FROM `tbl_configtarget` WHERE `id` = ".$intConfigId; + $strValue = $this->myDBClass->getFieldData($strSQL); + if ($strValue != "" ) return(0); + return(1); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Get data domain parameters + /////////////////////////////////////////////////////////////////////////////////////////// + // $strConfigItem -> Configuration key + // $strValue -> Configuration value (return value) + /////////////////////////////////////////////////////////////////////////////////////////// + function getDomainData($strConfigItem,&$strValue) { + $strSQL = "SELECT `".$strConfigItem."` FROM `tbl_datadomain` WHERE `id` = ".$this->intDomainId; + $strValue = $this->myDBClass->getFieldData($strSQL); + if ($strValue != "" ) return(0); + return(1); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Process special settings based on template option + /////////////////////////////////////////////////////////////////////////////////////////// + // $strValue -> Original data value + // $strKeyField -> Template option field name + // $strTable -> Table name + // $intId -> Dataset ID + // $intSkip -> Skip value (return value) + // This function returns the manipulated data value + /////////////////////////////////////////////////////////////////////////////////////////// + function checkTpl($strValue,$strKeyField,$strTable,$intId,&$intSkip) { + if ($this->intNagVersion < 3) return($strValue); + $strSQL = "SELECT `".$strKeyField."` FROM `".$strTable."` WHERE `id` = $intId"; + $intValue = $this->myDBClass->getFieldData($strSQL); + if ($intValue == 0) return("+".$strValue); + if ($intValue == 1) { + $intSkip = 0; + return("null"); + } + return($strValue); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Check directory for write access + /////////////////////////////////////////////////////////////////////////////////////////// + // $path -> Physical path + // This function returns true if writeable or false if not + // This is a 3rd party function and not written by the NagiosQL developper team + /////////////////////////////////////////////////////////////////////////////////////////// + function dir_is_writable($path) { + if ($path == "") return false; + //will work in despite of Windows ACLs bug + //NOTE: use a trailing slash for folders!!! + //see http://bugs.php.net/bug.php?id=27609 + //see http://bugs.php.net/bug.php?id=30931 + if ($path{strlen($path)-1}=='/') // recursively return a temporary file path + return $this->dir_is_writable($path.uniqid(mt_rand()).'.tmp'); + else if (is_dir($path)) + return $this->dir_is_writable($path.'/'.uniqid(mt_rand()).'.tmp'); + // check tmp file for read/write capabilities + $rm = file_exists($path); + $f = @fopen($path, 'a'); + if ($f===false) + return false; + fclose($f); + if (!$rm) + unlink($path); + return true; + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Processing message strings + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Merge message strings and check for duplicate messages + // + // Parameters: $strNewMessage Message to add + // $strSeparate Separate string (
or \n) + // + // Return value: &$strOldMessage Modified message string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function processClassMessage($strNewMessage,&$strOldMessage) { + $strNewMessage = str_replace("::::","::",$strNewMessage); + if (($strOldMessage != "") && ($strNewMessage != "")) { + if (substr_count($strOldMessage,$strNewMessage) == 0) { + $strOldMessage .= $strNewMessage; + } + } else { + $strOldMessage .= $strNewMessage; + } + // Reset message variable (prevent duplicates) + $strNewMessage = ""; + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Add files of a given directory to an array + /////////////////////////////////////////////////////////////////////////////////////////// + function DirToArray($sPath, $include, $exclude, &$output,&$errMessage) { + while (substr($sPath,-1) == "/" OR substr($sPath,-1) == "\\") { + $sPath=substr($sPath, 0, -1); + } + $handle = @opendir($sPath); + if( $handle === false ) { + if ($this->intDomainId != 0) { + $errMessage .= translate('Could not open directory').": ".$sPath."
"; + } + } else { + while ($arrDir[] = readdir($handle)) {} + closedir($handle); + sort($arrDir); + foreach($arrDir as $file) { + if (!preg_match("/^\.{1,2}/", $file) and strlen($file)) { + if (is_dir($sPath."/".$file)) { + $this->DirToArray($sPath."/".$file, $include, $exclude, $output, $errMessage); + } else { + if (preg_match("/".$include."/",$file) && (($exclude == "") || !preg_match("/".$exclude."/", $file))) { + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { + $sPath=str_replace("/", "\\", $sPath); + $output [] = $sPath."\\".$file; + } else { + $output [] = $sPath."/".$file; + } + } + } + } + } + } + } +} +?> \ No newline at end of file diff --git a/functions/content_class.php b/functions/content_class.php new file mode 100755 index 0000000..3a65309 --- /dev/null +++ b/functions/content_class.php @@ -0,0 +1,509 @@ +arrSettings = $_SESSION['SETS']; + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Single data form initialization + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // $strChbFields Comma separated string of checkbox value names + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function addFormInit($objTemplate,$strChbFields='') { + // Language text replacements from fieldvars.php file + foreach($this->arrDescription AS $elem) { + $objTemplate->setVariable($elem['name'],$elem['string']); + } + // Some single replacements + $objTemplate->setVariable("ACTION_INSERT",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); + $objTemplate->setVariable("IMAGE_PATH",$this->arrSettings['path']['base_url']."images/"); + $objTemplate->setVariable("DOCUMENT_ROOT",$this->arrSettings['path']['base_url']); + $objTemplate->setVariable("ACT_CHECKED","checked"); + $objTemplate->setVariable("REG_CHECKED","checked"); + $objTemplate->setVariable("MODUS","insert"); + $objTemplate->setVariable("VERSION",$this->intVersion); + $objTemplate->setVariable("LIMIT",$this->intLimit); + $objTemplate->setVariable("RELATION_CLASS","elementHide"); + $objTemplate->setVariable("IFRAME_SRC",$this->arrSettings['path']['base_url']."admin/commandline.php"); + // Some conditional replacements + if ($this->strBrowser != "msie") $objTemplate->setVariable("MSIE_DISABLED","disabled=\"disabled\""); + if ($this->intGroupAdm == 0) $objTemplate->setVariable("RESTRICT_GROUP_ADMIN","class=\"elementHide\""); + if ($this->arrSettings['common']['seldisable'] == 0) $objTemplate->setVariable("MSIE_DISABLED",""); + if ($this->arrSettings['common']['tplcheck'] == 0) $objTemplate->setVariable("CHECK_BYPASS","return true;"); + // Some replacements based on nagios version + if ($this->intVersion == 3) { + $objTemplate->setVariable("VERSION_20_VISIBLE","elementHide"); + $objTemplate->setVariable("VERSION_30_VISIBLE","elementShow"); + $objTemplate->setVariable("VERSION_20_MUST",""); + $objTemplate->setVariable("VERSION_30_MUST","inpmust"); + $objTemplate->setVariable("VERSION_20_STAR",""); + $objTemplate->setVariable("NAGIOS_VERSION","3"); + } else { + $objTemplate->setVariable("VERSION_20_VISIBLE","elementShow"); + $objTemplate->setVariable("VERSION_30_VISIBLE","elementHide"); + $objTemplate->setVariable("VERSION_20_MUST","inpmust"); + $objTemplate->setVariable("VERSION_30_MUST",""); + $objTemplate->setVariable("VERSION_20_STAR","*"); + $objTemplate->setVariable("NAGIOS_VERSION","2"); + } + // Checkbox and radio field value replacements + if ($strChbFields != '') { + foreach (explode(",",$strChbFields) AS $elem) { + $objTemplate->setVariable("DAT_".$elem."0_CHECKED",""); + $objTemplate->setVariable("DAT_".$elem."1_CHECKED",""); + $objTemplate->setVariable("DAT_".$elem."2_CHECKED","checked"); + } + } + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Single data form - value insertions + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // $arrModifyData Database values + // $intLocked Data is locked (0=no / 1=yes) + // $strInfo Information string + // $strChbFields Comma separated string of checkbox value names + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function addInsertData($objTemplate,$arrModifyData,$intLocked,$strInfo,$strChbFields = '') { + // Insert text data values + foreach($arrModifyData AS $key => $value) { + if (($key == "active") || ($key == "register") || ($key == "last_modified") || ($key == "access_rights")) continue; + $objTemplate->setVariable("DAT_".strtoupper($key),htmlentities($value,ENT_QUOTES,'UTF-8')); + } + // Insert checkbox data values + if ((isset($arrModifyData['active'])) && ($arrModifyData['active'] != 1)) $objTemplate->setVariable("ACT_CHECKED",""); + if ((isset($arrModifyData['register'])) && ($arrModifyData['register'] != 1)) $objTemplate->setVariable("REG_CHECKED",""); + // Deselect any checkboxes + if ($strChbFields != '') { + foreach (explode(",",$strChbFields) AS $elem) { + $objTemplate->setVariable("DAT_".$elem."0_CHECKED",""); + $objTemplate->setVariable("DAT_".$elem."1_CHECKED",""); + $objTemplate->setVariable("DAT_".$elem."2_CHECKED",""); + } + } + // Change some status values in locked data sets + if ($intLocked != 0) { + $objTemplate->setVariable("ACT_DISABLED","disabled"); + $objTemplate->setVariable("ACT_CHECKED","checked"); + $objTemplate->setVariable("ACTIVE","1"); + $objTemplate->setVariable("CHECK_MUST_DATA",$strInfo); + $objTemplate->setVariable("RELATION_CLASS","elementShow"); + } + // Change mode to modify + $objTemplate->setVariable("MODUS","modify"); + // Check write permission + if ($this->intWriteAccessId == 1) $objTemplate->setVariable("DISABLE_SAVE","disabled=\"disabled\""); + if ($this->intGlobalWriteAccess == 1) $objTemplate->setVariable("DISABLE_SAVE","disabled=\"disabled\""); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: List view - form initialization + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function listViewInit($objTemplate) { + // Language text replacements from fieldvars.php file + foreach($this->arrDescription AS $elem) { + $objTemplate->setVariable($elem['name'],$elem['string']); + } + // Some single replacements + $objTemplate->setVariable("LIMIT",$this->intLimit); + $objTemplate->setVariable("ACTION_MODIFY",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)); + $objTemplate->setVariable("TABLE_NAME",$this->strTableName); + $objTemplate->setVariable("DAT_SEARCH",$_SESSION['search'][$this->strSearchSession]); + $objTemplate->setVariable("MAX_ID","0"); + $objTemplate->setVariable("MIN_ID","0"); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: List view - value insertions + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // $arrData Database values + // $intDataCount Total count of data lines for one page + // $intLineCount Total count of data lines (all data) + // $strField1 Field name for data field 1 + // $strField2 Field name for data field 2 + // $intLimit2 Actual data char limit for field 2 + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function listData($objTemplate,$arrData,$intDataCount,$intLineCount,$strField1,$strField2,$intLimit2=0) { + // Template block names + $strTplPart = 'datatable'; + $strTplRow = 'datarow'; + if ($this->strTableName == "tbl_host") { + $strTplPart = 'datatablehost'; + $strTplRow = 'datarowhost'; + } + if ($this->strTableName == "tbl_service") { + $strTplPart = 'datatableservice'; + $strTplRow = 'datarowservice'; + } + if (($this->strTableName == "tbl_user") || ($this->strTableName == "tbl_group") || ($this->strTableName == "tbl_datadomain") || ($this->strTableName == "tbl_configtarget")) { + $strTplPart = 'datatablecommon'; + $strTplRow = 'datarowcommon'; + } + // Some single replacements + $objTemplate->setVariable("IMAGE_PATH_HEAD",$this->arrSettings['path']['base_url']."images/"); + $objTemplate->setVariable("CELLCLASS_L","tdlb"); + $objTemplate->setVariable("CELLCLASS_M","tdmb"); + $objTemplate->setVariable("DISABLED","disabled"); + $objTemplate->setVariable("DATA_FIELD_1",translate('No data')); + $objTemplate->setVariable("DATA_FIELD_2"," "); + $objTemplate->setVariable("DATA_REGISTERED"," "); + $objTemplate->setVariable("DATA_ACTIVE"," "); + $objTemplate->setVariable("DATA_FILE"," "); + $objTemplate->setVariable("PICTURE_CLASS","elementHide"); + $objTemplate->setVariable("DOMAIN_SPECIAL"," "); + $objTemplate->setVariable("SORT_BY",$this->intSortBy); + // Inserting data values + if ($intDataCount != 0) { + for ($i=0;$i<$intDataCount;$i++) { + // Get biggest and smalest value + if ($i == 0) {$y = $arrData[$i]['id']; $z = $arrData[$i]['id'];} + if ($arrData[$i]['id'] < $y) $y = $arrData[$i]['id']; + if ($arrData[$i]['id'] > $z) $z = $arrData[$i]['id']; + $objTemplate->setVariable("MAX_ID",$z); + $objTemplate->setVariable("MIN_ID",$y); + // Line colours + $strClassL = "tdld"; $strClassM = "tdmd"; + if ($i%2 == 1) {$strClassL = "tdlb"; $strClassM = "tdmb";} + if ((isset($arrData[$i]['register'])) && ($arrData[$i]['register'] == 0)) {$strRegister = translate('No');} else {$strRegister = translate('Yes');} + if ($arrData[$i]['active'] == 0) {$strActive = translate('No');} else {$strActive = translate('Yes');} + // Get file date for hosts and services + $intTimeInfo = 0; + if ($this->strTableName == "tbl_host") { + $intReturn = $this->myConfigClass->lastModifiedDir($this->strTableName,$arrData[$i]['host_name'],$arrData[$i]['id'],$arrTimeData,$intTimeInfo); + if ($intReturn == 1) $this->strErrorMessage = $this->myConfigClass->strErrorMessage; + } + if ($this->strTableName == "tbl_service") { + $intReturn = $this->myConfigClass->lastModifiedDir($this->strTableName,$arrData[$i]['config_name'],$arrData[$i]['id'],$arrTimeData,$intTimeInfo); + if ($intReturn == 1) $this->strErrorMessage = $this->myConfigClass->strErrorMessage; + } + // Set datafields + foreach($this->arrDescription AS $elem) { + $objTemplate->setVariable($elem['name'],$elem['string']); + } + if ($arrData[$i][$strField1] == '') $arrData[$i][$strField1] = "NOT DEFINED - ".$arrData[$i]['id']; + $objTemplate->setVariable("DATA_FIELD_1",htmlentities($arrData[$i][$strField1],ENT_COMPAT,'UTF-8')); + $objTemplate->setVariable("DATA_FIELD_1S",addslashes(htmlentities($arrData[$i][$strField1],ENT_COMPAT,'UTF-8'))); + if ($strField2 == 'process_field') { + $arrData[$i]['process_field'] = $this->processField2($arrData[$i],$this->strTableName); + } else { + $objTemplate->setVariable("DATA_FIELD_2S",addslashes(htmlentities($arrData[$i][$strField2],ENT_COMPAT,'UTF-8'))); + } + if ($intLimit2 != 0) { + if (strlen($arrData[$i][$strField2]) > $intLimit2) {$strAdd = " ...";} else {$strAdd = "";} + $objTemplate->setVariable("DATA_FIELD_2",htmlentities(substr($arrData[$i][$strField2],0,$intLimit2),ENT_COMPAT,'UTF-8').$strAdd); + } else { + $objTemplate->setVariable("DATA_FIELD_2",htmlentities($arrData[$i][$strField2],ENT_COMPAT,'UTF-8')); + } + $objTemplate->setVariable("DATA_REGISTERED",$strRegister); + if (substr_count($this->strTableName,'template') != 0) $objTemplate->setVariable("DATA_REGISTERED","-"); + $objTemplate->setVariable("DATA_ACTIVE",$strActive); + $objTemplate->setVariable("DATA_FILE","".translate('out-of-date').""); + if ($intTimeInfo == 4) $objTemplate->setVariable("DATA_FILE",translate('no target')); + if ($intTimeInfo == 3) $objTemplate->setVariable("DATA_FILE","".translate('missed').""); + if ($intTimeInfo == 2) $objTemplate->setVariable("DATA_FILE","".translate('missed').""); + if ($intTimeInfo == 1) $objTemplate->setVariable("DATA_FILE","".translate('out-of-date').""); + if ($intTimeInfo == 0) $objTemplate->setVariable("DATA_FILE",translate('up-to-date')); + $objTemplate->setVariable("LINE_ID",$arrData[$i]['id']); + $objTemplate->setVariable("CELLCLASS_L",$strClassL); + $objTemplate->setVariable("CELLCLASS_M",$strClassM); + $objTemplate->setVariable("IMAGE_PATH",$this->arrSettings['path']['base_url']."images/"); + $objTemplate->setVariable("PICTURE_CLASS","elementShow"); + $objTemplate->setVariable("DOMAIN_SPECIAL",""); + $objTemplate->setVariable("DISABLED",""); + // Disable common domain objects + if (isset($arrData[$i]['config_id'])) { + if ($arrData[$i]['config_id'] != $this->intDomainId) { + $objTemplate->setVariable("PICTURE_CLASS","elementHide"); + $objTemplate->setVariable("DOMAIN_SPECIAL"," [common]"); + $objTemplate->setVariable("DISABLED","disabled"); + } else { + // Inactive items should not be written/downloaded + if ($arrData[$i]['active'] == 0) $objTemplate->setVariable("ACTIVE_CONTROL","elementHide"); + } + } + // Check access rights for list objects + if (isset($arrData[$i]['access_group'])) { + if ($this->myVisClass->checkAccGroup($arrData[$i]['access_group'],'write') != 0) $objTemplate->setVariable("LINE_CONTROL","elementHide"); + } else { + if ($this->intGlobalWriteAccess != 0) $objTemplate->setVariable("LINE_CONTROL","elementHide"); + } + // Check global access rights for list objects + if ($this->intGlobalWriteAccess != 0) $objTemplate->setVariable("LINE_CONTROL","elementHide"); + $objTemplate->parse($strTplRow); + } + } else { + $objTemplate->setVariable("IMAGE_PATH",$this->arrSettings['path']['base_url']."images/"); + $objTemplate->parse($strTplRow); + } + $objTemplate->setVariable("BUTTON_CLASS","elementShow"); + if ($this->intDomainId == 0) $objTemplate->setVariable("BUTTON_CLASS","elementHide"); + // Check access rights for adding new objects + if ($this->intGlobalWriteAccess != 0) $objTemplate->setVariable("ADD_CONTROL","disabled=\"disabled\""); + // Show page numbers + $objTemplate->setVariable("PAGES",$this->myVisClass->buildPageLinks(filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING),$intLineCount,$this->intLimit,$this->intSortBy,$this->strSortDir)); + $objTemplate->parse($strTplPart); + $objTemplate->show($strTplPart); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Display information messages + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // $strErrorMessage String including error messages + // $strInfoMessage String including information messages + // $strConsistMessage String including consistency messages + // $arrTimeData Array including time data + // $strTimeInfoString String including time information message + // $intNoTime Status value for showing time information (0=show time) + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function showMessages($objTemplate,$strErrorMessage,$strInfoMessage,$strConsistMessage,$arrTimeData,$strTimeInfoString,$intNoTime=0) { + // Display info messages + if ($strInfoMessage != "") { + $objTemplate->setVariable("INFOMESSAGE",$strInfoMessage); + $objTemplate->parse('infomessage'); + } + // Display error messages + if ($strErrorMessage != "") { + $objTemplate->setVariable("ERRORMESSAGE",$strErrorMessage); + $objTemplate->parse('errormessage'); + } + // Display time informations + if (($this->intDomainId != 0) && ($intNoTime == 0)) { + foreach($arrTimeData AS $key => $elem) { + if ($key == 'table') { + $objTemplate->setVariable("LAST_MODIFIED_TABLE",translate('Last database update:')." ".$elem.""); + $objTemplate->parse('table_time'); + } else { + $objTemplate->setVariable("LAST_MODIFIED_FILE",translate('Last file change of the configuration target ')." ".$key.": ".$elem.""); + $objTemplate->parse('file_time'); + } + } + if ($strTimeInfoString != "") { + $objTemplate->setVariable("MODIFICATION_STATUS",$strTimeInfoString); + $objTemplate->parse('modification_status'); + } + } + // Display consistency messages + if ($strConsistMessage != "") { + $objTemplate->setVariable("CONSIST_USAGE",$strConsistMessage); + $objTemplate->parse('consistency'); + } + $objTemplate->parse("msgfooter"); + $objTemplate->show("msgfooter"); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Display page footer + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $objTemplate Form template object + // $setFileVersion NagiosQL version + // + // Return values: none + // + /////////////////////////////////////////////////////////////////////////////////////////// + function showFooter($objTemplate,$setFileVersion) { + $objTemplate->setVariable("VERSION_INFO","
NagiosQL $setFileVersion"); + $objTemplate->parse("footer"); + $objTemplate->show("footer"); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // --- HELP functions --- + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Process list view field 2 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameter: $arrData Data array + // $strTableName Table name + // + // Return values: String includung field 2 data + // + /////////////////////////////////////////////////////////////////////////////////////////// + function processField2($arrData,$strTableName) { + $strField = ""; + // Hostdependency table + if ($strTableName == "tbl_hostdependency") { + if ($arrData['dependent_host_name'] != 0) { + $strSQLHost = "SELECT `host_name`, `exclude` FROM `tbl_host` LEFT JOIN `tbl_lnkHostdependencyToHost_DH` ON `id`=`idSlave` + WHERE `idMaster`=".$arrData['id']." ORDER BY `host_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLHost,$arrDataHosts,$intDCHost); + if ($intDCHost != 0) { + foreach($arrDataHosts AS $elem) { + if ($elem['exclude'] == 1) { + $strField .= "H:!".$elem['host_name'].","; + } else { + $strField .= "H:".$elem['host_name'].","; + } + } + } + } + if ($arrData['dependent_hostgroup_name'] != 0) { + $strSQLHost = "SELECT `hostgroup_name`, `exclude` FROM `tbl_hostgroup` LEFT JOIN `tbl_lnkHostdependencyToHostgroup_DH` ON `id`=`idSlave` + WHERE `idMaster`=".$arrData['id']." ORDER BY `hostgroup_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLHost,$arrDataHostgroups,$intDCHostgroup); + if ($intDCHostgroup != 0) { + foreach($arrDataHostgroups AS $elem) { + if ($elem['exclude'] == 1) { + $strField .= "HG:!".$elem['hostgroup_name'].","; + } else { + $strField .= "HG:".$elem['hostgroup_name'].","; + } + } + } + } + } + // Hostescalation table + if ($strTableName == "tbl_hostescalation") { + if ($arrData['host_name'] != 0) { + $strSQLHost = "SELECT `host_name` FROM `tbl_host` LEFT JOIN `tbl_lnkHostescalationToHost` ON `id`=`idSlave` + WHERE `idMaster`=".$arrData['id']." ORDER BY `host_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLHost,$arrDataHosts,$intDCHost); + if ($intDCHost != 0) { + foreach($arrDataHosts AS $elem) { + $strField .= "H:".$elem['host_name'].","; + } + } + } + if ($arrData['hostgroup_name'] != 0) { + $strSQLHost = "SELECT `hostgroup_name` FROM `tbl_hostgroup` LEFT JOIN `tbl_lnkHostescalationToHostgroup` ON `id`=`idSlave` + WHERE `idMaster`=".$arrData['id']." ORDER BY `hostgroup_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLHost,$arrDataHostgroups,$intDCHostgroup); + if ($intDCHostgroup != 0) { + foreach($arrDataHostgroups AS $elem) { + $strField .= "HG:".$elem['hostgroup_name'].","; + } + } + } + } + // Servicedependency table + if ($strTableName == "tbl_servicedependency") { + if ($arrData['dependent_service_description'] == 2) { + $strField .= "*"; + } else if ($arrData['dependent_service_description'] != 0) { + $strSQLService = "SELECT `strSlave` FROM `tbl_lnkServicedependencyToService_DS` WHERE `idMaster`=".$arrData['id']." ORDER BY `strSlave`"; + $booReturn = $this->myDBClass->getDataArray($strSQLService,$arrDataService,$intDCService); + if ($intDCService != 0) { + foreach($arrDataService AS $elem) { + $strField .= $elem['strSlave'].","; + } + } + } + if ($strField == "") { + $strSQLService = "SELECT `servicegroup_name` FROM `tbl_servicegroup` + LEFT JOIN `tbl_lnkServicedependencyToServicegroup_DS` ON `idSlave`=`id` + WHERE `idMaster`=".$arrData['id']." ORDER BY `servicegroup_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLService,$arrDataService,$intDCService); + if ($intDCService != 0) { + foreach($arrDataService AS $elem) { + $strField .= $elem['servicegroup_name'].","; + } + } + } + } + // Serviceescalation table + if ($strTableName == "tbl_serviceescalation") { + if ($arrData['service_description'] == 2) { + $strField .= "*"; + } else if ($arrData['service_description'] != 0) { + $strSQLService = "SELECT `strSlave` FROM `tbl_lnkServiceescalationToService` WHERE `idMaster`=".$arrData['id']; + $booReturn = $this->myDBClass->getDataArray($strSQLService,$arrDataServices,$intDCServices); + if ($intDCServices != 0) { + foreach($arrDataServices AS $elem) { + $strField .= $elem['strSlave'].","; + } + } + } + if ($strField == "") { + $strSQLService = "SELECT `servicegroup_name` FROM `tbl_servicegroup` + LEFT JOIN `tbl_lnkServiceescalationToServicegroup` ON `idSlave`=`id` + WHERE `idMaster`=".$arrData['id']." ORDER BY `servicegroup_name`"; + $booReturn = $this->myDBClass->getDataArray($strSQLService,$arrDataService,$intDCService); + if ($intDCService != 0) { + foreach($arrDataService AS $elem) { + $strField .= $elem['servicegroup_name'].","; + } + } + } + } + // Some string manipulations - remove comma on line end + if (substr($strField,-1) == ',') $strField = substr($strField,0,-1); + return($strField); + } +} +?> \ No newline at end of file diff --git a/functions/data_class.php b/functions/data_class.php new file mode 100644 index 0000000..1bc2608 --- /dev/null +++ b/functions/data_class.php @@ -0,0 +1,1290 @@ +arrSettings = $_SESSION['SETS']; + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Write data to the database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Sends an SQL string to the database server + // + // Parameters: $strSQL SQL Command + // + // Return value: $intDataID Data ID of last inserted dataset + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataInsert($strSQL,&$intDataID) { + // Send the SQL command to the database server + $booReturn = $this->myDBClass->insertData($strSQL); + $intDataID = $this->myDBClass->intLastId; + // Was the SQL command processed successfully? + if ($booReturn) { + $this->processClassMessage(translate('Data were successfully inserted to the data base!')."::",$this->strInfoMessage); + return(0); + } else { + $this->processClassMessage(translate('Error while inserting the data to the data base:')."::".$this->myDBClass->strErrorMessage."::",$this->strErrorMessage); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Delete data from the database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Removes one or more dataset(s) from a table. Optinal a single data ID can be passed + // or the values will be processed through the POST variable $_POST['chbId_n'] where 'n' + // represents the data ID. + // + // This function does not delete relation data! + // + // Parameters: $strTableName Table name + // $_POST[] Form variable (Checkboxes "chbId_n" n=DBId) + // $intDataId Single data ID + // $intTableId Table id for special relations + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataDeleteEasy($strTableName,$intDataId=0) { + // Special rule for tables with "nodelete" cells + if (($strTableName == "tbl_datadomain") || ($strTableName == "tbl_configtarget") || ($strTableName == "tbl_user")) { + $strNoDelete = "AND `nodelete` <> '1'"; + } else { + $strNoDelete = ""; + } + // Delete a single data set + if ($intDataId != 0) { + $strSQL = "DELETE FROM `".$strTableName."` WHERE `id` = $intDataId $strNoDelete"; + $booReturn = $this->myDBClass->insertData($strSQL); + if ($booReturn == false) { + $this->processClassMessage(translate('Delete failed because a database error:')."::".mysql_error()."::",$this->strInfoMessage); + return(1); + } else if ($this->myDBClass->intAffectedRows == 0) { + $this->processClassMessage(translate('No data deleted. Probably the dataset does not exist or it is protected from delete.')."::",$this->strErrorMessage); + return(1); + } else { + $this->strInfoMessage .= translate('Dataset successfully deleted. Affected rows:')." ".$this->myDBClass->intAffectedRows."::"; + $this->writeLog(translate('Delete dataset id:')." $intDataId ".translate('- from table:')." $strTableName ".translate('- with affected rows:')." ".$this->myDBClass->intAffectedRows); + $this->updateStatusTable($strTableName); + return(0); + } + // Delete data sets based on form POST parameter + } else { + $strSQL = "SELECT `id` FROM `".$strTableName."` WHERE 1=1 $strNoDelete"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + $intDeleteCount = 0; + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // Should this data id to be deleted? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + $strSQL = "DELETE FROM `".$strTableName."` WHERE `id` = ".$elem['id']; + $booReturn = $this->myDBClass->insertData($strSQL); + if ($booReturn == false) { + $this->processClassMessage(translate('Delete failed because a database error:')."::".mysql_error()."::",$this->strInfoMessage); + return(1); + } else { + $intDeleteCount = $intDeleteCount + $this->myDBClass->intAffectedRows; + } + } + } + // Process messsages + if ($intDeleteCount == 0) { + $this->processClassMessage(translate('No data deleted. Probably the dataset does not exist or it is protected from delete.')."::",$this->strErrorMessage); + return(1); + } else { + $this->processClassMessage(translate('Dataset successfully deleted. Affected rows:')." ".$intDeleteCount."::",$this->strInfoMessage); + $this->writeLog(translate('Delete data from table:')." $strTableName ".translate('- with affected rows:')." ".$this->myDBClass->intAffectedRows); + $this->updateStatusTable($strTableName); + return(0); + } + } else { + $this->processClassMessage(translate('No data deleted. Probably the dataset does not exist or it is protected from delete.')."::",$this->strErrorMessage); + return(1); + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Delete data from the database with relations + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Removes one or more dataset(s) from a table. Optinal a single data ID can be passed + // or the values will be processed through the POST variable $_POST['chbId_n'] where 'n' + // represents the data ID. + // + // This function does also delete relation data! + // + // Parameters: $strTableName Table name + // $_POST[] Form variable (Checkboxes "chbId_n" n=DBId) + // $intDataId Single data ID + // $intForce Force deletion (1=force, 1=no force) + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataDeleteFull($strTableName,$intDataId=0,$intForce=0) { + // Get write access groups + $strAccess = $this->myVisClass->getAccGroups('write'); + // Get all relations + $this->fullTableRelations($strTableName,$arrRelations); + // Delete a single data set + if ($intDataId != 0) { + $strChbName = "chbId_".$intDataId; + $_POST[$strChbName] = "on"; + } + // Get all datasets + if ($strTableName == 'tbl_group') { + $strSQL = "SELECT `id` FROM `".$strTableName."`"; + } else { + $strSQL = "SELECT `id` FROM `".$strTableName."` WHERE `config_id`=".$this->intDomainId." AND `access_group` IN ($strAccess)"; + } + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + $intDeleteCount = 0; + $strFileMessage = ""; + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // Single ID + if (($intDataId != 0) && ($intDataId != $elem['id'])) continue; + // Should this data id to be deleted? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + // Check if deletion is possible (relations) + if (($this->infoRelation($strTableName,$elem['id'],"id",1) == 0) || ($intForce == 1)) { + // Delete relations + if (!is_array($arrRelations)) $arrRelations = array(); + foreach($arrRelations AS $rel) { + $strSQL = ""; + // Process flags + $arrFlags = explode(",",$rel['flags']); + // Simple 1:n relation + if ($arrFlags[3] == 1) { + $strSQL = "DELETE FROM `".$rel['tableName1']."` WHERE `".$rel['fieldName']."`=".$elem['id']; + } + // Simple 1:1 relation + if ($arrFlags[3] == 0) { + // Delete relation + if ($arrFlags[2] == 0) { + $strSQL = "DELETE FROM `".$rel['tableName1']."` WHERE `".$rel['fieldName']."`=".$elem['id']; + // Set slave to 0 + } else if ($arrFlags[2] == 2) { + $strSQL = "UPDATE `".$rel['tableName1']."` SET `".$rel['fieldName']."`=0 WHERE `".$rel['fieldName']."`=".$elem['id']; + } + } + // Special 1:n relation for variables + if ($arrFlags[3] == 2) { + $strSQL = "SELECT * FROM `".$rel['tableName1']."` WHERE `idMaster`=".$elem['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrData AS $vardata) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$vardata['idSlave']; + $booReturn = $this->myDBClass->insertData($strSQL); + } + } + $strSQL = "DELETE FROM `".$rel['tableName1']."` WHERE `idMaster`=".$elem['id']; + } + // Special 1:n relation for time definitions + if ($arrFlags[3] == 3) { + $strSQL = "DELETE FROM `tbl_timedefinition` WHERE `tipId`=".$elem['id']; + $booReturn = $this->myDBClass->insertData($strSQL); + } + if ($strSQL != "") { + $booReturn = $this->myDBClass->insertData($strSQL); + } + } + // Delete host configuration file + if (($strTableName == "tbl_host") && ($this->intDomainId != 0)) { + $strSQL = "SELECT `host_name` FROM `tbl_host` WHERE `id`=".$elem['id']; + $strHost = $this->myDBClass->getFieldData($strSQL); + $arrConfigId = $this->myConfigClass->getConfigSets(); + if ($arrConfigId != 1) { + $intReturn = 0; + foreach($arrConfigId AS $intConfigId) { + $this->myConfigClass->resConnectType = "none"; + $this->resConnectId = ""; + $intReturn += $this->myConfigClass->moveFile("host",$strHost.".cfg",$intConfigId); + } + if ($intReturn == 0) { + $this->processClassMessage(translate('The assigned, no longer used configuration files were deleted successfully!')."::",$strFileMessage); + $this->writeLog(translate('Host file deleted:')." ".$strHost.".cfg"); + } else { + $strFileMessage .= translate('Errors while deleting the old configuration file - please check!:')."::".$this->myConfigClass->strErrorMessage."::"; + } + } + } + // Delete service configuration file + if (($strTableName == "tbl_service") && ($this->intDomainId != 0)) { + $strSQL = "SELECT `config_name` FROM `tbl_service` WHERE `id`=".$elem['id']; + $strService = $this->myDBClass->getFieldData($strSQL); + $strSQL = "SELECT * FROM `tbl_service` WHERE `config_name` = '$strService'"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($intDataCount == 1) { + $arrConfigId = $this->myConfigClass->getConfigSets(); + if ($arrConfigId != 1) { + $intReturn = 0; + foreach($arrConfigId AS $intConfigId) { + $this->myConfigClass->resConnectType = "none"; + $this->resConnectId = ""; + $intReturn += $this->myConfigClass->moveFile("service",$strService.".cfg",$intConfigId); + } + if ($intReturn == 0) { + $this->processClassMessage(translate('The assigned, no longer used configuration files were deleted successfully!')."::",$strFileMessage); + $this->writeLog(translate('Host file deleted:')." ".$strService.".cfg"); + } else { + $strFileMessage .= translate('Errors while deleting the old configuration file - please check!:')."::".$this->myConfigClass->strErrorMessage."::"; + } + } + } + } + // delete main entry + $strSQL = "DELETE FROM `".$strTableName."` WHERE `id`=".$elem['id']; + $booReturn = $this->myDBClass->insertData($strSQL); + $intDeleteCount++; + } + } + } + // Process messages + if ($intDeleteCount == 0) { + $this->processClassMessage(translate('No data deleted. Probably the dataset does not exist, it is protected from deletion, you do not have write permission or it has relations to other configurations which cannot be deleted. Use the "info" function for detailed informations about relations!')."::",$this->strErrorMessage); + return(1); + } else { + $this->updateStatusTable($strTableName); + $this->processClassMessage(translate('Dataset successfully deleted. Affected rows:')." ".$intDeleteCount."::",$this->strInfoMessage); + $this->writeLog(translate('Delete data from table:')." $strTableName ".translate('- with affected rows:')." ".$intDeleteCount); + $this->processClassMessage($strFileMessage,$this->strInfoMessage); + return(0); + } + } else { + $this->processClassMessage(translate('No data deleted. Probably the dataset does not exist, it is protected from deletion or you do not have write permission.')."::".$this->myDBClass->strErrorMessage,$this->strErrorMessage); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Copy dataset + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Copies one or more records in a data table. Alternatively, an individual record ID + // are specified, or the values of the $_POST['chbId_n'] variable is used where n + // is the record ID. + // + // Parameters: $strTableName Table name + // $strKeyField Key field of the table + // $_POST[] Form variable (check boxes "chbId_n" n=DBId) + // $intDataId Singe data ID to copy + // $intDomainId Target domain ID + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataCopyEasy($strTableName,$strKeyField,$intDataId=0,$intDomainId=-1) { + // Get write access groups + $strAccess = $this->myVisClass->getAccGroups('write'); + // Declare variables + $intError = 0; + $intNumber = 0; + if ($intDomainId == -1) $intDomainId = $this->intDomainId; + // Get all data ID from target table + $strAccWhere = "WHERE `access_group` IN ($strAccess)"; + if (($strTableName == "tbl_user") || ($strTableName == "tbl_group")) $strAccWhere = ""; + $booReturn = $this->myDBClass->getDataArray("SELECT `id` FROM `".$strTableName."` $strAccWhere ORDER BY `id`",$arrData,$intDataCount); + if ($booReturn == false) { + $this->processClassMessage(translate('Error while selecting data from database:')."::".$this->myDBClass->strErrorMessage."::",$this->strErrorMessage); + return(1); + } else if ($intDataCount != 0) { + for ($i=0;$i<$intDataCount;$i++) { + // Skip common domain value + if ($arrData[$i]['id'] == 0) continue; + // Build the name of the form variable + $strChbName = "chbId_".$arrData[$i]['id']; + // If a form variable with this name exists or a matching single data ID was passed + if ((isset($_POST[$strChbName]) && ($intDataId == 0)) || ($intDataId == $arrData[$i]['id'])) { + // Get all data of this data ID + $this->myDBClass->getSingleDataset("SELECT * FROM `".$strTableName."` WHERE `id`=".$arrData[$i]['id'],$arrData[$i]); + // Build a temporary config name + for ($y=1;$y<=$intDataCount;$y++) { + $strNewName = $arrData[$i][$strKeyField]." ($y)"; + if (($strTableName == "tbl_user") || ($strTableName == "tbl_group") || ($strTableName == "tbl_datadomain") || ($strTableName == "tbl_configtarget")) { + $booReturn = $this->myDBClass->getFieldData("SELECT `id` FROM `".$strTableName."` WHERE `".$strKeyField."`='$strNewName'"); + } else { + $booReturn = $this->myDBClass->getFieldData("SELECT `id` FROM `".$strTableName."` WHERE `".$strKeyField."`='$strNewName' AND `config_id`=$intDomainId"); + } + // If the name is unused -> break the loop + if ($booReturn == false) break; + } + // Manually overwrite new name for extinfo tables + if ($strTableName == "tbl_hostextinfo") $strNewName="0"; + if ($strTableName == "tbl_serviceextinfo") $strNewName="0"; + // Build the INSERT command based on the table name + $strSQLInsert = "INSERT INTO `".$strTableName."` SET `".$strKeyField."`='$strNewName',"; + foreach($arrData[$i] AS $key => $value) { + if (($key != $strKeyField) && ($key != "active") && ($key != "last_modified") && ($key != "id") && ($key != "config_id")) { + // manually set some NULL values based on field names + if (($key == "normal_check_interval") && ($value == "")) $value="NULL"; + if (($key == "retry_check_interval") && ($value == "")) $value="NULL"; + if (($key == "max_check_attempts") && ($value == "")) $value="NULL"; + if (($key == "low_flap_threshold") && ($value == "")) $value="NULL"; + if (($key == "high_flap_threshold") && ($value == "")) $value="NULL"; + if (($key == "freshness_threshold") && ($value == "")) $value="NULL"; + if (($key == "notification_interval") && ($value == "")) $value="NULL"; + if (($key == "first_notification_delay") && ($value == "")) $value="NULL"; + if (($key == "check_interval") && ($value == "")) $value="NULL"; + if (($key == "retry_interval") && ($value == "")) $value="NULL"; + // manually set some NULL values based on table name + if (($strTableName == "tbl_serviceextinfo") && ($key == "service_description")) $value="0"; + // Do not copy the password in tbl_user + if (($strTableName == "tbl_user") && ($key == "password")) $value="xxxxxxx"; + // Do not copy nodelete and webserver authentification values in tbl_user + if ($key == "nodelete") $value="0"; + if ($key == "wsauth") $value="0"; + // If the data value is not "NULL", add single quotes to the value + if ($value != "NULL") { + $strSQLInsert .= "`".$key."`='".addslashes($value)."',"; + } else { + $strSQLInsert .= "`".$key."`=".$value.","; + } + } + } + if (($strTableName == "tbl_user") || ($strTableName == "tbl_group") || ($strTableName == "tbl_datadomain") || ($strTableName == "tbl_configtarget")) { + $strSQLInsert .= "`active`='0', `last_modified`=NOW()"; + } else { + $strSQLInsert .= "`active`='0', `config_id`=$intDomainId, `last_modified`=NOW()"; + } + // Insert the master dataset + $intCheck = 0; + $booReturn = $this->myDBClass->insertData($strSQLInsert); + $intMasterId = $this->myDBClass->intLastId; + if ($booReturn == false) $intCheck++; + + // Copy relations + if (($this->tableRelations($strTableName,$arrRelations) != 0) && ($intCheck == 0)){ + foreach ($arrRelations AS $elem) { + // Normal 1:n relation + if ($elem['type'] == "2") { + if ($arrData[$i][$elem['fieldName']] != 0) { + $strSQL = "SELECT `idSlave`, `exclude` FROM `".$elem['linkTable']."` WHERE `idMaster` = ".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelData,$intRelDataCount); + if ($booReturn && ($intRelDataCount != 0)) { + foreach ($arrRelData AS $elem2) { + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` + SET `idMaster`=$intMasterId, `idSlave`=".$elem2['idSlave'].", `exclude`=".$elem2['exclude']; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + // 1:n relation for templates + } else if ($elem['type'] == "3") { + if ($arrData[$i][$elem['fieldName']] == 1) { + $strSQL = "SELECT `idSlave`,`idSort`,`idTable` FROM `".$elem['linkTable']."` WHERE `idMaster`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelData,$intRelDataCount); + if ($booReturn && ($intRelDataCount != 0)) { + foreach ($arrRelData AS $elem2) { + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` + SET `idMaster`=$intMasterId, `idSlave`=".$elem2['idSlave'].", `idTable`=".$elem2['idTable'].", + `idSort`=".$elem2['idSort']; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + // Special relation for free variables + } else if ($elem['type'] == "4") { + if ($arrData[$i][$elem['fieldName']] != 0) { + $strSQL = "SELECT `idSlave` FROM `".$elem['linkTable']."` WHERE `idMaster` = ".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelData,$intRelDataCount); + if ($booReturn && ($intRelDataCount != 0)) { + foreach ($arrRelData AS $elem2) { + // Copy variables and link them to the new master + $strSQL_Var = "SELECT * FROM `tbl_variabledefinition` WHERE `id`=".$elem2['idSlave']; + $booReturn = $this->myDBClass->getDataArray($strSQL_Var,$arrData_Var,$intDC_Var); + if ($booReturn && ($intDC_Var != 0)) { + $strSQL_InsVar = "INSERT INTO `tbl_variabledefinition` + SET `name`='".addslashes($arrData_Var[0]['name'])."', `value`='".addslashes($arrData_Var[0]['value'])."', + `last_modified`=NOW()"; + $booReturn = $this->myDBClass->insertData($strSQL_InsVar); + if ($booReturn == false) $intCheck++; + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` + SET `idMaster`=$intMasterId, `idSlave`=".$this->myDBClass->intLastId; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + } + // 1:n relation for tbl_lnkServicegroupToService + } else if ($elem['type'] == "5") { + if ($arrData[$i][$elem['fieldName']] != 0) { + $strSQL = "SELECT `idSlaveH`,`idSlaveHG`,`idSlaveS` + FROM `".$elem['linkTable']."` WHERE `idMaster`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelData,$intRelDataCount); + if ($booReturn && ($intRelDataCount != 0)) { + foreach ($arrRelData AS $elem2) { + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` SET `idMaster`=$intMasterId, + `idSlaveH`=".$elem2['idSlaveH'].",`idSlaveHG`=".$elem2['idSlaveHG'].", + `idSlaveS`=".$elem2['idSlaveS']; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + // 1:n relation for services + } else if ($elem['type'] == "6") { + if ($arrData[$i][$elem['fieldName']] != 0) { + $strSQL = "SELECT `idSlave`, `strSlave`, `exclude` + FROM `".$elem['linkTable']."` WHERE `idMaster`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelData,$intRelDataCount); + if ($booReturn && ($intRelDataCount != 0)) { + foreach ($arrRelData AS $elem2) { + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` + SET `idMaster`=$intMasterId, `idSlave`=".$elem2['idSlave'].", + `strSlave`='".addslashes($elem2['strSlave'])."', `exclude`=".$elem2['exclude']; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + } + } + // 1:n relation for time definitions + if ($strTableName == "tbl_timeperiod") { + $strSQL = "SELECT * FROM `tbl_timedefinition` WHERE `tipId`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelDataTP,$intRelDataCountTP); + if ($intRelDataCountTP != 0) { + foreach ($arrRelDataTP AS $elem) { + $strSQLRel = "INSERT INTO `tbl_timedefinition` (`tipId`,`definition`,`range`,`last_modified`) + VALUES ($intMasterId,'".addslashes($elem['definition'])."','".addslashes($elem['range'])."',now())"; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + // 1:n relation for groups + if ($strTableName == "tbl_group") { + $strSQL = "SELECT * FROM `".$elem['linkTable']."` WHERE `idMaster`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelDataTP,$intRelDataCountTP); + if ($intRelDataCountTP != 0) { + foreach ($arrRelDataTP AS $elem2) { + $strSQLRel = "INSERT INTO `".$elem['linkTable']."` (`idMaster`,`idSlave`,`read`,`write`,`link`) + VALUES ($intMasterId,'".$elem2['idSlave']."','".$elem2['read']."','".$elem2['write']."','".$elem2['link']."')"; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + // 1:n relation fot service to host connections + if ($strTableName == "tbl_host") { + $strSQL = "SELECT * FROM `tbl_lnkServiceToHost` WHERE `idSlave`=".$arrData[$i]['id']; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrRelDataSH,$intRelDataCountSH); + if ($intRelDataCountSH != 0) { + foreach ($arrRelDataSH AS $elem2) { + $strSQLRel = "INSERT INTO `tbl_lnkServiceToHost` (`idMaster`,`idSlave`,`exclude`) + VALUES ('".$elem2['idMaster']."',$intMasterId,'".$elem2['exclude']."')"; + $booReturn = $this->myDBClass->insertData($strSQLRel); + if ($booReturn == false) $intCheck++; + } + } + } + } + // Write logfile + if ($intCheck != 0) { + // Error + $intError++; + $this->writeLog(translate('Data set copy failed - table [new name]:')." ".$strTableName." [".$strNewName."]"); + $this->processClassMessage(translate('Data set copy failed - table [new name]:')." ".$strTableName." [".$strNewName."]::",$this->strInfoMessage); + } else { + // Success + $this->writeLog(translate('Data set copied - table [new name]:')." ".$strTableName." [".$strNewName."]"); + $this->processClassMessage(translate('Data set copied - table [new name]:')." ".$strTableName." [".$strNewName."]::",$this->strInfoMessage); + } + $intNumber++; + } + } + // Error processing + if ($intNumber > 0) { + if ($intError == 0) { + // Success + $this->processClassMessage(translate('Data were successfully inserted to the data base!')."::",$this->strInfoMessage); + $this->updateStatusTable($strTableName); + return(0); + } else { + // Error + $this->processClassMessage(translate('Error while inserting the data to the data base:')."::".$this->myDBClass->strErrorMessage,$this->strInfoMessage); + return(1); + } + } else { + $this->processClassMessage(translate('No dataset copied. Maybe the dataset does not exist or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } + } else { + $this->processClassMessage(translate('No dataset copied. Maybe the dataset does not exist or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Activate datasets + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Activates one or many datasets in the table be setting 'active' to '1'. Alternatively, + // a single record ID can be specified or evaluated by the values of $_POST['chbId_n'] + // passed parameters, where n is the record ID must match. + // + // This function only modifies the data from a single table! + // + // Parameters: $strTableName table name + // $_POST[] form output (checkboxes "chbId_n" n=DBId) + // $intDataId Individual record ID, which is to be activate + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataActivate($strTableName,$intDataId = 0) { + // Get write access groups + $strAccess = $this->myVisClass->getAccGroups('write'); + // Activate a single dataset + if ($intDataId != 0) { + $strChbName = "chbId_".$intDataId; + $_POST[$strChbName] = "on"; + } + // Activate datasets + $strSQL = "SELECT `id` FROM `".$strTableName."` WHERE `config_id`=".$this->intDomainId." AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + $intActivateCount = 0; + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // was the current record is marked for activate? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + // Update dataset + if (($strTableName == "tbl_service") || ($strTableName == "tbl_host")) { + $strSQL = "UPDATE `".$strTableName."` SET `active`='1', `last_modified`=now() WHERE `id`=".$elem['id']; + } else { + $strSQL = "UPDATE `".$strTableName."` SET `active`='1' WHERE `id`=".$elem['id']; + } + $booReturn = $this->myDBClass->insertData($strSQL); + $intActivateCount++; + } + } + // Process informations + if ($intActivateCount == 0) { + $this->processClassMessage(translate('No dataset activated. Maybe the dataset does not exist, no dataset was selected or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } else { + $this->updateStatusTable($strTableName); + $this->processClassMessage(translate('Dataset successfully activated. Affected rows:')." ".$intActivateCount."::",$this->strInfoMessage); + $this->writeLog(translate('Activate dataset from table:')." $strTableName ".translate('- with affected rows:')." ".$this->myDBClass->intAffectedRows); + return(0); + } + } else { + $this->processClassMessage(translate('No dataset activated. Maybe the dataset does not exist or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Deactivate datasets + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Deactivates one or many datasets in the table be setting 'active' to '0'. Alternatively, + // a single record ID can be specified or evaluated by the values of $_POST['chbId_n'] + // passed parameters, where n is the record ID must match. + // + // This function only modifies the data from a single table! + // + // Parameters: $strTableName table name + // $_POST[] form output (checkboxes "chbId_n" n=DBId) + // $intDataId Individual record ID, which is to be activate + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataDeactivate($strTableName,$intDataId = 0) { + // Get write access groups + $strAccess = $this->myVisClass->getAccGroups('write'); + // Dectivate a single dataset + if ($intDataId != 0) { + $strChbName = "chbId_".$intDataId; + $_POST[$strChbName] = "on"; + } + // Activate datasets + $strSQL = "SELECT `id` FROM `".$strTableName."` WHERE `config_id`=".$this->intDomainId." AND `access_group` IN ($strAccess)"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + $intActivateCount = 0; + foreach ($arrData AS $elem) { + $strChbName = "chbId_".$elem['id']; + // was the current record is marked for activate? + if (isset($_POST[$strChbName]) && ($_POST[$strChbName] == "on")) { + // Verify that the dataset can be deactivated + if ($this->infoRelation($strTableName,$elem['id'],"id",1) == 0) { + // Update dataset + if (($strTableName == "tbl_service") || ($strTableName == "tbl_host")) { + $strSQL = "UPDATE `".$strTableName."` SET `active`='0', `last_modified`=now() WHERE `id`=".$elem['id']; + } else { + $strSQL = "UPDATE `".$strTableName."` SET `active`='0' WHERE `id`=".$elem['id']; + } + $booReturn = $this->myDBClass->insertData($strSQL); + $intActivateCount++; + } + } + } + // Process informations + if ($intActivateCount == 0) { + $this->processClassMessage(translate('No dataset deactivated. Maybe the dataset does not exist, it is protected from deactivation, no dataset was selected or you do not have write permission. Use the "info" function for detailed informations about relations!')."::",$this->strErrorMessage); + return(1); + } else { + $this->updateStatusTable($strTableName); + $this->processClassMessage(translate('Dataset successfully deactivated. Affected rows:')." ".$intActivateCount."::",$this->strInfoMessage); + $this->writeLog(translate('Activate dataset from table:')." $strTableName ".translate('- with affected rows:')." ".$this->myDBClass->intAffectedRows); + return(0); + } + } else { + $this->processClassMessage(translate('No dataset deactivated. Maybe the dataset does not exist or you do not have write permission.')."::",$this->strErrorMessage); + return(1); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Write log book + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Saves a given string to the logbook + // + // Parameters: $strLogMessage Message string + // $_SESSION['username'] User name + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeLog($strLogMessage) { + // Write string to database + if (isset($_SERVER) && isset($_SERVER["REMOTE_ADDR"])) { + // Webinterface + $strUserName = (isset($_SESSION['username']) && ($_SESSION['username'] != "")) ? $_SESSION['username'] : "unknown"; + $strDomain = $this->myDBClass->getFieldData("SELECT `domain` FROM `tbl_datadomain` WHERE `id`=".$this->intDomainId); + $booReturn = $this->myDBClass->insertData("INSERT INTO `tbl_logbook` SET `user`='".$strUserName."',`time`=NOW(), `ipadress`='".$_SERVER["REMOTE_ADDR"]."', `domain`='$strDomain', `entry`='".addslashes($strLogMessage)."'"); + if ($booReturn == false) return(1); + return(0); + } else { + // Scriptinginterface + $strUserName = "scripting"; + if (isset($_SERVER['USER'])) $strUserName .= " - ".$_SERVER['USER']; + $strDomain = $this->myDBClass->getFieldData("SELECT `domain` FROM `tbl_datadomain` WHERE `id`=".$this->intDomainId); + if (isset($_SERVER["HOSTNAME"])) { + $booReturn = $this->myDBClass->insertData("INSERT INTO `tbl_logbook` SET `user`='".$strUserName."',`time`=NOW(), `ipadress`='".$_SERVER["HOSTNAME"]."', `domain`='$strDomain', `entry`='".addslashes($strLogMessage)."'"); + } else if (isset($_SERVER["SSH_CLIENT"])) { + $arrSSHClient = explode(" ",$_SERVER["SSH_CLIENT"]); + $booReturn = $this->myDBClass->insertData("INSERT INTO `tbl_logbook` SET `user`='".$strUserName."',`time`=NOW(), `ipadress`='".$arrSSHClient[0]."', `domain`='$strDomain', `entry`='".addslashes($strLogMessage)."'"); + } else { + $booReturn = $this->myDBClass->insertData("INSERT INTO `tbl_logbook` SET `user`='".$strUserName."',`time`=NOW(), `ipadress`='unknown', `domain`='$strDomain', `entry`='".addslashes($strLogMessage)."'"); + } + if ($booReturn == false) return(1); + return(0); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Write relations to the database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts any necessary dataset for an 1:n (optional 1:n:n) relation to the + // database table + // + // Parameters: $strTable Database table name + // $intMasterId Data ID from master table + // $arrSlaveId Array with all data IDs from slave table + // $intMulti 0 = for 1:n relations + // 1 = for 1:n:n relations + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataInsertRelation($strTable,$intMasterId,$arrSlaveId,$intMulti=0) { + // Walk through the slave data ID array + foreach($arrSlaveId AS $elem) { + // Pass empty and '*' values + if ($elem == '0') continue; + if ($elem == '*') continue; + // Process exclude values + if (substr($elem,0,1) == "e") { + $elem = str_replace("e","",$elem); + $intExclude = 1; + } else { + $intExclude = 0; + } + // Define the SQL statement + if ($intMulti != 0) { + $arrValues = ""; + $arrValues = explode("::",$elem); + $strSQL = "INSERT INTO `".$strTable."` SET `idMaster`=$intMasterId, `idSlaveH`=".$arrValues[0].", + `idSlaveHG`=".$arrValues[1].", `idSlaveS`=".$arrValues[2].", `exclude`=$intExclude"; + } else { + if (($strTable == 'tbl_lnkServicedependencyToService_DS') || + ($strTable == 'tbl_lnkServicedependencyToService_S') || + ($strTable == 'tbl_lnkServiceescalationToService')) { + // Get service description + $strService = $this->myDBClass->getFieldData("SELECT `service_description` FROM `tbl_service` WHERE id=$elem"); + $strSQL = "INSERT INTO `".$strTable."` SET `idMaster`=$intMasterId, `idSlave`=$elem, + `strSlave`='".addslashes($strService)."', `exclude`=$intExclude"; + } else if (($strTable != 'tbl_lnkTimeperiodToTimeperiod') && ($strTable != 'tbl_lnkDatadomainToConfigtarget')) { + $strSQL = "INSERT INTO `".$strTable."` SET `idMaster`=$intMasterId, `idSlave`=$elem, `exclude`=$intExclude"; + } else { + $strSQL = "INSERT INTO `".$strTable."` SET `idMaster`=$intMasterId, `idSlave`=$elem"; + } + } + // Insert data + $intReturn = $this->dataInsert($strSQL,$intDataID); + if ($intReturn != 0) return(1); + } + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Update relations in the database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Update the datasets for 1:n (optional 1:n:m) relations in the database table + // + // Parameters: $strTable Database table name + // $intMasterId Data ID from master table + // $arrSlaveId Array with all data IDs from slave table + // $intMulti 0 = for 1:n relations + // 1 = for 1:n:n relations + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataUpdateRelation($strTable,$intMasterId,$arrSlaveId,$intMulti=0) { + // Remove any old relations + $intReturn1 = $this->dataDeleteRelation($strTable,$intMasterId); + if ($intReturn1 != 0) return(1); + // Insert the new relations + $intReturn2 = $this->dataInsertRelation($strTable,$intMasterId,$arrSlaveId,$intMulti); + if ($intReturn2 != 0) return(1); + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Remove relations from the database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Removes any relation from the database + // + // Parameters: $strTable Database table name + // $intMasterId Data ID from master table + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dataDeleteRelation($strTable,$intMasterId) { + // Define the SQL statement + $strSQL = "DELETE FROM `".$strTable."` WHERE `idMaster`=$intMasterId"; + // Send statement + $intReturn = $this->dataInsert($strSQL,$intDataID); + if ($intReturn != 0) return(1); + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Scan database for relations + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Searches any relation in the database and returns them as relation information + // + // Parameters: $strTable Database table name + // $intMasterId Data ID from master table + // $strMasterfield Info field name from master table + // $intReporting Output as text - 0=yes, 1=no + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function infoRelation($strTable,$intMasterId,$strMasterfield,$intReporting=0) { + $intReturn = $this->fullTableRelations($strTable,$arrRelations); + $intDeletion = 0; + if ($intReturn == 1) { + // Get master field data + $strNewMasterfield = str_replace(',','`,`',$strMasterfield); + $strSQL = "SELECT `".$strNewMasterfield."` FROM `".$strTable."` WHERE `id` = $intMasterId"; + $this->myDBClass->getSingleDataset($strSQL,$arrSource); + if (substr_count($strMasterfield,",") != 0) { + $arrTarget = explode(",",$strMasterfield); + $strName = $arrSource[$arrTarget[0]]."-".$arrSource[$arrTarget[1]]; + } else { + $strName = $arrSource[$strMasterfield]; + } + $this->strInfoMessage .= "".translate("Relation information for ").$strName.translate(" of table ").$strTable.":::"; + $this->strInfoMessage .= ""; + // Walk through relations + foreach ($arrRelations AS $elem) { + // Process flags + $arrFlags = explode(",",$elem['flags']); + if ($elem['fieldName'] == "check_command") { + $strSQL = "SELECT * FROM `".$elem['tableName1']."` WHERE SUBSTRING_INDEX(`".$elem['fieldName']."`,'!',1)= $intMasterId"; + } else { + $strSQL = "SELECT * FROM `".$elem['tableName1']."` WHERE `".$elem['fieldName']."`= $intMasterId"; + } + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + // Take only used relations + if ($booReturn && ($intDataCount != 0)) { + // Relation type + if ($arrFlags[3] == 1) { + foreach ($arrData AS $data) { + if ($elem['fieldName'] == "idMaster") { + $strRef = "idSlave"; + // Process special tables + if ($elem['target1'] == "tbl_service") { + if ($elem['tableName1'] == "tbl_lnkServicegroupToService") { + $strRef = "idSlaveS"; + } + } else if ($elem['target1'] == "tbl_host") { + if ($elem['tableName1'] == "tbl_lnkServicegroupToService") { + $strRef = "idSlaveH"; + } + } else if ($elem['target1'] == "tbl_hostgroup") { + if ($elem['tableName1'] == "tbl_lnkServicegroupToService") { + $strRef = "idSlaveHG"; + } + } + } else { + $strRef = "idMaster"; + } + // Get data + $strSQL = "SELECT * FROM `".$elem['tableName1']."` + LEFT JOIN `".$elem['target1']."` ON `".$strRef."` = `id` + WHERE `".$elem['fieldName']."` = ".$data[$elem['fieldName']]." + AND `".$strRef."`=".$data[$strRef]; + $this->myDBClass->getSingleDataset($strSQL,$arrDSTarget); + if (substr_count($elem['targetKey'],",") != 0) { + $arrTarget = explode(",",$elem['targetKey']); + $strTarget = $arrDSTarget[$arrTarget[0]]."-".$arrDSTarget[$arrTarget[1]]; + } else { + $strTarget = $arrDSTarget[$elem['targetKey']]; + } + // If the field is market as "required", check for any other entries + if ($arrFlags[0] == 1) { + $strSQL = "SELECT * FROM `".$elem['tableName1']."` + WHERE `".$strRef."` = ".$arrDSTarget[$strRef]; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDSCount,$intDCCount); + if ($booReturn && ($intDCCount > 1)) { + $this->strInfoMessage .= translate("Relation to ").$elem['target1'].translate(", entry ").$strTarget." - ".translate("deletion possible")."::"; + } else { + $this->strInfoMessage .= translate("Relation to ").$elem['target1'].translate(", entry ").$strTarget." - ".translate("deletion not possible")."::"; + $intDeletion = 1; + } + } else { + $this->strInfoMessage .= translate("Relation to ").$elem['target1'].translate(", entry ").$strTarget." - ".translate("deletion possible")."::"; + } + } + } else if ($arrFlags[3] == 0) { + // Fetch remote entry + $strSQL = "SELECT * FROM `".$elem['tableName1']."` WHERE `".$elem['fieldName']."`=$intMasterId"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataCheck,$intDCCheck); + if ($booReturn && ($intDCCheck != 0)) { + foreach ($arrDataCheck AS $data) { + if (substr_count($elem['targetKey'],",") != 0) { + $arrTarget = explode(",",$elem['targetKey']); + $strTarget = $data[$arrTarget[0]]."-".$data[$arrTarget[1]]; + } else { + $strTarget = $data[$elem['targetKey']]; + } + if ($arrFlags[0] == 1) { + $this->strInfoMessage .= translate("Relation to ").$elem['tableName1'].translate(", entry ").$strTarget." - ".translate("deletion not possible")."::"; + $intDeletion = 1; + } else { + $this->strInfoMessage .= translate("Relation to ").$elem['tableName1'].translate(", entry ").$strTarget." - ".translate("deletion possible")."::"; + } + } + } + } + } + } + $this->strInfoMessage .= "::"; + } + if ($intReporting == 1) $this->strInfoMessage = ""; + return($intDeletion); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Update the status table + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Update the date inside the status table (used for last modified date) + // + // Parameters: $strTable Table name + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function updateStatusTable($strTable) { + // Does the entry exist + $strSQL = "SELECT * FROM `tbl_tablestatus` WHERE `tableName`='$strTable' AND `domainId`=".$this->intDomainId; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn && ($intDC != 0)) { + $strSQL = "UPDATE `tbl_tablestatus` SET `updateTime`=NOW() WHERE `tableName`='$strTable' AND `domainId`=".$this->intDomainId; + $booReturn = $this->dataInsert($strSQL,$intDataID); + if ($booReturn) return(0); + } else if ($booReturn) { + $strSQL = "INSERT INTO `tbl_tablestatus` SET `updateTime`=NOW(), `tableName`='$strTable', `domainId`=".$this->intDomainId; + $booReturn = $this->dataInsert($strSQL,$intDataID); + if ($booReturn) return(0); + } + return(1); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get relation data for a table + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Returns an array of all datafields of a table, which has an 1:1 or 1:n relation + // to anothe table. + // + // Parameters: $strTable Table name + // + // Link type: 1 -> 1:1 Relation + // 2 -> 1:n Relation + // 3 -> 1:n Relation for templates + // 4 -> 1:n Relation for free variables + // + // Return values: $arrRelations Array with relations + // 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function tableRelations($strTable,&$arrRelations) { + // Define variable + $arrRelations = ""; + // Get relation data + $strSQL = "SELECT * FROM tbl_relationinformation WHERE master='$strTable' AND fullRelation=0"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn && ($intDC != 0)) { + foreach ($arrData AS $elem) { + $arrRelations[] = array('tableName1' => $elem['tableName1'], 'tableName2' => $elem['tableName2'], + 'fieldName' => $elem['fieldName'], 'linkTable' => $elem['linkTable'], + 'target1' => $elem['target1'], 'target2' => $elem['target2'], + 'type' => $elem['type']); + } + return(1); + } else { + return(0); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get full relation data for a table + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Returns an array with any data fields from a table with existing relations to another + // table. This function returns also passive relations which are not used in + // configurations + // + // This function is used for a full deletion of a configuration entry or to find out + // if a configuration is used in another way. + // + // Parameters: $strTable Table name + // + // Data array: tableName Table include the relation data + // fieldName Field name include the relation data + // flags Pos 1 -> 0=Normal field / 1=Required field (field type) + // Pos 2 -> 0=delete / 1=keep data / 2=set to 0 (normal deletion option) + // Pos 3 -> 0=delete / 2=set to 0 (force deletion option) + // Pos 4 -> 0=1:1 / 1=1:n / (relation type) + // 2=1:n (variables) / 3=1:n (timedef) + // + // + // Return values: $arrRelations Array with relations + // 0 = no field with relation + // 1 = at least one field with relation + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function fullTableRelations($strTable,&$arrRelations) { + // Define variable + $arrRelations = ""; + // Get relation data + $strSQL = "SELECT * FROM tbl_relationinformation WHERE master='$strTable' AND fullRelation=1"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booReturn && ($intDC != 0)) { + foreach ($arrData AS $elem) { + $arrRelations[] = array('tableName1' => $elem['tableName1'], 'fieldName' => $elem['fieldName'], + 'target1' => $elem['target1'], 'targetKey' => $elem['targetKey'], + 'flags' => $elem['flags']); + } + return(1); + } else { + return(0); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Update configuration hash + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Updates the hash field im some configuration objects + // + // Parameters: $strTable Table name + // $intId Data ID + // + // Return values: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function updateHash($strTable,$intId) { + $strRawString = ""; + if ($strTable == "tbl_service") { + // Get any hosts and host_groups + $strSQL = "SELECT `host_name` AS `item_name` FROM `tbl_host` LEFT JOIN `tbl_lnkServiceToHost` ON `idSlave`=`id` WHERE `idMaster`=".$intId; + $strSQL .= " UNION SELECT `hostgroup_name` AS `item_name` FROM `tbl_hostgroup` LEFT JOIN `tbl_lnkServiceToHostgroup` ON `idSlave`=`id` + WHERE `idMaster`=".$intId." ORDER BY `item_name`"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + foreach ($arrData AS $elem) { + $strRawString .= $elem['item_name'].","; + } + } + $strSQL = "SELECT * FROM `tbl_service` WHERE `id`=".$intId; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + if ($arrData[0]['service_description'] != "") $strRawString .= $arrData[0]['service_description'].","; + if ($arrData[0]['display_name'] != "") $strRawString .= $arrData[0]['display_name'].","; + if ($arrData[0]['check_command'] != "") { + $arrField = explode("!",$arrData[0]['check_command']); + $strCommand = strchr($arrData[0]['check_command'],"!"); + $strSQLRel = "SELECT `command_name` FROM `tbl_command` + WHERE `id`=".$arrField[0]; + $strName = $this->myDBClass->getFieldData($strSQLRel); + $strRawString .= $strName.$strCommand.","; + } + } + } + if (($strTable == "tbl_hostdependency") || ($strTable == "tbl_servicedependency")) { + // Get * values + $strSQL = "SELECT * FROM `".$strTable."` WHERE `id`=".$intId; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + if (isset($arrData[0]['dependent_host_name']) && ($arrData[0]['dependent_host_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['dependent_hostgroup_name']) && ($arrData[0]['dependent_hostgroup_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['host_name']) && ($arrData[0]['host_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['hostgroup_name']) && ($arrData[0]['hostgroup_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['dependent_service_description']) && ($arrData[0]['dependent_service_description'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['service_description']) && ($arrData[0]['service_description'] == 2)) $strRawString .= "any,"; + } + if ($strTable == "tbl_hostdependency") { + // Get any hosts and host_groups + $strSQL = "SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkHostdependencyToHost_DH` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkHostdependencyToHostgroup_DH` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkHostdependencyToHost_H` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkHostdependencyToHostgroup_H` ON `idSlave`=`id` WHERE `idMaster`=".$intId; + } + if ($strTable == "tbl_servicedependency") { + // Get any hosts and host_groups + $strSQL = "SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkServicedependencyToHost_DH` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkServicedependencyToHostgroup_DH` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkServicedependencyToHost_H` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkServicedependencyToHostgroup_H` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `strSlave` AS `item_name`, exclude FROM `tbl_lnkServicedependencyToService_DS` + WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `strSlave` AS `item_name`, exclude FROM `tbl_lnkServicedependencyToService_S` + WHERE `idMaster`=".$intId." "; + } + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 0) { + $strRawString .= $elem['item_name'].","; + } else { + $strRawString .= "not_".$elem['item_name'].","; + } + } + $strRawString = substr($strRawString,0,-1); + } + } + if (($strTable == "tbl_hostescalation") || ($strTable == "tbl_serviceescalation")) { + // Get * values + $strSQL = "SELECT * FROM `".$strTable."` WHERE `id`=".$intId; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + if (isset($arrData[0]['host_name']) && ($arrData[0]['host_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['hostgroup_name']) && ($arrData[0]['hostgroup_name'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['contacts']) && ($arrData[0]['contacts'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['contact_groups']) && ($arrData[0]['contact_groups'] == 2)) $strRawString .= "any,"; + if (isset($arrData[0]['service_description']) && ($arrData[0]['service_description'] == 2)) $strRawString .= "any,"; + + } + // Get any hosts, host_groups, contacts and contact_groups + if ($strTable == "tbl_hostescalation") { + $strSQL = "SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkHostescalationToHost` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkHostescalationToHostgroup` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `contact_name` AS `item_name`, exclude FROM `tbl_contact` + LEFT JOIN `tbl_lnkHostescalationToContact` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `contactgroup_name` AS `item_name`, exclude FROM `tbl_contactgroup` + LEFT JOIN `tbl_lnkHostescalationToContactgroup` ON `idSlave`=`id` WHERE `idMaster`=".$intId; + } + if ($strTable == "tbl_serviceescalation") { + $strSQL = "SELECT `host_name` AS `item_name`, exclude FROM `tbl_host` + LEFT JOIN `tbl_lnkServiceescalationToHost` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `hostgroup_name` AS `item_name`, exclude FROM `tbl_hostgroup` + LEFT JOIN `tbl_lnkServiceescalationToHostgroup` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `contact_name` AS `item_name`, exclude FROM `tbl_contact` + LEFT JOIN `tbl_lnkServiceescalationToContact` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `contactgroup_name` AS `item_name`, exclude FROM `tbl_contactgroup` + LEFT JOIN `tbl_lnkServiceescalationToContactgroup` ON `idSlave`=`id` WHERE `idMaster`=".$intId." "; + $strSQL .= "UNION ALL SELECT `strSlave` AS `item_name`, exclude FROM `tbl_lnkServiceescalationToService` + WHERE `idMaster`=".$intId; + } + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + foreach ($arrData AS $elem) { + if ($elem['exclude'] == 0) { + $strRawString .= $elem['item_name'].","; + } else { + $strRawString .= "not_".$elem['item_name'].","; + } + } + $strRawString = substr($strRawString,0,-1); + } + } + if ($strTable == "tbl_serviceextinfo") { + // Get any hosts and host_groups + $strSQL = "SELECT `tbl_host`.`host_name` AS `item_name` FROM `tbl_host` + LEFT JOIN `tbl_serviceextinfo` ON `tbl_host`.`id`=`tbl_serviceextinfo`.`host_name` WHERE `tbl_serviceextinfo`.`id`=".$intId." "; + $strSQL .= "UNION SELECT `tbl_service`.`service_description` AS `item_name` FROM `tbl_service` + LEFT JOIN `tbl_serviceextinfo` ON `tbl_service`.`id`=`tbl_serviceextinfo`.`service_description` WHERE `tbl_serviceextinfo`.`id`=".$intId." + ORDER BY `item_name`"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + foreach ($arrData AS $elem) { + $strRawString .= $elem['item_name'].","; + } + $strRawString = substr($strRawString,0,-1); + } + } + // Remove blanks + while (substr_count($strRawString," ") != 0) { + $strRawString = str_replace(" ","",$strRawString); + } + // Sort hash string + $arrTemp = explode(",",$strRawString); + sort($arrTemp); + $strRawString = implode(",",$arrTemp); + // Update has in database + $strSQL = "UPDATE `".$strTable."` SET `import_hash`='".sha1($strRawString)."' WHERE `id`='$intId'"; + $intReturn = $this->dataInsert($strSQL,$intDataID); + //echo "Hash: ".$strRawString." --> ".sha1($strRawString)."
"; + return($intReturn); + } + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Processing message strings + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Merge message strings and check for duplicate messages + // + // Parameters: $strNewMessage Message to add + // $strSeparate Separate string (
or \n) + // + // Return value: &$strOldMessage Modified message string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function processClassMessage($strNewMessage,&$strOldMessage) { + $strNewMessage = str_replace("::::","::",$strNewMessage); + if (($strOldMessage != "") && ($strNewMessage != "")) { + if (substr_count($strOldMessage,$strNewMessage) == 0) { + $strOldMessage .= $strNewMessage; + } + } else { + $strOldMessage .= $strNewMessage; + } + // Reset message variable (prevent duplicates) + $strNewMessage = ""; + } +} +?> \ No newline at end of file diff --git a/functions/import_class.php b/functions/import_class.php new file mode 100644 index 0000000..89e6eb6 --- /dev/null +++ b/functions/import_class.php @@ -0,0 +1,1459 @@ +arrSettings = $_SESSION['SETS']; + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Data import from file + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Import a config file and writes the values to the database + // + // Parameters: $strFileName Import file name + // $intConfigId Configuration set id + // $intOverwrite 0 = Do not replace existing data + // 1 = Replace existing data in tables + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function fileImport($strFileName,$intConfigId,$intOverwrite=0) { + // Define variables + $intBlock = 0; + $intRemoveTmp = 0; + $strFileName = trim($strFileName); + $intReturn = $this->myConfigClass->getConfigData($intConfigId,"method",$intMethod); + if ($intReturn != 0) { $this->strErrorMessage .= translate('Unable to get configuration data:')." method::"; return(1); } + // Read import file + // Local file system + if ($intMethod == 1) { + if (!is_readable($strFileName)) { + $this->strErrorMessage .= translate('Cannot open the data file (check the permissions)!')." ".$strFileName."::"; + return(1); + } + // FTP access + } else if ($intMethod == 2) { + // Open ftp connection + $intReturn = $this->myConfigClass->getFTPConnection($intConfigId); + if ($intReturn != 0) { $this->strErrorMessage .= $this->myConfigClass->strErrorMessage; return(1); } + // Transfer file from remote server to a local temp file + if (isset($this->arrSettings['path']) && isset($this->arrSettings['path']['tempdir'])) { + $strConfigFile = tempnam($this->arrSettings['path']['tempdir'], 'nagiosql_imp'); + } else { + $strConfigFile = tempnam(sys_get_temp_dir(), 'nagiosql_imp'); + } + if (!ftp_get($this->myConfigClass->resConnectId,$strConfigFile,$strFileName,FTP_ASCII)) { + $this->strErrorMessage .= translate('Cannot receive the configuration file (FTP connection)!')."::";; + ftp_close($conn_id); + return(1); + } + $intRemoveTmp = 1; + $strFileName = $strConfigFile; + // SSH Access + } else if ($intMethod == 3) { + // Open ssh connection + $intReturn = $this->myConfigClass->getSSHConnection($intConfigId); + if ($intReturn != 0) { $this->strErrorMessage .= $this->myConfigClass->strErrorMessage; return(1); } + // Transfer file from remote server to a local temp file + if (isset($this->arrSettings['path']) && isset($this->arrSettings['path']['tempdir'])) { + $strConfigFile = tempnam($this->arrSettings['path']['tempdir'], 'nagiosql_imp'); + } else { + $strConfigFile = tempnam(sys_get_temp_dir(), 'nagiosql_imp'); + } + if (!ssh2_scp_recv($this->myConfigClass->resConnectId,$strFileName,$strConfigFile)) { + $this->strErrorMessage .= translate('Cannot receive the configuration file (SSH connection)!')."::";; + return(1); + } + $intRemoveTmp = 1; + $strFileName = $strConfigFile; + } + // Open and read config file + if (file_exists($strFileName) && is_readable($strFileName)) { + $resFile = fopen($strFileName,"r"); + $intMultiple = 0; + while($resFile && !feof($resFile)) { + $strConfLine = fgets($resFile); + // Remove blank chars + $strConfLine = trim($strConfLine); + // Process multi-line configuration instructions + if (substr($strConfLine,-1) == '\\') { + if ($intMultiple == 0) { + $strConfLineTemp = str_replace("\\",",",$strConfLine); + $intMultiple = 1; + } else { + $strConfLineTemp .= str_replace("\\",",",$strConfLine); + } + continue; + } + if ($intMultiple == 1) { + $strConfLine = $strConfLineTemp.$strConfLine; + $intMultiple = 0; + } + // Find NAGIOSQL variable + if (substr_count($strConfLine,"#NAGIOSQL_") != 0) { + $strConfLine = str_replace("#NAGIOSQL_CONFIG_NAME","_NAGIOSQL_CONFIG_NAME",$strConfLine); + } + // Pass comments and empty lines + if (substr($strConfLine,0,1) == "#") continue; + if ($strConfLine == "") continue; + if (($intBlock == 1) && ($strConfLine == "{")) continue; + // Process line (remove blanks and cut comments) + $strLineTmp = str_replace("\;",":semi:",$strConfLine); + $arrLine = preg_split("/[\s]+/", $strLineTmp); + $arrTemp = explode(";",implode(" ",$arrLine)); + $strNewLine = trim($arrTemp[0]); + $strNewLine = str_replace(":semi:","\;",$strNewLine); + // Find block begin + if ($arrLine[0] == "define") { + $intBlock = 1; + $strBlockKey = str_replace("{","",$arrLine[1]); + $arrData = ""; + continue; + } + // Store the block data to an array + if (($intBlock == 1) && ($arrLine[0] != "}")) { + $strExclude = "template_name,alias,name,use"; + if (($strBlockKey == "timeperiod") && (!in_array($arrLine[0],explode(",",$strExclude)))) { + $arrNewLine = explode(" ",$strNewLine); + $strTPKey = str_replace(" ".$arrNewLine[count($arrNewLine)-1],"",$strNewLine); + $strTPValue = $arrNewLine[count($arrNewLine)-1]; + $arrData[$strTPKey] = array("key" => $strTPKey, + "value" => $strTPValue); + } else { + $key = $arrLine[0]; + $value = str_replace($arrLine[0]." ","",$strNewLine); + // Special retry_check_interval, normal_check_interval + if ($key == "retry_check_interval") $key = "retry_interval"; + if ($key == "normal_check_interval") $key = "check_interval"; + $arrData[$arrLine[0]] = array("key" => $key, "value" => $value); + } + } + // Process data at end of block + if ((substr_count($strConfLine,"}") == 1) && (isset($arrData)) && (is_array($arrData))) { + $intBlock = 0; + $intReturn = $this->importTable($strBlockKey,$arrData,$intOverwrite,$strFileName); + if ($intReturn != 0) { if ($intRemoveTmp == 1) unlink($strFileName); return(1); } + } else if (!isset($arrData)) { + $this->strErrorMessage .= translate('No valid configuration found:')." ".$strFileName."::"; + if ($intRemoveTmp == 1) unlink($strFileName); + return(1); + } + } + if ($intRemoveTmp == 1) { + unlink($strFileName); + } + } else { + $this->strErrorMessage .= translate('Import file does not exist or is not readable:')." ".$strFileName."::";; + return(1); + } + return(0); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Import table + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Writes the block data to the database + // + // Parameters: $strBlockKey Config key (from define) + // $arrImportData Imported block data + // $strFileName Name of config file + // $intOverwrite 0 = Do not replace existing data + // 1 = Replace existing data in tables + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function importTable($strBlockKey,$arrImportData,$intOverwrite,$strFileName) { + // Define variables + $intExists = 0; + $intInsertRelations = 0; + $intInsertVariables = 0; + $intIsTemplate = 0; + $strVCValues = ""; + $strRLValues = ""; + $strVWValues = ""; + $strVIValues = ""; + $intWriteConfig = 0; + $strWhere = ""; + $strSkip = ""; + $this->strList1 = ""; + $this->strList2 = ""; + // Block data from template or real configuration? + if (array_key_exists("name",$arrImportData) && (isset($arrImportData['register']) && ($arrImportData['register']['value'] == 0))) { + $intIsTemplate = 1; + } + // Define table name + if ($intIsTemplate == 0) { + switch($strBlockKey) { + case "command": $strTable = "tbl_command"; $strKeyField = "command_name"; break; + case "contactgroup": $strTable = "tbl_contactgroup"; $strKeyField = "contactgroup_name"; break; + case "contact": $strTable = "tbl_contact"; $strKeyField = "contact_name"; break; + case "timeperiod": $strTable = "tbl_timeperiod"; $strKeyField = "timeperiod_name"; break; + case "host": $strTable = "tbl_host"; $strKeyField = "host_name"; break; + case "service": $strTable = "tbl_service"; $strKeyField = ""; break; + case "hostgroup": $strTable = "tbl_hostgroup"; $strKeyField = "hostgroup_name"; break; + case "servicegroup": $strTable = "tbl_servicegroup"; $strKeyField = "servicegroup_name"; break; + case "hostescalation": $strTable = "tbl_hostescalation"; $strKeyField = ""; break; + case "serviceescalation": $strTable = "tbl_serviceescalation"; $strKeyField = ""; break; + case "hostdependency": $strTable = "tbl_hostdependency"; $strKeyField = ""; break; + case "servicedependency": $strTable = "tbl_servicedependency"; $strKeyField = ""; break; + case "hostextinfo": $strTable = "tbl_hostextinfo"; $strKeyField = "host_name"; break; + case "serviceextinfo": $strTable = "tbl_serviceextinfo"; $strKeyField = ""; break; + } + } else { + switch($strBlockKey) { + case "contact": $strTable = "tbl_contacttemplate"; $strKeyField = "name"; break; + case "host": $strTable = "tbl_hosttemplate"; $strKeyField = "name"; break; + case "service": $strTable = "tbl_servicetemplate"; $strKeyField = "name"; break; + } + } + if (!isset($strTable) || ($strTable == "")) { + $this->strErrorMessage .= translate('Table for import definition').$strBlockKey.translate('is not available!')."::";; + return(1); + } + + // Create an import hash if no key field is available + if ($strKeyField == "") { + $this->createHash($strTable,$arrImportData,$strHash,$strConfigName); + $arrImportData['config_name']['key'] = "config_name"; + $arrImportData['config_name']['value'] = $strConfigName; + $strKeyField = "config_name"; + } else { + $strHash = ""; + } + + // Get relation data + $intRelation = $this->myDataClass->tableRelations($strTable,$arrRelations); + // Does this entry already exist? + if ($intIsTemplate == 0) { + if (($strKeyField != "") && isset($arrImportData[$strKeyField])) { + if ($strHash == "") { + // Special key field values + if ($strBlockKey == "hostextinfo") { + $strSQL = "SELECT `id`FROM `tbl_host` WHERE `host_name`='".$arrImportData[$strKeyField]['value']."'"; + $intHost = $this->myDBClass->getFieldData($strSQL)+0; + $strSQL = "SELECT `id` FROM `".$strTable."` + WHERE `config_id`=".$this->intDomainId." AND `".$strKeyField."`='".$intHost."'"; + + } else { + $strSQL = "SELECT `id` FROM `".$strTable."` + WHERE `config_id`=".$this->intDomainId." AND `".$strKeyField."`='".$arrImportData[$strKeyField]['value']."'"; + } + } else { + $strSQL = "SELECT `id` FROM `".$strTable."` + WHERE `config_id`=".$this->intDomainId." AND `import_hash`='".$strHash."'"; + } + $intExists = $this->myDBClass->getFieldData($strSQL); + if ($intExists == false) $intExists = 0; + } + } else { + if (($strKeyField != "") && isset($arrImportData['name'])) { + $strSQL = "SELECT `id` FROM `".$strTable."` + WHERE `config_id`=".$this->intDomainId." AND `template_name`='".$arrImportData['name']['value']."'"; + $intExists = $this->myDBClass->getFieldData($strSQL); + if ($intExists == false) $intExists = 0; + } + } + // Entry exsists but should not be overwritten + if (($intExists != 0) && ($intOverwrite == 0)) { + if ($strKeyField == 'config_name') { + $strSQLConfig = "SELECT `config_name` FROM `".$strTable."` WHERE `id`=".$intExists; + $arrImportData[$strKeyField]['value'] = $this->myDBClass->getFieldData($strSQLConfig); + } + $this->strInfoMessage .= translate('Entry')." ".$strKeyField." -> ".$arrImportData[$strKeyField]['value']." ".translate('inside')." ".$strTable." ".translate('exists and were not overwritten')."::"; + return(0); + } + // Do not write "*" values + if (isset($arrImportData[$strKeyField]) && ($arrImportData[$strKeyField] == "*")) { + $this->strInfoMessage .= translate('Entry')." ".$strKeyField." -> ".$arrImportData[$strKeyField]['value']." ".translate('inside')." ".$strTable." ".translate('were not written')."::"; + return(0); + } + // Activate entry + $intActive = 1; + + // Define SQL statement - part 1 + if ($strHash == "") {$strHash = "";} else {$strHash = " `import_hash`='".$strHash."', ";} + if ($intExists != 0) { + // Update database + $strSQL1 = "UPDATE `".$strTable."` SET "; + $strSQL2 = " `config_id`=".$this->intDomainId.", $strHash `active`='$intActive', `last_modified`=NOW() WHERE `id`=$intExists"; + // Keep config name while update + if (($strKeyField == 'config_name') && (!isset($arrImportData['_NAGIOSQL_CONFIG_NAME']))) { + $strSQLConfig = "SELECT `config_name` FROM `".$strTable."` WHERE `id`=".$intExists; + $arrImportData['config_name']['value'] = $this->myDBClass->getFieldData($strSQLConfig); + } + // Remove free variables + if ($intRelation != 0) { + foreach ($arrRelations AS $relVar) { + if ($relVar['type'] == 4) { + $strSQL = "SELECT * FROM `".$relVar['linkTable']."` WHERE `idMaster`=$intExists"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn && ($intDataCount != 0)) { + foreach ($arrData AS $elem) { + $strSQL = "DELETE FROM `tbl_variabledefinition` WHERE `id`=".$elem['idSlave']; + $booReturn = $this->myDataClass->dataInsert($strSQL,$intInsertId); + } + } + $strSQL = "DELETE FROM `".$relVar['linkTable']."` WHERE `idMaster`=$intExists"; + $booReturn = $this->myDataClass->dataInsert($strSQL,$intInsertId); + } + } + } + } else { + // DB Eintrag einfügen + $strSQL1 = "INSERT INTO `".$strTable."` SET "; + $strSQL2 = " `config_id`=".$this->intDomainId.", $strHash `active`='$intActive', `last_modified`=NOW()"; + } + + // Description for the values + // -------------------------- + // $strVCValues = Simple text values, will be stored as varchar / null = 'null' as text value / empty = '' + // $strRLValues = Relations - values with relations to other tables + // $strVWValues = Integer values - will be stored as INT values / null = -1, / empty values as NULL + // $strVIValues = Decision values 0 = no, 1 = yes, 2 = skip, 3 = null + + // Read command configurations + if ($strKeyField == "command_name") { + $strVCValues = "command_name,command_line"; + // Find out command type + if (isset($arrImportData['command_line'])) { + if ((substr_count($arrImportData['command_line']['value'],"ARG1") != 0) || + (substr_count($arrImportData['command_line']['value'],"USER1") != 0)) { + $strSQL1 .= "`command_type` = 1,"; + } else { + $strSQL1 .= "`command_type` = 2,"; + } + } + $intWriteConfig = 1; + + // Read contact configurations + } else if ($strKeyField == "contact_name") { + $strVCValues = "contact_name,alias,host_notification_options,service_notification_options,email,"; + $strVCValues .= "pager,address1,address2,address3,address4,address5,address6,name"; + + $strVIValues = "host_notifications_enabled,service_notifications_enabled,can_submit_commands,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information"; + + $strRLValues = "contactgroups,host_notification_period,service_notification_period,host_notification_commands,"; + $strRLValues .= "service_notification_commands,use"; + $intWriteConfig = 1; + + // Read contactgroup configurations + } else if ($strKeyField == "contactgroup_name") { + $strVCValues = "contactgroup_name,alias"; + + $strRLValues = "members,contactgroup_members"; + $intWriteConfig = 1; + + // Read timeperiod configurations + } else if ($strKeyField == "timeperiod_name") { + $strVCValues = "timeperiod_name,alias,name"; + + $strRLValues = "use,exclude"; + $intWriteConfig = 1; + + // Read contacttemplate configurations + } else if (($strKeyField == "name") && ($strTable == "tbl_contacttemplate")) { + $strVCValues = "contact_name,alias,host_notification_options,service_notification_options,email,"; + $strVCValues .= "pager,address1,address2,address3,address4,address5,address6,name"; + + $strVIValues = "host_notifications_enabled,service_notifications_enabled,can_submit_commands,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information"; + + $strRLValues = "contactgroups,host_notification_period,service_notification_period,host_notification_commands,"; + $strRLValues .= "service_notification_commands,use"; + $intWriteConfig = 1; + + // Read host configurations + } else if ($strTable == "tbl_host") { + $strVCValues = "host_name,alias,display_name,address,initial_state,flap_detection_options,notification_options,"; + $strVCValues .= "stalking_options,notes,notes_url,action_url,icon_image,icon_image_alt,vrml_image,statusmap_image,"; + $strVCValues .= "2d_coords,3d_coords,name"; + + $strVWValues = "max_check_attempts,retry_interval,check_interval,freshness_threshold,low_flap_threshold,"; + $strVWValues .= "high_flap_threshold,notification_interval,first_notification_delay,"; + + $strVIValues = "active_checks_enabled,passive_checks_enabled,check_freshness,obsess_over_host,event_handler_enabled,"; + $strVIValues .= "flap_detection_enabled,process_perf_data,retain_status_information,retain_nonstatus_information,"; + $strVIValues .= "notifications_enabled"; + + $strRLValues = "parents,hostgroups,check_command,use,check_period,event_handler,contacts,contact_groups,"; + $strRLValues .= "notification_period"; + $intWriteConfig = 1; + + // Read hosttemplate configurations + } else if (($strKeyField == "name") && ($strTable == "tbl_hosttemplate")) { + $strVCValues = "template_name,alias,initial_state,flap_detection_options,notification_options,"; + $strVCValues .= "stalking_options,notes,notes_url,action_url,icon_image,icon_image_alt,vrml_image,statusmap_image,"; + $strVCValues .= "2d_coords,3d_coords,name"; + + $strVWValues = "max_check_attempts,retry_interval,check_interval,freshness_threshold,low_flap_threshold,"; + $strVWValues .= "high_flap_threshold,notification_interval,first_notification_delay,"; + + $strVIValues = "active_checks_enabled,passive_checks_enabled,check_freshness,obsess_over_host,event_handler_enabled,"; + $strVIValues .= "flap_detection_enabled,process_perf_data,retain_status_information,retain_nonstatus_information,"; + $strVIValues .= "notifications_enabled"; + + $strRLValues = "parents,hostgroups,check_command,use,check_period,event_handler,contacts,contact_groups,"; + $strRLValues .= "notification_period"; + $intWriteConfig = 1; + + // Read hostgroup configurations + } else if ($strKeyField == "hostgroup_name") { + $strVCValues = "hostgroup_name,alias,notes,notes_url,action_url"; + + $strRLValues = "members,hostgroup_members"; + $intWriteConfig = 1; + + // Read service configurations + } else if ($strTable == "tbl_service") { + $strVCValues = "service_description,display_name,initial_state,flap_detection_options,stalking_options,notes,notes_url,"; + $strVCValues .= "action_url,icon_image,icon_image_alt,name,config_name,notification_options"; + + $strVWValues = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,"; + $strVWValues .= "high_flap_threshold,notification_interval,first_notification_delay"; + + $strVIValues = "is_volatile,active_checks_enabled,passive_checks_enabled,parallelize_check,obsess_over_service,"; + $strVIValues .= "check_freshness,event_handler_enabled,flap_detection_enabled,process_perf_data,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information,notifications_enabled"; + + $strRLValues = "host_name,hostgroup_name,servicegroups,use,check_command,check_period,event_handler,notification_period,contacts,contact_groups"; + $intWriteConfig = 1; + + // Read servicetemplate configurations + } else if (($strKeyField == "name") && ($strTable == "tbl_servicetemplate")) { + $strVCValues = "template_name,service_description,display_name,initial_state,flap_detection_options,stalking_options,notes,notes_url,"; + $strVCValues .= "action_url,icon_image,icon_image_alt,name,notification_options"; + + $strVWValues = "max_check_attempts,check_interval,retry_interval,freshness_threshold,low_flap_threshold,"; + $strVWValues .= "high_flap_threshold,notification_interval,first_notification_delay"; + + $strVIValues = "is_volatile,active_checks_enabled,passive_checks_enabled,parallelize_check,obsess_over_service,"; + $strVIValues .= "check_freshness,event_handler_enabled,flap_detection_enabled,process_perf_data,retain_status_information,"; + $strVIValues .= "retain_nonstatus_information,notifications_enabled"; + + $strRLValues = "host_name,hostgroup_name,servicegroups,use,check_command,check_period,event_handler,notification_period,contacts,contact_groups"; + $intWriteConfig = 1; + + // Read servicegroup configurations + } else if ($strKeyField == "servicegroup_name") { + $strVCValues = "servicegroup_name,alias,notes,notes_url,action_url"; + + $strRLValues = "members,servicegroup_members"; + $intWriteConfig = 1; + + // Read hostdependency configurations + } else if ($strTable == "tbl_hostdependency") { + $strVCValues = "config_name,execution_failure_criteria,notification_failure_criteria"; + + $strVIValues = "inherits_parent"; + + $strRLValues = "dependent_host_name,dependent_hostgroup_name,host_name,hostgroup_name,dependency_period"; + $intWriteConfig = 1; + + // Read hostescalation configurations + } else if ($strTable == "tbl_hostescalation") { + $strVCValues = "config_name,escalation_options"; + + $strVWValues = "first_notification,last_notification,notification_interval"; + + $strRLValues = "host_name,hostgroup_name,contacts,contact_groups,escalation_period"; + $intWriteConfig = 1; + + // Read hostextinfo configurations + } else if ($strTable == "tbl_hostextinfo") { + $strVCValues = "notes,notes_url,action_url,icon_image,icon_image_alt,vrml_image,statusmap_image,2d_coords,3d_coords"; + + $strRLValues = "host_name"; + $intWriteConfig = 1; + + // Read servicedependency configurations + } else if ($strTable == "tbl_servicedependency") { + $strVCValues = "config_name,execution_failure_criteria,notification_failure_criteria"; + + $strVIValues = "inherits_parent"; + + $strRLValues = "dependent_host_name,dependent_hostgroup_name,dependent_service_description,host_name,"; + $strRLValues .= "hostgroup_name,dependency_period,service_description,dependent_servicegroup_name,servicegroup_name"; + $intWriteConfig = 1; + + // Read serviceescalation configurations + } else if ($strTable == "tbl_serviceescalation") { + $strVCValues = "config_name,escalation_options"; + + $strVIValues = "first_notification,last_notification,notification_interval"; + + $strRLValues = "host_name,hostgroup_name,contacts,contact_groups,service_description,escalation_period,servicegroup_name"; + $intWriteConfig = 1; + + // Serviceextinfo configurations + } else if ($strTable == "tbl_serviceextinfo") { + $strVCValues = "notes,notes_url,action_url,icon_image,icon_image_alt"; + + $strRLValues = "host_name,service_description"; + $intWriteConfig = 1; + } + + // Common values (all configurations) + if ($strVWValues == "") { $strVWValues = "register"; } else { $strVWValues .= ",register"; } + + // Build value statemets + foreach ($arrImportData AS $elem) { + // Decompose command + if ($elem['key'] == "check_command") { + $arrValues = explode("!",$elem['value']); + } + $intCheck = 0; + // Write text values + if (in_array($elem['key'],explode(",",$strVCValues))) { + if (strtolower(trim($elem['value'])) == "null") { + $strSQL1 .= "`".$elem['key']."` = 'null',"; + } else { + $elem['value'] = addslashes($elem['value']); + if ($intIsTemplate == 1) { + if ($elem['key'] == "name") { + $strSQL1 .= "template_name = '".$elem['value']."',"; + } else if (($elem['key'] == "config_name") && ($intExists != 0)) { + // Do not overwrite config_names during an update! + $strSQLConfig = "SELECT `config_name` FROM `".$strTable."` WHERE `id`=".$intExists; + $elem['value'] = $this->myDBClass->getFieldData($strSQLConfig); + $strSQL1 .= "`".$elem['key']."` = '".$elem['value']."',"; + } else { + $strSQL1 .= "`".$elem['key']."` = '".$elem['value']."',"; + } + } else { + $strSQL1 .= "`".$elem['key']."` = '".$elem['value']."',"; + } + } + $intCheck = 1; + } + // Write status values + if (in_array($elem['key'],explode(",",$strVIValues))) { + if (strtolower(trim($elem['value'])) == "null") { + $strSQL1 .= "`".$elem['key']."` = 3,"; + } else { + $strSQL1 .= "`".$elem['key']."` = '".$elem['value']."',"; + } + $intCheck = 1; + } + // Write integer values + if (in_array($elem['key'],explode(",",$strVWValues))) { + if (strtolower(trim($elem['value'])) == "null") { + $strSQL1 .= "`".$elem['key']."` = -1,"; + } else { + $strSQL1 .= "`".$elem['key']."` = '".$elem['value']."',"; + } + $intCheck = 1; + } + // Write relations + if (($intCheck == 0) && (in_array($elem['key'],explode(",",$strRLValues)))) { + if ($elem['key'] == "use") $elem['key'] = "use_template"; + $arrTemp = ""; + $arrTemp['key'] = $elem['key']; + $arrTemp['value'] = $elem['value']; + $arrImportRelations[] = $arrTemp; + $intInsertRelations = 1; + $intCheck = 1; + } + // Write free variables + if ($intCheck == 0) { + if (!in_array($elem['key'],explode(",",$strSkip))) { + $arrTemp = ""; + $arrTemp['key'] = $elem['key']; + $arrTemp['value'] = $elem['value']; + $arrFreeVariables[] = $arrTemp; + $intInsertVariables = 1; + } + } + } + $strTemp1 = ""; + $strTemp2 = ""; + // Update database + if ($intWriteConfig == 1) { + $booResult = $this->myDBClass->insertData($strSQL1.$strSQL2); + } else { + $booResult = false; + } + if ($strKeyField == "") {$strKey = $strConfigName;} else {$strKey = $strKeyField;} + if ($booResult != true) { + $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($strKeyField != "") $this->strErrorMessage .= translate('Entry')." ".$strKey." -> ".$arrImportData[$strKeyField]['value']." ".translate('inside')." ".$strTable." ".translate('could not be inserted:')." ".mysql_error()."::"; + if ($strKeyField == "") $this->strErrorMessage .= translate('Entry')." ".$strTemp1." -> ".$strTemp2.translate('inside')." ".$strTable." ".$strTable." ".translate('could not be inserted:')." ".mysql_error()."::"; + return(1); + } else { + if ($strKeyField != "") $this->strInfoMessage .= translate('Entry')." ".$strKey." -> ".$arrImportData[$strKeyField]['value']." ".translate('inside')." ".$strTable." ".translate('successfully inserted')."::"; + if ($strKeyField == "") $this->strInfoMessage .= translate('Entry')." ".$strTemp1." -> ".$strTemp2." ".translate('inside')." ".$strTable." ".translate('successfully inserted')."::"; + // Define data ID + if ($intExists != 0) { + $intDatasetId = $intExists; + } else { + $intDatasetId = $this->myDBClass->intLastId; + } + // Are there any relations to be filled in? + if ($intInsertRelations == 1) { + foreach ($arrImportRelations AS $elem) { + foreach ($arrRelations AS $reldata) { + if ($reldata['fieldName'] == $elem['key']) { + if ($elem['key'] == "check_command") { + $this->writeRelation_5($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } else if ($reldata['type'] == 1) { + $this->writeRelation_1($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata,$arrImportData); + } else if ($reldata['type'] == 2) { + $this->writeRelation_2($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } else if ($reldata['type'] == 3) { + $this->writeRelation_3($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } else if ($reldata['type'] == 4) { + $this->writeRelation_4($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } else if ($reldata['type'] == 5) { + $this->writeRelation_6($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } else if ($reldata['type'] == 6) { + $this->writeRelation_7($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } + } + } + } + } + // Are there any free variables ore time definitions to be filled in? + if ($intInsertVariables == 1) { + if ($strTable == "tbl_timeperiod") { + // Remove old values + $strSQL = "DELETE FROM `tbl_timedefinition` WHERE `tipId` = $intDatasetId"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + foreach ($arrFreeVariables AS $elem) { + $strSQL = "INSERT INTO `tbl_timedefinition` SET `tipId` = $intDatasetId, + `definition` = '".addslashes($elem['key'])."', `range` = '".addslashes($elem['value'])."'"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } else { + foreach ($arrFreeVariables AS $elem) { + foreach ($arrRelations AS $reldata) { + if ($reldata['type'] == 4) { + $this->writeRelation_4($elem['key'],$elem['value'],$intDatasetId,$strTable,$reldata); + } + } + } + } + } + // Update Table times + $this->myDataClass->updateStatusTable($strTable); + return(0); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Create HASH + /////////////////////////////////////////////////////////////////////////////////////////// + function createHash($strTable,$arrBlockData,&$strHash,&$strConfigName) { + $strRawString = ""; + $strConfigName = "imp_temporary"; + if ($strTable == "tbl_service") { + // HASH from any host, any hostgroup and service description - step 1 + if (isset($arrBlockData['host_name'])) $strRawString .= $arrBlockData['host_name']['value'].","; + if (isset($arrBlockData['hostgroup_name'])) $strRawString .= $arrBlockData['hostgroup_name']['value'].","; + // Replace *, + and ! in HASH raw string + $strRawString = str_replace("*,","any,",$strRawString); + $strRawString = str_replace("!","not_",$strRawString); + $strRawString = str_replace("+","",$strRawString); + // Create configuration name from NagiosQL variable if exists + if (isset($arrBlockData['_NAGIOSQL_CONFIG_NAME'])) { + $strConfigName = $arrBlockData['_NAGIOSQL_CONFIG_NAME']['value']; + } else { + // Create configuration name from first two hosts / hostgroups + $arrConfig = explode(",",$strRawString); + if (isset($arrConfig[0]) && ($arrConfig[0] != "")) $strConfigName = "imp_".$arrConfig[0]; + if (isset($arrConfig[1]) && ($arrConfig[1] != "")) $strConfigName .= "_".$arrConfig[1]; + } + // HASH from any host, any hostgroup and service description - step 2 + if (isset($arrBlockData['service_description'])) $strRawString .= $arrBlockData['service_description']['value'].","; + if (isset($arrBlockData['display_name'])) $strRawString .= $arrBlockData['display_name']['value'].","; + if (isset($arrBlockData['check_command'])) $strRawString .= $arrBlockData['check_command']['value'].","; + } + if (($strTable == "tbl_hostdependency") || ($strTable == "tbl_servicedependency")) { + $strRawString1 = ""; + $strRawString2 = ""; + $strRawString3 = ""; + // HASH from any dependent host and any dependent hostgroup + if (isset($arrBlockData['dependent_host_name'])) $strRawString1 .= $arrBlockData['dependent_host_name']['value'].","; + if (isset($arrBlockData['dependent_hostgroup_name'])) $strRawString1 .= $arrBlockData['dependent_hostgroup_name']['value'].","; + if (isset($arrBlockData['host_name'])) $strRawString2 .= $arrBlockData['host_name']['value'].","; + if (isset($arrBlockData['hostgroup_name'])) $strRawString2 .= $arrBlockData['hostgroup_name']['value'].","; + if (isset($arrBlockData['dependent_service_description'])) $strRawString3 .= $arrBlockData['dependent_service_description']['value'].","; + if (isset($arrBlockData['service_description'])) $strRawString3 .= $arrBlockData['service_description']['value'].","; + if (isset($arrBlockData['dependent_servicegroup_name'])) $strRawString3 .= $arrBlockData['dependent_servicegroup_name']['value'].","; + if (isset($arrBlockData['servicegroup_name'])) $strRawString3 .= $arrBlockData['servicegroup_name']['value'].","; + // Replace *, + and ! in HASH raw string + $strRawString1 = str_replace("*,","any,",$strRawString1); + $strRawString2 = str_replace("*,","any,",$strRawString2); + $strRawString3 = str_replace("*,","any,",$strRawString3); + $strRawString1 = str_replace("!","not_",$strRawString1); + $strRawString2 = str_replace("!","not_",$strRawString2); + $strRawString3 = str_replace("!","not_",$strRawString3); + // Create configuration name from NagiosQL variable if exists + if (isset($arrBlockData['_NAGIOSQL_CONFIG_NAME'])) { + $strConfigName = $arrBlockData['_NAGIOSQL_CONFIG_NAME']['value']; + } else { + $arrConfig1 = explode(",",$strRawString1); + $arrConfig2 = explode(",",$strRawString2); + $arrConfig3 = explode(",",$strRawString3); + if (isset($arrConfig1[0])) $strConfigName = "imp_".$arrConfig1[0]; + if (isset($arrConfig2[0])) $strConfigName .= "_".$arrConfig2[0]; + if (isset($arrConfig3[0])) $strConfigName .= "_".$arrConfig3[0]; + $strSQL = "SELECT * FROM `".$strTable."` WHERE `config_name`='$strConfigName'"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + $intCounter = 1; + do { + $strConfigNameTemp = $strConfigName."_".$intCounter; + $strSQL = "SELECT * FROM `".$strTable."` WHERE `config_name`='$strConfigNameTemp'"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + $intCounter++; + } while ($booRet && ($intDC != 0)); + $strConfigName = $strConfigNameTemp; + } + } + // HASH string + $strRawString = $strRawString1.$strRawString2.$strRawString3; + $strRawString = substr($strRawString,0,-1); + } + if (($strTable == "tbl_hostescalation") || ($strTable == "tbl_serviceescalation")) { + $strRawString1 = ""; + $strRawString2 = ""; + $strRawString3 = ""; + // HASH from any host and any hostgroup + if (isset($arrBlockData['host_name'])) $strRawString1 .= $arrBlockData['host_name']['value'].","; + if (isset($arrBlockData['hostgroup_name'])) $strRawString1 .= $arrBlockData['hostgroup_name']['value'].","; + if (isset($arrBlockData['contacts'])) $strRawString2 .= $arrBlockData['contacts']['value'].","; + if (isset($arrBlockData['contact_groups'])) $strRawString2 .= $arrBlockData['contact_groups']['value'].","; + if (isset($arrBlockData['service_description'])) $strRawString3 .= $arrBlockData['service_description']['value'].","; + // Replace *, + and ! in HASH raw string + $strRawString1 = str_replace("*,","any,",$strRawString1); + $strRawString2 = str_replace("*,","any,",$strRawString2); + $strRawString3 = str_replace("*,","any,",$strRawString3); + $strRawString1 = str_replace("!","not_",$strRawString1); + $strRawString2 = str_replace("!","not_",$strRawString2); + $strRawString3 = str_replace("!","not_",$strRawString3); + // Create configuration name from NagiosQL variable if exists + if (isset($arrBlockData['_NAGIOSQL_CONFIG_NAME'])) { + $strConfigName = $arrBlockData['_NAGIOSQL_CONFIG_NAME']['value']; + } else { + $arrConfig1 = explode(",",$strRawString1); + $arrConfig2 = explode(",",$strRawString2); + $arrConfig3 = explode(",",$strRawString3); + if (isset($arrConfig1[0])) $strConfigName = "imp_".$arrConfig1[0]; + if (isset($arrConfig2[0])) $strConfigName .= "_".$arrConfig2[0]; + if (isset($arrConfig3[0])) $strConfigName .= "_".$arrConfig3[0]; + $strSQL = "SELECT * FROM `".$strTable."` WHERE `config_name`='$strConfigName'"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + if ($booRet && ($intDC != 0)) { + $intCounter = 1; + do { + $strConfigNameTemp = $strConfigName."_".$intCounter; + $strSQL = "SELECT * FROM `".$strTable."` WHERE `config_name`='$strConfigNameTemp'"; + $booRet = $this->myDBClass->getDataArray($strSQL,$arrData,$intDC); + $intCounter++; + } while ($booRet && ($intDC != 0)); + $strConfigName = $strConfigNameTemp; + } + } + // HASH string + $strRawString = $strRawString1.$strRawString2.$strRawString3; + $strRawString = substr($strRawString,0,-1); + } + if ($strTable == "tbl_serviceextinfo") { + // HASH from any host, any hostgroup and service description - step 1 + if (isset($arrBlockData['host_name'])) $strRawString .= $arrBlockData['host_name']['value'].","; + if (isset($arrBlockData['service_description'])) $strRawString .= $arrBlockData['service_description']['value'].","; + // HASH string + $strRawString = substr($strRawString,0,-1); + // Create configuration name from NagiosQL variable if exists + if (isset($arrBlockData['_NAGIOSQL_CONFIG_NAME'])) { + $strConfigName = $arrBlockData['_NAGIOSQL_CONFIG_NAME']['value']; + } else { + // Create configuration name from first two items + $arrConfig = explode(",",$strRawString); + if (isset($arrConfig[0]) && ($arrConfig[0] != "")) $strConfigName = "imp_".$arrConfig[0]; + if (isset($arrConfig[1]) && ($arrConfig[1] != "")) $strConfigName .= "_".$arrConfig[1]; + } + } + while (substr_count($strRawString," ") != 0) { + $strRawString = str_replace(" ","",$strRawString); + } + // Sort hash string + $arrTemp = explode(",",$strRawString); + sort($arrTemp); + $strRawString = implode(",",$arrTemp); + $strHash = sha1($strRawString); + //echo "Hash: ".$strRawString." --> ".$strHash."
"; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 1 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 1 (1:1) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // $arrImportData Import Data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_1($strKey,$strValue,$intDataId,$strDataTable,$arrRelData,$arrImportData) { + // Define variables + $intSlaveId = 0; + if (strtolower(trim($strValue)) == "null") { + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = -1 WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } else { + // Decompose data value + $arrValues = explode(",",$strValue); + // Process data values + foreach ($arrValues AS $elem) { + $strWhere = ""; + $strLink = ""; + $strAdd = ""; + // Special processing for serviceextinfo + if (($strDataTable == "tbl_serviceextinfo") && ($strKey == "service_description")) { + $strLink = "LEFT JOIN `tbl_lnkServiceToHost` on `tbl_service`.`id`=`idMaster` + LEFT JOIN `tbl_host` ON `idSlave`=`tbl_host`.`id`"; + $strWhere = "AND `tbl_host`.`host_name`='".$arrImportData['host_name']['value']."'"; + } + // Does the value already exist? + $strSQL = "SELECT `".$arrRelData['tableName1']."`.`id` FROM `".$arrRelData['tableName1']."` $strLink + WHERE `".$arrRelData['target1']."` = '".$elem."' $strWhere AND `".$arrRelData['tableName1']."`.`active`='1' + AND `".$arrRelData['tableName1']."`.`config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + } + if ($intSlaveId == 0) { + // Insert a temporary value + if (($strDataTable == "tbl_serviceextinfo") && ($arrRelData['tableName1'] == 'tbl_service')) $strAdd = "`config_name`='imp_tmp_by_serviceextinfo',"; + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$elem."', + $strAdd `config_id`=".$this->intDomainId.", `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + + // Special processing for serviceextinfo + if (($strDataTable == "tbl_serviceextinfo") && ($strKey == "service_description")) { + $strSQL = "SELECT `id` FROM `tbl_host` WHERE `host_name`='".$arrImportData['host_name']['value']."'"; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $strSQL = "INSERT INTO `tbl_lnkServiceToHost` SET `idMaster` = '".$intSlaveId."', + `idSlave` = '".$strId."'"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $strSQL = "UPDATE `tbl_service` SET `host_name`=0 WHERE `id`='".$intSlaveId."'"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + } + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = ".$intSlaveId." WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 2 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 2 (1:n) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_2($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Does a tploption field exist? + $strSQL = "SELECT * FROM `".$strDataTable."` WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->getSingleDataset($strSQL,$arrDataset); + if (isset($arrDataset[$arrRelData['fieldName']."_tploptions"])) { + $intTplOption = 1; + } else { + $intTplOption = 0; + } + // Delete data from link table + $strSQL = "DELETE FROM `".$arrRelData['linkTable']."` WHERE `idMaster` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Define variables + $intSlaveId = 0; + if (strtolower(trim($strValue)) == "null") { + // Update data in master table + if ($intTplOption == 1) { + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = 0, + `".$arrRelData['fieldName']."_tploptions` = 1 WHERE `id` = ".$intDataId; + } else { + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = 0 WHERE `id` = ".$intDataId; + } + $booResult = $this->myDBClass->insertData($strSQL); + } else { + if (substr(trim($strValue),0,1) == "+") { + $intOption = 0; + $strValue = str_replace("+","",$strValue); + } else { + $intOption = 2; + } + // Decompose data value + $arrValues = explode(",",$strValue); + // Process data values + foreach ($arrValues AS $elem) { + if ($elem != "*") { + $strWhere = ""; + $strLink = ""; + // Exclude values + if (substr($elem,0,1) == "!") { + $intExclude = 1; + $elem = substr($elem,1); + } else { + $intExclude = 0; + } + if ((($strDataTable == "tbl_servicedependency") || ($strDataTable == "tbl_serviceescalation")) && + (substr_count($strKey,"service") != 0) && (substr_count($strKey,"group") == 0)) { + if (substr_count($strKey,"depend") != 0) { + $strLink = "LEFT JOIN `tbl_lnkServiceToHost` on `id`=`idMaster`"; + $strWhere = "AND `idSlave` IN (".substr($this->strList1,0,-1).")"; + } else { + $strLink = "LEFT JOIN `tbl_lnkServiceToHost` on `id`=`idMaster`"; + $strWhere = "AND `idSlave` IN (".substr($this->strList2,0,-1).")"; + } + } + // Does the entry already exist? + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName1']."` $strLink WHERE `".$arrRelData['target1']."` = '".$elem."' + $strWhere AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + } else { + $intSlaveId = 0; + } + if (($intSlaveId == 0) && ($elem != "*")) { + // Insert a temporary value to the target table + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$elem."', + `config_id`=".$this->intDomainId.", `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + } + // Insert relations + $strSQL = "INSERT INTO `".$arrRelData['linkTable']."` SET `idMaster` = ".$intDataId.", `idSlave` = ".$intSlaveId.", + `exclude`=".$intExclude; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Keep values + if (($strDataTable == "tbl_servicedependency") || ($strDataTable == "tbl_serviceescalation")) { + $strTemp = ""; + if (($strKey == "dependent_host_name") || ($strKey == "host_name")) { + $strTemp .= $intSlaveId.","; + } else if (($strKey == "dependent_hostgroup_name") || ($strKey == "hostgroup_name")) { + $arrDataHg2 = ""; + $strSQL = "SELECT DISTINCT `id` FROM `tbl_host` + LEFT JOIN `tbl_lnkHostToHostgroup` ON `id` = `tbl_lnkHostToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostgroupToHost` ON `id` = `tbl_lnkHostgroupToHost`.`idSlave` + WHERE (`tbl_lnkHostgroupToHost`.`idMaster` = $intSlaveId + OR `tbl_lnkHostToHostgroup`.`idSlave` = $intSlaveId) + AND `active`='1' AND `config_id`=".$this->intDomainId; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrDataHostgroups,$intDCHostgroups); + if ($booReturn && ($intDCHostgroups != 0)) { + foreach ($arrDataHostgroups AS $elem) { + $strTemp .= $elem['id'].","; + } + } + } + if (substr_count($strKey,"dependent") != 0) { + $this->strList1 .= $strTemp; + } else { + $this->strList2 .= $strTemp; + } + } + } + // Update field values in master table + if (substr_count($strValue,"*") != 0) { + $intRelValue = 2; + } else { + $intRelValue = 1; + } + if ($intTplOption == 1) { + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = $intRelValue, + `".$arrRelData['fieldName']."_tploptions` = ".$intOption." WHERE `id` = ".$intDataId; + } else { + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = $intRelValue WHERE `id` = ".$intDataId; + } + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 3 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 3 (templates) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_3($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Define variables + $intSlaveId = 0; + $intTable = 0; + $intSortNr = 1; + if (strtolower(trim($strValue)) == "null") { + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = 0, + `".$arrRelData['fieldName']."_tploptions` = 1 WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + } else { + if (substr(trim($strValue),0,1) == "+") { + $intOption = 0; + $strValue = str_replace("+","",$strValue); + } else { + $intOption = 2; + } + // Remove old relations + $strSQL = "DELETE FROM `".$arrRelData['linkTable']."` WHERE `idMaster` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Decompose data value + $arrValues = explode(",",$strValue); + // Process data values + foreach ($arrValues AS $elem) { + // Does the template already exist? (table 1) + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName1']."` WHERE `".$arrRelData['target1']."` = '".$elem."' + AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + $intTable = 1; + } + if ($intSlaveId == 0) { + // Does the template already exist? (table 2) + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName2']."` WHERE `".$arrRelData['target2']."` = '".$elem."' + AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + $intTable = 2; + } + } + if ($intSlaveId == 0) { + // Insert a temporary value to the target table + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$elem."', + `config_id`=".$this->intDomainId.", `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + $intTable = 1; + } + // Insert relations + $strSQL = "INSERT INTO `".$arrRelData['linkTable']."` SET `idMaster` = ".$intDataId.", `idSlave` = ".$intSlaveId.", + `idSort` = ".$intSortNr.", `idTable` = ".$intTable; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSortNr++; + $intSlaveId = 0; + // Update field data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = 1, + `".$arrRelData['fieldName']."_tploptions` = ".$intOption." WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 4 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 4 (free variables) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_4($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Remove empty variables + if (($strKey == "") || ($strValue == "")) return(1); + // Remove NagiosQL variables + if ($strKey == "_NAGIOSQL_CONFIG_NAME") return(1); + // Insert values to the table + $strSQL = "INSERT INTO `tbl_variabledefinition` SET `name` = '".addslashes($strKey)."', + `value` = '".addslashes($strValue)."', `last_modified`=now()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + // Insert relations to the table + $strSQL = "INSERT INTO `".$arrRelData['linkTable']."` SET `idMaster` = ".$intDataId.", `idSlave` = ".$intSlaveId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `use_variables` = 1 WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 5 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 5 (1:1 check command) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_5($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Extract data values + $arrCommand = explode("!",$strValue); + $strValue = $arrCommand[0]; + // Define variables + $intSlaveId = 0; + if (strtolower(trim($strValue)) == "null") { + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = -1 WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } else { + // Decompose data values + $arrValues = explode(",",$strValue); + // Process data values + foreach ($arrValues AS $elem) { + // Does the entry already exist? + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName1']."` WHERE `".$arrRelData['target1']."` = '".$elem."' + AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + } + if ($intSlaveId == 0) { + // Insert a temporary value in target table + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$elem."', + `config_id`=".$this->intDomainId.", `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + } + // Update data in master table + $arrCommand[0] = $intSlaveId; + $strValue = implode("!",$arrCommand); + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = '".mysql_real_escape_string($strValue)."' WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 6 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 5 (1:n:n service groups) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_6($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Define variables + $intSlaveId = 0; + $intSlaveIdS = 0; + $intSlaveIdH = 0; + $intSlaveIdHG = 0; + // Decompose data value + $arrValues = explode(",",$strValue); + // Remove data from link table + $strSQL = "DELETE FROM `".$arrRelData['linkTable']."` WHERE `idMaster` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Check the sum of elements + if (count($arrValues) % 2 != 0) { + $this->strErrorMessage .= translate("Error: wrong number of arguments - cannot import service group members")."::"; + } else { + // Process data values + $intCounter = 1; + foreach ($arrValues AS $elem) { + if ($intCounter % 2 == 0) { + // Does the host entry already exist? + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName1']."` + WHERE `".$arrRelData['target1']."` = '".$strValue."' AND `active`='1' AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveIdH = $strId+0; + } + // Does a hostgroup entry already exist? + if ($intSlaveIdH == 0) { + $strSQL = "SELECT `id` FROM `tbl_hostgroup` + WHERE `hostgroup_name` = '".$strValue."' AND `active`='1' AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveIdHG = $strId+0; + } + } + if (($intSlaveIdH == 0) && ($intSlaveIdHG == 0)) { + // Insert a temporary value in table + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$strValue."', + `config_id`=".$this->intDomainId.", `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveIdH = $this->myDBClass->intLastId; + } + // Does the service entry already exist? + if ($intSlaveIdH != 0) { + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName2']."` + LEFT JOIN `tbl_lnkServiceToHost` ON `id` = `idMaster` + WHERE `".$arrRelData['target2']."` = '".$elem."' AND `idSlave` = ".$intSlaveIdH." AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId == "") { + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName2']."` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostgroupToHost` ON `tbl_lnkHostgroupToHost`.`idMaster` = `tbl_lnkServiceToHostgroup`.`idSlave` + WHERE `".$arrRelData['target2']."` = '".$elem."' AND `tbl_lnkHostgroupToHost`.`idSlave` = ".$intSlaveIdH." AND + `active`='1' AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + } + if ($strId == "") { + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName2']."` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `id` = `tbl_lnkServiceToHostgroup`.`idMaster` + LEFT JOIN `tbl_lnkHostToHostgroup` ON `tbl_lnkHostToHostgroup`.`idSlave` = `tbl_lnkServiceToHostgroup`.`idSlave` + WHERE `".$arrRelData['target2']."` = '".$elem."' AND `tbl_lnkHostToHostgroup`.`idMaster` = ".$intSlaveIdH." AND + `active`='1' AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + } + } else if ($intSlaveIdHG != 0) { + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName2']."` + LEFT JOIN `tbl_lnkServiceToHostgroup` ON `id` = `idMaster` + WHERE `".$arrRelData['target2']."` = '".$elem."' AND `idSlave` = ".$intSlaveIdHG." AND `active`='1' AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + } + if ($strId != "") { + $intSlaveIdS = $strId+0; + } else { + $intSlaveIdS = 0; + } + if ($intSlaveIdS == 0) { + // Insert a temporary value in table + $intHostName = 0; + $intHostgroupName = 0; + if ($intSlaveIdH != 0) { + $intHostName = 1; + } else if ($intSlaveIdHG != 0) { + $intHostgroupName = 1; + } + $strSQL = "INSERT INTO `".$arrRelData['tableName2']."` SET `config_name`='imp_tmp_by_servicegroup', `host_name`=$intHostName, + `hostgroup_name`=$intHostgroupName, `".$arrRelData['target2']."` = '".$elem."', `config_id`=".$this->intDomainId.", + `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveIdS = $this->myDBClass->intLastId; + // Make a relation from temp service to host / hostgroup + if ($intSlaveIdH != 0) { + $strSQL = "INSERT INTO `tbl_lnkServiceToHost` SET `idMaster` = '".$intSlaveIdS."', + `idSlave`=".$intSlaveIdH.", `exclude`='0'"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } else if ($intSlaveIdHG != 0) { + $strSQL = "INSERT INTO `tbl_lnkServiceToHostgroup` SET `idMaster` = '".$intSlaveIdS."', + `idSlave`=".$intSlaveIdHG.", `exclude`='0'"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } + // Insert relation + $strSQL = "INSERT INTO `".$arrRelData['linkTable']."` + SET `idMaster` = ".$intDataId.", `idSlaveH` = ".$intSlaveIdH.", `idSlaveS` = ".$intSlaveIdS; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Update data in master table + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = 1 WHERE `id` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } else { + $strValue = $elem; + } + $intCounter++; + } + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Help function: Insert relation 7 + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts a relation type 6 (1:n:str) + // + // Parameters: $strKey Data field name + // $strValue Data value + // $intDataId Data ID + // $strDataTable Data table (Master) + // $arrRelData Relation data + // + // Return value: 0 = successful + // 1 = error + // Status message is stored in message class variables + // + /////////////////////////////////////////////////////////////////////////////////////////// + function writeRelation_7($strKey,$strValue,$intDataId,$strDataTable,$arrRelData) { + // Delete data from link table + $strSQL = "DELETE FROM `".$arrRelData['linkTable']."` WHERE `idMaster` = ".$intDataId; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + // Define variables + $intSlaveId = 0; + // Decompose data value + $arrValues = explode(",",$strValue); + // Process data values + foreach ($arrValues AS $elem) { + if ($elem != "*") { + $strWhere = ""; + $strLink = ""; + // Exclude values + if (substr($elem,0,1) == "!") { + $intExclude = 1; + $elem = substr($elem,1); + } else { + $intExclude = 0; + } + // Does the entry already exist? + $strSQL = "SELECT `id` FROM `".$arrRelData['tableName1']."` WHERE `".$arrRelData['target1']."` = '".$elem."' + $strWhere AND `config_id`=".$this->intDomainId; + $strId = $this->myDBClass->getFieldData($strSQL); + if ($strId != "") { + $intSlaveId = $strId+0; + } else { + $intSlaveId = 0; + } + if (($intSlaveId == 0) && ($elem != "*")) { + // Insert a temporary value to the target table + $strSQL = "INSERT INTO `".$arrRelData['tableName1']."` SET `".$arrRelData['target1']."` = '".$elem."', + `host_name`=2, `hostgroup_name`=2, `config_name`='imp_tmp_by_servicedependency', `config_id`=".$this->intDomainId.", + `active`='0', `last_modified`=NOW()"; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + $intSlaveId = $this->myDBClass->intLastId; + } + // Insert relations + $strSQL = "INSERT INTO `".$arrRelData['linkTable']."` SET `idMaster` = ".$intDataId.", `idSlave` = ".$intSlaveId.", + `strSlave`='".$elem."', `exclude`=".$intExclude; + $booResult = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + // Update field values in master table + if (substr_count($strValue,"*") != 0) { + $intRelValue = 2; + } else { + $intRelValue = 1; + } + $strSQL = "UPDATE `".$strDataTable."` SET `".$arrRelData['fieldName']."` = $intRelValue WHERE `id` = ".$intDataId; + $booRes = $this->myDBClass->insertData($strSQL); + if ($booResult == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + } + } +} +?> \ No newline at end of file diff --git a/functions/mysql_class.php b/functions/mysql_class.php new file mode 100644 index 0000000..34ed989 --- /dev/null +++ b/functions/mysql_class.php @@ -0,0 +1,331 @@ +arrSettings = $_SESSION['SETS']; + // Connect to Database + if (isset($this->arrSettings['db'])) $this->getDatabase($this->arrSettings['db']); + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Connect to a database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Opens a connection to the database server and select a database + // + // Parameters: $arrSettings Connection parameter + // -> Key server = Servername + // -> Key username = Benutzername + // -> Key password = Passwort + // -> Key database = Datenbank + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getdatabase($arrSettings) { + $this->dbconnect($arrSettings['server'],$arrSettings['port'],$arrSettings['username'],$arrSettings['password']); + if ($this->error == true) { + return false; + } + $this->dbselect($arrSettings['database']); + if ($this->error == true) { + return false; + } + return true; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get a singe data field + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Sends an SQL statement to the server and returns the result of the first data field + // + // Parameters: $strSQL SQL Statement + // + // Return value: = successful + // = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getFieldData($strSQL) { + // Send an SQL Statement to the server + $resQuery = mysql_query($strSQL); + // Error processing + if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) { + // return the field value at postition 0/0 + return mysql_result($resQuery,0,0); + } else if (mysql_error() != "") { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return(""); + } + return(""); + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get a single dataset + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Sends an SQL statement to the server and returns the result of the first data set + // + // Parameters: $strSQL SQL Statement + // $arrDataset Return value including the data set + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getSingleDataset($strSQL,&$arrDataset) { + $arrDataset = ""; + // Send an SQL Statement to the server + $resQuery = mysql_query($strSQL); + // Error processing + if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) { + // Fill the data to the array + $arrDataset = mysql_fetch_array($resQuery,MYSQL_ASSOC); + return true; + } else if (mysql_error() != "") { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + return true; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get a full data part + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Sends an SQL statement to the server and returns the result inside a data array + // + // Parameters: $strSQL SQL Statement + // $arrDataset Return value including the data records + // $intDataCount Return value including the number of the records + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getDataArray($strSQL,&$arrDataset,&$intDataCount) { + $arrDataset = ""; + $intDataCount = 0; + // Send an SQL Statement to the server + $resQuery = mysql_query($strSQL); + // Error processing + if ($resQuery && (mysql_num_rows($resQuery) != 0) && (mysql_error() == "")) { + $intDataCount = mysql_num_rows($resQuery); + $i = 0; + // Fill array + while ($arrDataTemp = mysql_fetch_array($resQuery, MYSQL_ASSOC)) { + foreach ($arrDataTemp AS $key => $value) { + $arrDataset[$i][$key] = $value; + } + $i++; + } + return true; + } else if (mysql_error() != "") { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + return true; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Insert data + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Inserts data to the database server + // + // Parameters: $strSQL SQL Statement + // + // $this->intLastId Dataset insert ID + // $this->intAffectedRows The number of the affected records + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function insertData($strSQL) { + // Send an SQL Statement to the server + $resQuery = mysql_query($strSQL); + // Error processing + if (mysql_error() == "") { + $this->intLastId = mysql_insert_id(); + $this->intAffectedRows = mysql_affected_rows(); + return true; + } else { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Count records + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Counts the number of records + // + // Parameters: $strSQL SQL Statement + // + // Return value: = successful + // 0 = no datasets or error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function countRows($strSQL) { + // Send an SQL Statement to the server + $resQuery = mysql_query($strSQL); + // Error processing + if ($resQuery && (mysql_error() == "")) { + return mysql_num_rows($resQuery); + } else { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return 0; + } + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // help functions + // + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Connet to the database server + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameters: $dbserver Server name + // $dbport Server port + // $dbuser Database user + // $dbpasswd Database password + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dbconnect($dbserver,$dbport,$dbuser,$dbpasswd) { + // Not all parameters available + if (($dbserver == "") || ($dbuser == "")) { + $this->strErrorMessage .= translate("Missing server connection parameter!")."::"; + $this->error = true; + return false; + } + $this->strDBId = @mysql_connect($dbserver.":".$dbport,$dbuser,$dbpasswd); + // Session cannot be etablished + if(!$this->strDBId) { + $this->strErrorMessage .= "[".$this->arrSettings['db']['server']."] ".translate("Connection to the database server has failed by reason:")."::"; + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + return true; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: select database + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Parameters: $database Database name + // + // Return value: true = successful + // false = error + // Status message is stored in class variable $this->strErrorMessage + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dbselect($database) { + // Not all parameters available + if ($database == "") { + $this->strErrorMessage .= translate("Missing database connection parameter!")."::"; + $this->error = true; + return false; + } + $bolConnect = @mysql_select_db($database); + // Session cannot be etablished + if(!$bolConnect) { + $this->strErrorMessage .= "[".$this->arrSettings['db']['server']."] ".translate("Connection to the database server has failed by reason:")."::"; + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + $resQuery = mysql_query("set names 'utf8'"); + if (mysql_error() != "") { + $this->strErrorMessage .= mysql_error()."::"; + $this->error = true; + return false; + } + return true; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Close database connection + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Return value: true = successful + // + /////////////////////////////////////////////////////////////////////////////////////////// + function dbdisconnect() { + @mysql_close($this->strDBId); + return true; + } +} +?> \ No newline at end of file diff --git a/functions/nag_class.php b/functions/nag_class.php new file mode 100644 index 0000000..389f47f --- /dev/null +++ b/functions/nag_class.php @@ -0,0 +1,1048 @@ +arrSettings = $_SESSION['SETS']; + if (isset($_SESSION['domain'])) $this->intDomainId = $_SESSION['domain']; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Get menu position + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Determines the actual position inside the menu tree and returns it as an info line + // + // Parameters: $intPageId Current content id + // $strTop Label string for the root node + // + // Return value: HTML info string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getPosition($intPageId,$strTop="") { + $strPosition = ""; + $strSQL = "SELECT B.`mnuName` AS `mainitem`, B.`mnuLink` AS `mainlink`, A.`mnuName` AS `subitem`, A.`mnuLink` AS `sublink` + FROM `tbl_menu` AS A LEFT JOIN `tbl_menu` AS B ON A.`mnuTopId` = B.`mnuId` + WHERE A.`mnuId`=$intPageId"; + $booReturn = $this->myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + if ($booReturn == false) $this->strErrorMessage .= $this->myDBClass->strErrorMessage; + if ($booReturn && ($intDataCount != 0)) { + $strMainLink = $this->arrSettings['path']['base_url'].$arrData[0]['mainlink']; + $strMain = $arrData[0]['mainitem']; + $strSubLink = $this->arrSettings['path']['base_url'].$arrData[0]['sublink']; + $strSub = $arrData[0]['subitem']; + if ($strTop != "") { + $strPosition .= "".$strTop." -> "; + } + if ($strMain != "") { + $strPosition .= "".translate($strMain)." -> ".translate($strSub).""; + } else { + $strPosition .= "".translate($strSub).""; + } + } + return $strPosition; + } + + /////////////////////////////////////////////////////////////////////////////////////////// + // Function: Display main menu + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Build the main menu and display them + // + // Parameters: $intPageId Current content id + // $intCntId Menu group ID + // + // Return value: HTML menu string + // + /////////////////////////////////////////////////////////////////////////////////////////// + function getMenu($intPageId,$intCntId=1) { + // Modify URL for visible/invisible menu + $strQuery = str_replace("menu=visible&","",$_SERVER['QUERY_STRING']); + $strQuery = str_replace("menu=invisible&","",$strQuery); + $strQuery = str_replace("menu=visible","",$strQuery); + $strQuery = str_replace("menu=invisible","",$strQuery); + if ($strQuery != "") { + $strURIVisible = str_replace("&","&",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)."?menu=visible&".$strQuery); + $strURIInvisible = str_replace("&","&",filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)."?menu=invisible&".$strQuery); + } else { + $strURIVisible = filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)."?menu=visible"; + $strURIInvisible = filter_var($_SERVER['PHP_SELF'], FILTER_SANITIZE_STRING)."?menu=invisible"; + } + $this->intPageId = $intPageId; + if (!(isset($_SESSION['menu'])) || ($_SESSION['menu'] != "invisible")) { + // Menu visible + $strMenuHTML = "\n"; + $strMenuHTML .= "\n"; + $this->getMenuRecursive(0,$strMenuHTML,'menu',$intCntId); + $strMenuHTML .= "
\n"; + $strMenuHTML .= "
[".translate('Hide menu')."]\n"; + $strMenuHTML .= "

';if(f.startContainer==l&&f.endContainer==l){l.body.innerHTML=k}else{f.deleteContents();if(l.body.childNodes.length==0){l.body.innerHTML=k}else{if(f.createContextualFragment){f.insertNode(f.createContextualFragment(k))}else{m=l.createDocumentFragment();g=l.createElement("div");m.appendChild(g);g.outerHTML=k;f.insertNode(m)}}}i=h.dom.get("__caret");f=l.createRange();f.setStartBefore(i);f.setEndBefore(i);h.setRng(f);h.dom.remove("__caret");h.setRng(f)}else{if(f.item){l.execCommand("Delete",false,null);f=h.getRng()}f.pasteHTML(k)}if(!j.no_events){h.onSetContent.dispatch(h,j)}},getStart:function(){var g=this.getRng(),h,f,j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}j=g.duplicate();j.collapse(1);h=j.parentElement();f=i=g.parentElement();while(i=i.parentNode){if(i==h){h=f;break}}return h}else{h=g.startContainer;if(h.nodeType==1&&h.hasChildNodes()){h=h.childNodes[Math.min(h.childNodes.length-1,g.startOffset)]}if(h&&h.nodeType==3){return h.parentNode}return h}},getEnd:function(){var g=this,h=g.getRng(),i,f;if(h.duplicate||h.item){if(h.item){return h.item(0)}h=h.duplicate();h.collapse(0);i=h.parentElement();if(i&&i.nodeName=="BODY"){return i.lastChild||i}return i}else{i=h.endContainer;f=h.endOffset;if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[f>0?f-1:f]}if(i&&i.nodeType==3){return i.parentNode}return i}},getBookmark:function(r,s){var v=this,m=v.dom,g,j,i,n,h,o,p,l="\uFEFF",u;function f(x,y){var t=0;d(m.select(x),function(A,z){if(A==y){t=z}});return t}if(r==2){function k(){var x=v.getRng(true),t=m.getRoot(),y={};function z(C,H){var B=C[H?"startContainer":"endContainer"],G=C[H?"startOffset":"endOffset"],A=[],D,F,E=0;if(B.nodeType==3){if(s){for(D=B.previousSibling;D&&D.nodeType==3;D=D.previousSibling){G+=D.nodeValue.length}}A.push(G)}else{F=B.childNodes;if(G>=F.length&&F.length){E=1;G=Math.max(0,F.length-1)}A.push(v.dom.nodeIndex(F[G],s)+E)}for(;B&&B!=t;B=B.parentNode){A.push(v.dom.nodeIndex(B,s))}return A}y.start=z(x,true);if(!v.isCollapsed()){y.end=z(x)}return y}return k()}if(r){return{rng:v.getRng()}}g=v.getRng();i=m.uniqueId();n=tinyMCE.activeEditor.selection.isCollapsed();u="overflow:hidden;line-height:0px";if(g.duplicate||g.item){if(!g.item){j=g.duplicate();try{g.collapse();g.pasteHTML(''+l+"");if(!n){j.collapse(false);g.moveToElementText(j.parentElement());if(g.compareEndPoints("StartToEnd",j)==0){j.move("character",-1)}j.pasteHTML(''+l+"")}}catch(q){return null}}else{o=g.item(0);h=o.nodeName;return{name:h,index:f(h,o)}}}else{o=v.getNode();h=o.nodeName;if(h=="IMG"){return{name:h,index:f(h,o)}}j=g.cloneRange();if(!n){j.collapse(false);j.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_end",style:u},l))}g.collapse(true);g.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_start",style:u},l))}v.moveToBookmark({id:i,keep:1});return{id:i}},moveToBookmark:function(n){var r=this,l=r.dom,i,h,f,q,j,s,o,p;if(r.tridentSel){r.tridentSel.destroy()}if(n){if(n.start){f=l.createRng();q=l.getRoot();function g(z){var t=n[z?"start":"end"],v,x,y,u;if(t){y=t[0];for(x=q,v=t.length-1;v>=1;v--){u=x.childNodes;if(t[v]>u.length-1){return}x=u[t[v]]}if(x.nodeType===3){y=Math.min(t[0],x.nodeValue.length)}if(x.nodeType===1){y=Math.min(t[0],x.childNodes.length)}if(z){f.setStart(x,y)}else{f.setEnd(x,y)}}return true}if(g(true)&&g()){r.setRng(f)}}else{if(n.id){function k(A){var u=l.get(n.id+"_"+A),z,t,x,y,v=n.keep;if(u){z=u.parentNode;if(A=="start"){if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}j=s=z;o=p=t}else{if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}s=z;p=t}if(!v){y=u.previousSibling;x=u.nextSibling;d(c.grep(u.childNodes),function(B){if(B.nodeType==3){B.nodeValue=B.nodeValue.replace(/\uFEFF/g,"")}});while(u=l.get(n.id+"_"+A)){l.remove(u,1)}if(y&&x&&y.nodeType==x.nodeType&&y.nodeType==3&&!c.isOpera){t=y.nodeValue.length;y.appendData(x.nodeValue);l.remove(x);if(A=="start"){j=s=y;o=p=t}else{s=y;p=t}}}}}function m(t){if(l.isBlock(t)&&!t.innerHTML){t.innerHTML=!a?'
':" "}return t}k("start");k("end");if(j){f=l.createRng();f.setStart(m(j),o);f.setEnd(m(s),p);r.setRng(f)}}else{if(n.name){r.select(l.select(n.name)[n.index])}else{if(n.rng){r.setRng(n.rng)}}}}}},select:function(k,j){var i=this,l=i.dom,g=l.createRng(),f;if(k){f=l.nodeIndex(k);g.setStart(k.parentNode,f);g.setEnd(k.parentNode,f+1);if(j){function h(m,o){var n=new c.dom.TreeWalker(m,m);do{if(m.nodeType==3&&c.trim(m.nodeValue).length!=0){if(o){g.setStart(m,0)}else{g.setEnd(m,m.nodeValue.length)}return}if(m.nodeName=="BR"){if(o){g.setStartBefore(m)}else{g.setEndBefore(m)}return}}while(m=(o?n.next():n.prev()))}h(k,1);h(k)}i.setRng(g)}return k},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}if(h.compareEndPoints){return h.compareEndPoints("StartToEnd",h)===0}return !g||h.collapsed},collapse:function(f){var h=this,g=h.getRng(),i;if(g.item){i=g.item(0);g=h.win.document.body.createTextRange();g.moveToElementText(i)}g.collapse(!!f);h.setRng(g)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(l){var g=this,h,i,k,j=g.win.document;if(l&&g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount>0?h.getRangeAt(0):(h.createRange?h.createRange():j.createRange())}}catch(f){}if(c.isIE&&i&&i.setStart&&j.selection.createRange().item){k=j.selection.createRange().item(0);i=j.createRange();i.setStartBefore(k);i.setEndAfter(k)}if(!i){i=j.createRange?j.createRange():j.body.createTextRange()}if(g.selectedRange&&g.explicitRange){if(i.compareBoundaryPoints(i.START_TO_START,g.selectedRange)===0&&i.compareBoundaryPoints(i.END_TO_END,g.selectedRange)===0){i=g.explicitRange}else{g.selectedRange=null;g.explicitRange=null}}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){g.explicitRange=i;try{h.removeAllRanges()}catch(f){}h.addRange(i);g.selectedRange=h.getRangeAt(0)}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var h=this,g=h.getRng(),i=h.getSel(),l,k=g.startContainer,f=g.endContainer;if(!g){return h.dom.getRoot()}if(g.setStart){l=g.commonAncestorContainer;if(!g.collapsed){if(g.startContainer==g.endContainer){if(g.endOffset-g.startOffset<2){if(g.startContainer.hasChildNodes()){l=g.startContainer.childNodes[g.startOffset]}}}if(k.nodeType===3&&f.nodeType===3){function j(p,m){var o=p;while(p&&p.nodeType===3&&p.length===0){p=m?p.nextSibling:p.previousSibling}return p||o}if(k.length===g.startOffset){k=j(k.nextSibling,true)}else{k=k.parentNode}if(g.endOffset===0){f=j(f.previousSibling,false)}else{f=f.parentNode}if(k&&k===f){return k}}}if(l&&l.nodeType==3){return l.parentNode}return l}return g.item?g.item(0):g.parentElement()},getSelectedBlocks:function(g,f){var i=this,j=i.dom,m,h,l,k=[];m=j.getParent(g||i.getStart(),j.isBlock);h=j.getParent(f||i.getEnd(),j.isBlock);if(m){k.push(m)}if(m&&h&&m!=h){l=m;while((l=l.nextSibling)&&l!=h){if(j.isBlock(l)){k.push(l)}}}if(h&&m!=h){k.push(h)}return k},destroy:function(g){var f=this;f.win=null;if(f.tridentSel){f.tridentSel.destroy()}if(!g){c.removeUnload(f.destroy)}},_fixIESelection:function(){var g=this.dom,m=g.doc,h=m.body,j,n,f;m.documentElement.unselectable=true;function i(o,r){var p=h.createTextRange();try{p.moveToPoint(o,r)}catch(q){p=null}return p}function l(p){var o;if(p.button){o=i(p.x,p.y);if(o){if(o.compareEndPoints("StartToStart",n)>0){o.setEndPoint("StartToStart",n)}else{o.setEndPoint("EndToEnd",n)}o.select()}}else{k()}}function k(){var o=m.selection.createRange();if(n&&!o.item&&o.compareEndPoints("StartToEnd",o)===0){n.select()}g.unbind(m,"mouseup",k);g.unbind(m,"mousemove",l);n=j=0}g.bind(m,["mousedown","contextmenu"],function(o){if(o.target.nodeName==="HTML"){if(j){k()}f=m.documentElement;if(f.scrollHeight>f.clientHeight){return}j=1;n=i(o.x,o.y);if(n){g.bind(m,"mouseup",k);g.bind(m,"mousemove",l);g.win.focus();n.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}e.remove_trailing_brs=true;i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/\s*mce(Item\w+|Selected)\s*/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/()/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*(\/\/\s*|\]\]>|-->|\]\]-->)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// "}}else{if(o.length>0){n.firstChild.value=""}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(m.getInner?o.innerHTML:a.trim(i.getOuterHTML(o),m),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],f={},d=[],g=0,e;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=q.create("script",{id:n,type:"text/javascript",src:a._addVer(m)});if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==e){j.push(m);l[m]=c}if(q){if(!f[m]){f[m]=[]}f[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(f[r],function(s){s.func.call(s.scope)});f[r]=e}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);tinymce.dom.TreeWalker=function(a,c){var b=a;function d(i,f,e,j){var h,g;if(i){if(!j&&i[f]){return i[f]}if(i!=c){h=i[e];if(h){return h}for(g=i.parentNode;g&&g!=c;g=g.parentNode){h=g[e];if(h){return h}}}}}this.current=function(){return b};this.next=function(e){return(b=d(b,"firstChild","nextSibling",e))};this.prev=function(e){return(b=d(b,"lastChild","previousSibling",e))}};(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,r){var h=d.startContainer,k=d.startOffset,s=d.endContainer,l=d.endOffset,i,f,n,g,q,p,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(t){r([t])});return}function o(v,u,t){var x=[];for(;v&&v!=t;v=v[u]){x.push(v)}return x}function m(u,t){do{if(u.parentNode==t){return u}u=u.parentNode}while(u)}function j(v,u,x){var t=x?"nextSibling":"previousSibling";for(g=v,q=g.parentNode;g&&g!=u;g=q){q=g.parentNode;p=o(g==v?g:g[t],t);if(p.length){if(!x){p.reverse()}r(p)}}}if(h.nodeType==1&&h.hasChildNodes()){h=h.childNodes[k]}if(s.nodeType==1&&s.hasChildNodes()){s=s.childNodes[Math.min(l-1,s.childNodes.length-1)]}i=c.findCommonAncestor(h,s);if(h==s){return r([h])}for(g=h;g;g=g.parentNode){if(g==s){return j(h,i,true)}if(g==i){break}}for(g=s;g;g=g.parentNode){if(g==h){return j(s,i)}if(g==i){break}}f=m(h,i)||h;n=m(s,i)||s;j(h,f,true);p=o(f==h?f:f.nextSibling,"nextSibling",n==s?n.nextSibling:n);if(p.length){r(p)}j(s,n)}};a.dom.RangeUtils.compareRanges=function(c,b){if(c&&b){if(c.item||c.duplicate){if(c.item&&b.item&&c.item(0)===b.item(0)){return true}if(c.isEqual&&b.isEqual&&b.isEqual(c)){return true}}else{return c.startContainer==b.startContainer&&c.startOffset==b.startOffset}}return false}})(tinymce);(function(b){var a=b.dom.Event,c=b.each;b.create("tinymce.ui.KeyboardNavigation",{KeyboardNavigation:function(e,f){var p=this,m=e.root,l=e.items,n=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,k=e.excludeFromTabOrder,j,h,o,d,g;f=f||b.DOM;j=function(q){g=q.target.id};h=function(q){f.setAttrib(q.target.id,"tabindex","-1")};d=function(q){var r=f.get(g);f.setAttrib(r,"tabindex","0");r.focus()};p.focus=function(){f.get(g).focus()};p.destroy=function(){c(l,function(q){f.unbind(f.get(q.id),"focus",j);f.unbind(f.get(q.id),"blur",h)});f.unbind(f.get(m),"focus",d);f.unbind(f.get(m),"keydown",o);l=f=m=p.focus=j=h=o=d=null;p.destroy=function(){}};p.moveFocus=function(u,r){var q=-1,t=p.controls,s;if(!g){return}c(l,function(x,v){if(x.id===g){q=v;return false}});q+=u;if(q<0){q=l.length-1}else{if(q>=l.length){q=0}}s=l[q];f.setAttrib(g,"tabindex","-1");f.setAttrib(s.id,"tabindex","0");f.get(s.id).focus();if(e.actOnFocus){e.onAction(s.id)}if(r){a.cancel(r)}};o=function(y){var u=37,t=39,x=38,z=40,q=27,s=14,r=13,v=32;switch(y.keyCode){case u:if(i){p.moveFocus(-1)}break;case t:if(i){p.moveFocus(1)}break;case x:if(n){p.moveFocus(-1)}break;case z:if(n){p.moveFocus(1)}break;case q:if(e.onCancel){e.onCancel();a.cancel(y)}break;case s:case r:case v:if(e.onAction){e.onAction(g);a.cancel(y)}break}};c(l,function(s,q){var r;if(!s.id){s.id=f.uniqueId("_mce_item_")}if(k){f.bind(s.id,"blur",h);r="-1"}else{r=(q===0?"0":"-1")}f.setAttrib(s.id,"tabindex",r);f.bind(f.get(s.id),"focus",j)});if(l[0]){g=l[0].id}f.setAttrib(m,"tabindex","-1");f.bind(f.get(m),"focus",d);f.bind(f.get(m),"keydown",o)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeightv){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.select("#menu_"+g.id)[0];h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='';if(e.image){d+=''+a.encode(e.title)+''+c}else{d+=''+(c?''+c+"":"")}d+='";d+="";return d},postRender:function(){var c=this,d=c.settings;b.dom.Event.add(c.id,"click",function(f){if(!c.isDisabled()){return d.onclick.call(d.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(i,h,f){var g=this;g.parent(i,h,f);g.items=[];g.onChange=new a(g);g.onPostRender=new a(g);g.onAdd=new a(g);g.onRenderMenu=new d.util.Dispatcher(this);g.classPrefix="mceListBox"},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var g=this,h,i;if(f!=g.selectedIndex){h=c.get(g.id+"_text");i=g.items[f];if(i){g.selectedValue=i.value;g.selectedIndex=f;c.setHTML(h,c.encode(i.title));c.removeClass(h,"mceTitle");c.setAttrib(g.id,"aria-valuenow",i.title)}else{c.setHTML(h,c.encode(g.settings.title));c.addClass(h,"mceTitle");g.selectedValue=g.selectedIndex=null;c.setAttrib(g.id,"aria-valuenow",g.settings.title)}h=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i="",f=this,g=f.settings,j=f.classPrefix;i='';i+="";i+="";i+="";return i},showMenu:function(){var g=this,j,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&&g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}j=c.getPos(this.settings.menu_container);i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(k){if(k.value===g.selectedValue){f.items[k.id].setSelected(1);g.oldID=k.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,"mousedown",g.hideMenu,g);c.addClass(g.id,g.classPrefix+"Selected")},hideMenu:function(g){var f=this;if(f.menu&&f.menu.isMenuVisible){c.removeClass(f.id,f.classPrefix+"Selected");if(g&&g.type=="mousedown"&&(g.target.id==f.id+"_text"||g.target.id==f.id+"_open")){return}if(!g||!c.getParent(g.target,".mceMenu")){c.removeClass(f.id,f.classPrefix+"Selected");b.remove(c.doc,"mousedown",f.hideMenu,f);f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+"_menu",{menu_line:1,"class":g.classPrefix+"Menu mceNoIcons",max_width:150,max_height:150});f.onHideMenu.add(function(){g.hideMenu();g.focus()});f.add({title:g.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}});e(g.items,function(h){if(h.value===undefined){f.add({title:h.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}})}else{h.id=c.uniqueId();h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)}});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,"click",f.showMenu,f);b.add(f.id,"keydown",function(h){if(h.keyCode==32){f.showMenu(h);b.cancel(h)}});b.add(f.id,"focus",function(){if(!f._focused){f.keyDownHandler=b.add(f.id,"keydown",function(h){if(h.keyCode==40){f.showMenu();b.cancel(h)}});f.keyPressHandler=b.add(f.id,"keypress",function(i){var h;if(i.keyCode==13){h=f.selectedValue;f.selectedValue=null;b.cancel(i);f.settings.onselect(h)}})}f._focused=1});b.add(f.id,"blur",function(){b.remove(f.id,"keydown",f.keyDownHandler);b.remove(f.id,"keypress",f.keyPressHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,"mouseover",function(){if(!c.hasClass(f.id,g+"Disabled")){c.addClass(f.id,g+"Hover")}});b.add(f.id,"mouseout",function(){if(!c.hasClass(f.id,g+"Disabled")){c.removeClass(f.id,g+"Hover")}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix="mceNativeListBox"},setDisabled:function(f){c.get(this.id).disabled=f;this.setAriaProperty("disabled",f)},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),"option",f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var g,f=this;g=c.createHTML("option",{value:""},"-- "+f.settings.title+" --");e(f.items,function(h){g+=c.createHTML("option",{value:h.value},h.title)});g=c.createHTML("select",{id:f.id,"class":"mceNativeListBox","aria-labelledby":f.id+"_aria"},g);g+=c.createHTML("span",{id:f.id+"_aria",style:"display: none"},f.settings.title);return g},postRender:function(){var g=this,h,i=true;g.rendered=true;function f(k){var j=g.items[k.target.selectedIndex-1];if(j&&(j=j.value)){g.onChange.dispatch(g,j);if(g.settings.onselect){g.settings.onselect(j)}}}b.add(g.id,"change",f);b.add(g.id,"keydown",function(k){var j;b.remove(g.id,"change",h);i=false;j=b.add(g.id,"blur",function(){if(i){return}i=true;b.add(g.id,"change",f);b.remove(g.id,"blur",j)});if(k.keyCode==13||k.keyCode==32){f(k);return b.cancel(k)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+=""+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'');i+=""+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"";i+="";i=b.createHTML("table",{id:f.id,role:"presentation",tabindex:"0","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("span",{role:"button","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(i){i=i.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");g=c.add(g,"a",{role:"option",href:"javascript:;",style:{backgroundColor:"#"+i},title:p.editor.getLang("colors."+i,i),"data-mce-color":"#"+i});if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+i;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");new d.ui.KeyboardNavigation({root:p.id+"_menu",items:c.select("a",p.id+"_menu"),onCancel:function(){p.hideMenu();p.focus()}});a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return a.cancel(i)});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){this.parent();a.clear(this.id+"_menu");a.clear(this.id+"_more");c.remove(this.id+"_menu")}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('
');i.push("");i.push('");j(e,function(h){i.push(h.renderHTML())});i.push("");i.push("
");return i.join("")},focus:function(){this.keyNav.focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,""))}}if(c.stdMode){f+=''+k.renderHTML()+""}else{f+=""+k.renderHTML()+""}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,""))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,""));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},""+f+"")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){return this.lookup[d]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(e,d){this.items.push(d);this.lookup[e]=d;this.onAdd.dispatch(this,e,d);return d},load:function(h,e,d,g){var f=this;if(f.urls[h]){return}if(e.indexOf("/")!=0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}f.urls[h]=e.substring(0,e.lastIndexOf("/"));if(!f.lookup[h]){b.ScriptLoader.add(e,d,g)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(q){var n=this,p,l=j.ScriptLoader,u,o=[],m;function r(x,y,t){var v=x[y];if(!v){return}if(j.is(v,"string")){t=v.replace(/\.\w+$/,"");t=t?j.resolve(t):0;v=j.resolve(v)}return v.apply(t||this,Array.prototype.slice.call(arguments,2))}q=d({theme:"simple",language:"en"},q);n.settings=q;i.add(document,"init",function(){var s,v;r(q,"onpageload");switch(q.mode){case"exact":s=q.elements||"";if(s.length>0){g(e(s),function(x){if(k.get(x)){m=new j.Editor(x,q);o.push(m);m.render(1)}else{g(document.forms,function(y){g(y.elements,function(z){if(z.name===x){x="mce_editor_"+c++;k.setAttrib(z,"id",x);m=new j.Editor(x,q);o.push(m);m.render(1)}})})}})}break;case"textareas":case"specific_textareas":function t(y,x){return x.constructor===RegExp?x.test(y.className):k.hasClass(y,x)}g(k.select("textarea"),function(x){if(q.editor_deselector&&t(x,q.editor_deselector)){return}if(!q.editor_selector||t(x,q.editor_selector)){u=k.get(x.name);if(!x.id&&!u){x.id=x.name}if(!x.id||n.get(x.id)){x.id=k.uniqueId()}m=new j.Editor(x.id,q);o.push(m);m.render(1)}});break}if(q.oninit){s=v=0;g(o,function(x){v++;if(!x.initialized){x.onInit.add(function(){s++;if(s==v){r(q,"oninit")}})}else{s++}if(s==v){r(q,"oninit")}})}})},get:function(l){if(l===a){return this.editors}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l':"",visual_table_class:"mceItemTable",visual:1,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",apply_source_formatting:1,directionality:"ltr",forced_root_block:"p",hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,inline_styles:1,convert_fonts_to_spans:true,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",validate:true,entity_encoding:"named",url_converter:p.convertURL,url_converter_scope:p,ie7_compat:true},q);p.documentBaseURI=new m.util.URI(q.document_base_url||m.documentBaseURL,{base_uri:tinyMCE.baseURI});p.baseURI=m.baseURI;p.contentCSS=[];p.execCallback("setup",p)},render:function(r){var u=this,v=u.settings,x=u.id,p=m.ScriptLoader;if(!j.domLoaded){j.add(document,"init",function(){u.render()});return}tinyMCE.settings=v;if(!u.getElement()){return}if(m.isIDevice){return}if(!/TEXTAREA|INPUT/i.test(u.getElement().nodeName)&&v.hidden_input&&n.getParent(x,"form")){n.insertAfter(n.create("input",{type:"hidden",name:x}),x)}if(m.WindowManager){u.windowManager=new m.WindowManager(u)}if(v.encoding=="xml"){u.onGetContent.add(function(s,t){if(t.save){t.content=n.encode(t.content)}})}if(v.add_form_submit_trigger){u.onSubmit.addToTop(function(){if(u.initialized){u.save();u.isNotDirty=1}})}if(v.add_unload_trigger){u._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(u.initialized&&!u.destroyed&&!u.isHidden()){u.save({format:"raw",no_events:true})}})}m.addUnload(u.destroy,u);if(v.submit_patch){u.onBeforeRenderUI.add(function(){var s=u.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){u.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){m.triggerSave();u.isNotDirty=1;return u.formElement._mceOldSubmit(u.formElement)}}s=null})}function q(){if(v.language&&v.language_load!==false){p.add(m.baseURL+"/langs/"+v.language+".js")}if(v.theme&&v.theme.charAt(0)!="-"&&!h.urls[v.theme]){h.load(v.theme,"themes/"+v.theme+"/editor_template"+m.suffix+".js")}i(g(v.plugins),function(s){if(s&&s.charAt(0)!="-"&&!c.urls[s]){if(s=="safari"){return}c.load(s,"plugins/"+s+"/editor_plugin"+m.suffix+".js")}});p.loadQueue(function(){if(!u.removed){u.init()}})}q()},init:function(){var r,F=this,G=F.settings,C,z,B=F.getElement(),q,p,D,x,A,E,y;m.add(F);G.aria_label=G.aria_label||n.getAttrib(B,"aria-label",F.getLang("aria.rich_text_area"));if(G.theme){G.theme=G.theme.replace(/-/,"");q=h.get(G.theme);F.theme=new q();if(F.theme.init&&G.init_theme){F.theme.init(F,h.urls[G.theme]||m.documentBaseURL.replace(/\/$/,""))}}i(g(G.plugins.replace(/\-/g,"")),function(H){var I=c.get(H),t=c.urls[H]||m.documentBaseURL.replace(/\/$/,""),s;if(I){s=new I(F,t);F.plugins[H]=s;if(s.init){s.init(F,t)}}});if(G.popup_css!==false){if(G.popup_css){G.popup_css=F.documentBaseURI.toAbsolute(G.popup_css)}else{G.popup_css=F.baseURI.toAbsolute("themes/"+G.theme+"/skins/"+G.skin+"/dialog.css")}}if(G.popup_css_add){G.popup_css+=","+F.documentBaseURI.toAbsolute(G.popup_css_add)}F.controlManager=new m.ControlManager(F);if(G.custom_undo_redo){F.onBeforeExecCommand.add(function(t,H,u,I,s){if(H!="Undo"&&H!="Redo"&&H!="mceRepaint"&&(!s||!s.skip_undo)){F.undoManager.beforeChange()}});F.onExecCommand.add(function(t,H,u,I,s){if(H!="Undo"&&H!="Redo"&&H!="mceRepaint"&&(!s||!s.skip_undo)){F.undoManager.add()}})}F.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){F.nodeChanged()}});if(a){function v(s,t){if(!t||!t.initial){F.execCommand("mceRepaint")}}F.onUndo.add(v);F.onRedo.add(v);F.onSetContent.add(v)}F.onBeforeRenderUI.dispatch(F,F.controlManager);if(G.render_ui){C=G.width||B.style.width||B.offsetWidth;z=G.height||B.style.height||B.offsetHeight;F.orgDisplay=B.style.display;E=/^[0-9\.]+(|px)$/i;if(E.test(""+C)){C=Math.max(parseInt(C)+(q.deltaWidth||0),100)}if(E.test(""+z)){z=Math.max(parseInt(z)+(q.deltaHeight||0),100)}q=F.theme.renderUI({targetNode:B,width:C,height:z,deltaWidth:G.delta_width,deltaHeight:G.delta_height});F.editorContainer=q.editorContainer}if(document.domain&&location.hostname!=document.domain){m.relaxedDomain=document.domain}n.setStyles(q.sizeContainer||q.editorContainer,{width:C,height:z});if(G.content_css){m.each(g(G.content_css),function(s){F.contentCSS.push(F.documentBaseURI.toAbsolute(s))})}z=(q.iframeHeight||z)+(typeof(z)=="number"?(q.deltaHeight||0):"");if(z<100){z=100}F.iframeHTML=G.doctype+'';if(G.document_base_url!=m.documentBaseURL){F.iframeHTML+=''}if(G.ie7_compat){F.iframeHTML+=''}else{F.iframeHTML+=''}F.iframeHTML+='';if(!a||!/Firefox\/2/.test(navigator.userAgent)){for(y=0;y'}F.contentCSS=[]}x=G.body_id||"tinymce";if(x.indexOf("=")!=-1){x=F.getParam("body_id","","hash");x=x[F.id]||x}A=G.body_class||"";if(A.indexOf("=")!=-1){A=F.getParam("body_class","","hash");A=A[F.id]||""}F.iframeHTML+='';if(m.relaxedDomain&&(b||(m.isOpera&&parseFloat(opera.version())<11))){D='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+F.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}r=n.add(q.iframeContainer,"iframe",{id:F.id+"_ifr",src:D||'javascript:""',frameBorder:"0",title:G.aria_label,style:{width:"100%",height:z}});F.contentAreaContainer=q.iframeContainer;n.get(q.editorContainer).style.display=F.orgDisplay;n.get(F.id).style.display="none";n.setAttrib(F.id,"aria-hidden",true);if(!m.relaxedDomain||!D){F.setupIframe()}B=r=q=null},setupIframe:function(){var r=this,x=r.settings,y=n.get(r.id),z=r.getDoc(),v,p;if(!b||!m.relaxedDomain){z.open();z.write(r.iframeHTML);z.close();if(m.relaxedDomain){z.domain=m.relaxedDomain}}if(!b){try{if(!x.readonly){z.designMode="On"}}catch(q){}}if(b){p=r.getBody();n.hide(p);if(!x.readonly){p.contentEditable=true}n.show(p)}r.schema=new m.html.Schema(x);r.dom=new m.dom.DOMUtils(r.getDoc(),{keep_values:true,url_converter:r.convertURL,url_converter_scope:r,hex_colors:x.force_hex_style_colors,class_filter:x.class_filter,update_styles:1,fix_ie_paragraphs:1,schema:r.schema});r.parser=new m.html.DomParser(x,r.schema);r.parser.addAttributeFilter("name",function(s,t){var B=s.length,D,A,C,E;while(B--){E=s[B];if(E.name==="a"&&E.firstChild){C=E.parent;D=E.lastChild;do{A=D.prev;C.insert(D,E);D=A}while(D)}}});r.parser.addAttributeFilter("src,href,style",function(s,t){var A=s.length,B,D=r.dom,C;while(A--){B=s[A];C=B.attr(t);if(t==="style"){B.attr("data-mce-style",D.serializeStyle(D.parseStyle(C),B.name))}else{B.attr("data-mce-"+t,r.convertURL(C,t,B.name))}}});r.parser.addNodeFilter("script",function(s,t){var A=s.length;while(A--){s[A].attr("type","mce-text/javascript")}});r.parser.addNodeFilter("#cdata",function(s,t){var A=s.length,B;while(A--){B=s[A];B.type=8;B.name="#comment";B.value="[CDATA["+B.value+"]]"}});r.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(t,A){var B=t.length,C,s=r.schema.getNonEmptyElements();while(B--){C=t[B];if(C.isEmpty(s)){C.empty().append(new m.html.Node("br",1)).shortEnded=true}}});r.serializer=new m.dom.Serializer(x,r.dom,r.schema);r.selection=new m.dom.Selection(r.dom,r.getWin(),r.serializer);r.formatter=new m.Formatter(this);r.formatter.register({alignleft:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"}},{selector:"img,table",collapsed:false,styles:{"float":"left"}}],aligncenter:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"}},{selector:"img",collapsed:false,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:false,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"}},{selector:"img,table",collapsed:false,styles:{"float":"right"}}],alignfull:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"}}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:true},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:false},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:false},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});i("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(s){r.formatter.register(s,{block:s,remove:"all"})});r.formatter.register(r.settings.formats);r.undoManager=new m.UndoManager(r);r.undoManager.onAdd.add(function(t,s){if(t.hasUndo()){return r.onChange.dispatch(r,s,t)}});r.undoManager.onUndo.add(function(t,s){return r.onUndo.dispatch(r,s,t)});r.undoManager.onRedo.add(function(t,s){return r.onRedo.dispatch(r,s,t)});r.forceBlocks=new m.ForceBlocks(r,{forced_root_block:x.forced_root_block});r.editorCommands=new m.EditorCommands(r);r.serializer.onPreProcess.add(function(s,t){return r.onPreProcess.dispatch(r,t,s)});r.serializer.onPostProcess.add(function(s,t){return r.onPostProcess.dispatch(r,t,s)});r.onPreInit.dispatch(r);if(!x.gecko_spellcheck){r.getBody().spellcheck=0}if(!x.readonly){r._addEvents()}r.controlManager.onPostRender.dispatch(r,r.controlManager);r.onPostRender.dispatch(r);if(x.directionality){r.getBody().dir=x.directionality}if(x.nowrap){r.getBody().style.whiteSpace="nowrap"}if(x.handle_node_change_callback){r.onNodeChange.add(function(t,s,A){r.execCallback("handle_node_change_callback",r.id,A,-1,-1,true,r.selection.isCollapsed())})}if(x.save_callback){r.onSaveContent.add(function(s,A){var t=r.execCallback("save_callback",r.id,A.content,r.getBody());if(t){A.content=t}})}if(x.onchange_callback){r.onChange.add(function(t,s){r.execCallback("onchange_callback",r,s)})}if(x.protect){r.onBeforeSetContent.add(function(s,t){if(x.protect){i(x.protect,function(A){t.content=t.content.replace(A,function(B){return""})})}})}if(x.convert_newlines_to_brs){r.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,"
")}})}if(x.preformatted){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*/,"");t.content=t.content.replace(/<\/pre>\s*$/,"");if(t.set){t.content='
'+t.content+"
"}})}if(x.verify_css_classes){r.serializer.attribValueFilter=function(C,A){var B,t;if(C=="class"){if(!r.classesRE){t=r.dom.getClasses();if(t.length>0){B="";i(t,function(s){B+=(B?"|":"")+s["class"]});r.classesRE=new RegExp("("+B+")","gi")}}return !r.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(A)||r.classesRE.test(A)?A:""}return A}}if(x.cleanup_callback){r.onBeforeSetContent.add(function(s,t){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)});r.onPreProcess.add(function(s,t){if(t.set){r.execCallback("cleanup_callback","insert_to_editor_dom",t.node,t)}if(t.get){r.execCallback("cleanup_callback","get_from_editor_dom",t.node,t)}});r.onPostProcess.add(function(s,t){if(t.set){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)}if(t.get){t.content=r.execCallback("cleanup_callback","get_from_editor",t.content,t)}})}if(x.save_callback){r.onGetContent.add(function(s,t){if(t.save){t.content=r.execCallback("save_callback",r.id,t.content,r.getBody())}})}if(x.handle_event_callback){r.onEvent.add(function(s,t,A){if(r.execCallback("handle_event_callback",t,s,A)===false){j.cancel(t)}})}r.onSetContent.add(function(){r.addVisual(r.getBody())});if(x.padd_empty_editor){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
[\r\n]*)$/,"")})}if(a){function u(s,t){i(s.dom.select("a"),function(B){var A=B.parentNode;if(s.dom.isBlock(A)&&A.lastChild===B){s.dom.add(A,"br",{"data-mce-bogus":1})}})}r.onExecCommand.add(function(s,t){if(t==="CreateLink"){u(s)}});r.onSetContent.add(r.selection.onSetContent.add(u));if(!x.readonly){try{z.designMode="Off";z.designMode="On"}catch(q){}}}setTimeout(function(){if(r.removed){return}r.load({initial:true,format:"html"});r.startContent=r.getContent({format:"raw"});r.undoManager.add();r.initialized=true;r.onInit.dispatch(r);r.execCallback("setupcontent_callback",r.id,r.getBody(),r.getDoc());r.execCallback("init_instance_callback",r);r.focus(true);r.nodeChanged({initial:1});i(r.contentCSS,function(s){r.dom.loadCSS(s)});if(x.auto_focus){setTimeout(function(){var s=m.get(x.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getWin().focus()},100)}},1);y=null},focus:function(s){var x,q=this,v=q.settings.content_editable,r,p,u=q.getDoc();if(!s){r=q.selection.getRng();if(r.item){p=r.item(0)}if(!v){q.getWin().focus()}if(p&&p.ownerDocument==u){r=u.body.createControlRange();r.addElement(p);r.select()}}if(m.activeEditor!=q){if((x=m.activeEditor)!=null){x.onDeactivate.dispatch(x,q)}q.onActivate.dispatch(q,x)}m._setActive(q)},execCallback:function(u){var p=this,r=p.settings[u],q;if(!r){return}if(p.callbackLookup&&(q=p.callbackLookup[u])){r=q.func;q=q.scope}if(d(r,"string")){q=r.replace(/\.\w+$/,"");q=q?m.resolve(q):0;r=m.resolve(r);p.callbackLookup=p.callbackLookup||{};p.callbackLookup[u]={func:r,scope:q}}return r.apply(q||p,Array.prototype.slice.call(arguments,1))},translate:function(p){var r=this.settings.language||"en",q=m.i18n;if(!p){return""}return q[r+"."+p]||p.replace(/{\#([^}]+)\}/g,function(t,s){return q[r+"."+s]||"{#"+s+"}"})},getLang:function(q,p){return m.i18n[(this.settings.language||"en")+"."+q]||(d(p)?p:"{#"+q+"}")},getParam:function(u,r,p){var s=m.trim,q=d(this.settings[u])?this.settings[u]:r,t;if(p==="hash"){t={};if(d(q,"string")){i(q.indexOf("=")>0?q.split(/[;,](?![^=;,]*(?:[;,]|$))/):q.split(","),function(x){x=x.split("=");if(x.length>1){t[s(x[0])]=s(x[1])}else{t[s(x[0])]=s(x)}})}else{t=q}return t}return q},nodeChanged:function(r){var p=this,q=p.selection,u=q.getStart()||p.getBody();if(p.initialized){r=r||{};u=b&&u.ownerDocument!=p.getDoc()?p.getBody():u;r.parents=[];p.dom.getParent(u,function(s){if(s.nodeName=="BODY"){return true}r.parents.push(s)});p.onNodeChange.dispatch(p,r?r.controlManager||p.controlManager:p.controlManager,u,q.isCollapsed(),r)}},addButton:function(r,q){var p=this;p.buttons=p.buttons||{};p.buttons[r]=q},addCommand:function(p,r,q){this.execCommands[p]={func:r,scope:q||this}},addQueryStateHandler:function(p,r,q){this.queryStateCommands[p]={func:r,scope:q||this}},addQueryValueHandler:function(p,r,q){this.queryValueCommands[p]={func:r,scope:q||this}},addShortcut:function(r,u,p,s){var q=this,v;if(!q.settings.custom_shortcuts){return false}q.shortcuts=q.shortcuts||{};if(d(p,"string")){v=p;p=function(){q.execCommand(v,false,null)}}if(d(p,"object")){v=p;p=function(){q.execCommand(v[0],v[1],v[2])}}i(g(r),function(t){var x={func:p,scope:s||this,desc:u,alt:false,ctrl:false,shift:false};i(g(t,"+"),function(y){switch(y){case"alt":case"ctrl":case"shift":x[y]=true;break;default:x.charCode=y.charCodeAt(0);x.keyCode=y.toUpperCase().charCodeAt(0)}});q.shortcuts[(x.ctrl?"ctrl":"")+","+(x.alt?"alt":"")+","+(x.shift?"shift":"")+","+x.keyCode]=x});return true},execCommand:function(x,v,z,p){var r=this,u=0,y,q;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x)&&(!p||!p.skip_focus)){r.focus()}y={};r.onBeforeExecCommand.dispatch(r,x,v,z,y);if(y.terminate){return false}if(r.execCallback("execcommand_callback",r.id,r.selection.getNode(),x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}if(y=r.execCommands[x]){q=y.func.call(y.scope,v,z);if(q!==true){r.onExecCommand.dispatch(r,x,v,z,p);return q}}i(r.plugins,function(s){if(s.execCommand&&s.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);u=1;return false}});if(u){return true}if(r.theme&&r.theme.execCommand&&r.theme.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}if(r.editorCommands.execCommand(x,v,z)){r.onExecCommand.dispatch(r,x,v,z,p);return true}r.getDoc().execCommand(x,v,z);r.onExecCommand.dispatch(r,x,v,z,p)},queryCommandState:function(u){var q=this,v,r;if(q._isHidden()){return}if(v=q.queryStateCommands[u]){r=v.func.call(v.scope);if(r!==true){return r}}v=q.editorCommands.queryCommandState(u);if(v!==-1){return v}try{return this.getDoc().queryCommandState(u)}catch(p){}},queryCommandValue:function(v){var q=this,u,r;if(q._isHidden()){return}if(u=q.queryValueCommands[v]){r=u.func.call(u.scope);if(r!==true){return r}}u=q.editorCommands.queryCommandValue(v);if(d(u)){return u}try{return this.getDoc().queryCommandValue(v)}catch(p){}},show:function(){var p=this;n.show(p.getContainer());n.hide(p.id);p.load()},hide:function(){var p=this,q=p.getDoc();if(b&&q){q.execCommand("SelectAll")}p.save();n.hide(p.getContainer());n.setStyle(p.id,"display",p.orgDisplay)},isHidden:function(){return !n.isHidden(this.id)},setProgressState:function(p,q,r){this.onSetProgressState.dispatch(this,p,q,r);return p},load:function(s){var p=this,r=p.getElement(),q;if(r){s=s||{};s.load=true;q=p.setContent(d(r.value)?r.value:r.innerHTML,s);s.element=r;if(!s.no_events){p.onLoadContent.dispatch(p,s)}s.element=r=null;return q}},save:function(u){var p=this,s=p.getElement(),q,r;if(!s||!p.initialized){return}u=u||{};u.save=true;if(!u.no_events){p.undoManager.typing=false;p.undoManager.add()}u.element=s;q=u.content=p.getContent(u);if(!u.no_events){p.onSaveContent.dispatch(p,u)}q=u.content;if(!/TEXTAREA|INPUT/i.test(s.nodeName)){s.innerHTML=q;if(r=n.getParent(p.id,"form")){i(r.elements,function(t){if(t.name==p.id){t.value=q;return false}})}}else{s.value=q}u.element=s=null;return q},setContent:function(t,s){var r=this,q,p=r.getBody();s=s||{};s.format=s.format||"html";s.set=true;s.content=t;if(!s.no_events){r.onBeforeSetContent.dispatch(r,s)}t=s.content;if(!m.isIE&&(t.length===0||/^\s+$/.test(t))){p.innerHTML='
';return}if(s.format!=="raw"){t=new m.html.Serializer({},r.schema).serialize(r.parser.parse(t))}s.content=m.trim(t);r.dom.setHTML(p,s.content);if(!s.no_events){r.onSetContent.dispatch(r,s)}return s.content},getContent:function(q){var p=this,r;q=q||{};q.format=q.format||"html";q.get=true;if(!q.no_events){p.onBeforeGetContent.dispatch(p,q)}if(q.format=="raw"){r=p.getBody().innerHTML}else{r=p.serializer.serialize(p.getBody(),q)}q.content=m.trim(r);if(!q.no_events){p.onGetContent.dispatch(p,q)}return q.content},isDirty:function(){var p=this;return m.trim(p.startContent)!=m.trim(p.getContent({format:"raw",no_events:1}))&&!p.isNotDirty},getContainer:function(){var p=this;if(!p.container){p.container=n.get(p.editorContainer||p.id+"_parent")}return p.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return n.get(this.settings.content_element||this.id)},getWin:function(){var p=this,q;if(!p.contentWindow){q=n.get(p.id+"_ifr");if(q){p.contentWindow=q.contentWindow}}return p.contentWindow},getDoc:function(){var q=this,p;if(!q.contentDocument){p=q.getWin();if(p){q.contentDocument=p.document}}return q.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(p,x,v){var q=this,r=q.settings;if(r.urlconverter_callback){return q.execCallback("urlconverter_callback",p,v,true,x)}if(!r.convert_urls||(v&&v.nodeName=="LINK")||p.indexOf("file:")===0){return p}if(r.relative_urls){return q.documentBaseURI.toRelative(p)}p=q.documentBaseURI.toAbsolute(p,r.remove_script_host);return p},addVisual:function(r){var p=this,q=p.settings;r=r||p.getBody();if(!d(p.hasVisual)){p.hasVisual=q.visual}i(p.dom.select("table,a",r),function(t){var s;switch(t.nodeName){case"TABLE":s=p.dom.getAttrib(t,"border");if(!s||s=="0"){if(p.hasVisual){p.dom.addClass(t,q.visual_table_class)}else{p.dom.removeClass(t,q.visual_table_class)}}return;case"A":s=p.dom.getAttrib(t,"name");if(s){if(p.hasVisual){p.dom.addClass(t,"mceItemAnchor")}else{p.dom.removeClass(t,"mceItemAnchor")}}return}});p.onVisualAid.dispatch(p,r,p.hasVisual)},remove:function(){var p=this,q=p.getContainer();p.removed=1;p.hide();p.execCallback("remove_instance_callback",p);p.onRemove.dispatch(p);p.onExecCommand.listeners=[];m.remove(p);n.remove(q)},destroy:function(q){var p=this;if(p.destroyed){return}if(!q){m.removeUnload(p.destroy);tinyMCE.onBeforeUnload.remove(p._beforeUnload);if(p.theme&&p.theme.destroy){p.theme.destroy()}p.controlManager.destroy();p.selection.destroy();p.dom.destroy();if(!p.settings.content_editable){j.clear(p.getWin());j.clear(p.getDoc())}j.clear(p.getBody());j.clear(p.formElement)}if(p.formElement){p.formElement.submit=p.formElement._mceOldSubmit;p.formElement._mceOldSubmit=null}p.contentAreaContainer=p.formElement=p.container=p.settings.content_element=p.bodyElement=p.contentDocument=p.contentWindow=null;if(p.selection){p.selection=p.selection.win=p.selection.dom=p.selection.dom.doc=null}p.destroyed=1},_addEvents:function(){var B=this,r,C=B.settings,q=B.dom,x={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function p(t,D){var s=t.type;if(B.removed){return}if(B.onEvent.dispatch(B,t,D)!==false){B[x[t.fakeType||t.type]].dispatch(B,t,D)}}i(x,function(t,s){switch(s){case"contextmenu":q.bind(B.getDoc(),s,p);break;case"paste":q.bind(B.getBody(),s,function(D){p(D)});break;case"submit":case"reset":q.bind(B.getElement().form||n.getParent(B.id,"form"),s,p);break;default:q.bind(C.content_editable?B.getBody():B.getDoc(),s,p)}});q.bind(C.content_editable?B.getBody():(a?B.getDoc():B.getWin()),"focus",function(s){B.focus(true)});if(m.isGecko){q.bind(B.getDoc(),"DOMNodeInserted",function(t){var s;t=t.target;if(t.nodeType===1&&t.nodeName==="IMG"&&(s=t.getAttribute("data-mce-src"))){t.src=B.documentBaseURI.toAbsolute(s)}})}if(a){function u(){var E=this,G=E.getDoc(),F=E.settings;if(a&&!F.readonly){if(E._isHidden()){try{if(!F.content_editable){G.designMode="On"}}catch(D){}}try{G.execCommand("styleWithCSS",0,false)}catch(D){if(!E._isHidden()){try{G.execCommand("useCSS",0,true)}catch(D){}}}if(!F.table_inline_editing){try{G.execCommand("enableInlineTableEditing",false,false)}catch(D){}}if(!F.object_resizing){try{G.execCommand("enableObjectResizing",false,false)}catch(D){}}}}B.onBeforeExecCommand.add(u);B.onMouseDown.add(u)}if(m.isWebKit){B.onClick.add(function(s,t){t=t.target;if(t.nodeName=="IMG"||(t.nodeName=="A"&&q.hasClass(t,"mceItemAnchor"))){B.selection.getSel().setBaseAndExtent(t,0,t,1);B.nodeChanged()}})}B.onMouseUp.add(B.nodeChanged);B.onKeyUp.add(function(s,t){var D=t.keyCode;if((D>=33&&D<=36)||(D>=37&&D<=40)||D==13||D==45||D==46||D==8||(m.isMac&&(D==91||D==93))||t.ctrlKey){B.nodeChanged()}});B.onReset.add(function(){B.setContent(B.startContent,{format:"raw"})});if(C.custom_shortcuts){if(C.custom_undo_redo_keyboard_shortcuts){B.addShortcut("ctrl+z",B.getLang("undo_desc"),"Undo");B.addShortcut("ctrl+y",B.getLang("redo_desc"),"Redo")}B.addShortcut("ctrl+b",B.getLang("bold_desc"),"Bold");B.addShortcut("ctrl+i",B.getLang("italic_desc"),"Italic");B.addShortcut("ctrl+u",B.getLang("underline_desc"),"Underline");for(r=1;r<=6;r++){B.addShortcut("ctrl+"+r,"",["FormatBlock",false,"h"+r])}B.addShortcut("ctrl+7","",["FormatBlock",false,"

"]);B.addShortcut("ctrl+8","",["FormatBlock",false,"

"]);B.addShortcut("ctrl+9","",["FormatBlock",false,"
"]);function v(t){var s=null;if(!t.altKey&&!t.ctrlKey&&!t.metaKey){return s}i(B.shortcuts,function(D){if(m.isMac&&D.ctrl!=t.metaKey){return}else{if(!m.isMac&&D.ctrl!=t.ctrlKey){return}}if(D.alt!=t.altKey){return}if(D.shift!=t.shiftKey){return}if(t.keyCode==D.keyCode||(t.charCode&&t.charCode==D.charCode)){s=D;return false}});return s}B.onKeyUp.add(function(s,t){var D=v(t);if(D){return j.cancel(t)}});B.onKeyPress.add(function(s,t){var D=v(t);if(D){return j.cancel(t)}});B.onKeyDown.add(function(s,t){var D=v(t);if(D){D.func.call(D.scope);return j.cancel(t)}})}if(m.isIE){q.bind(B.getDoc(),"controlselect",function(D){var t=B.resizeInfo,s;D=D.target;if(D.nodeName!=="IMG"){return}if(t){q.unbind(t.node,t.ev,t.cb)}if(!q.hasClass(D,"mceItemNoResize")){ev="resizeend";s=q.bind(D,ev,function(F){var E;F=F.target;if(E=q.getStyle(F,"width")){q.setAttrib(F,"width",E.replace(/[^0-9%]+/g,""));q.setStyle(F,"width","")}if(E=q.getStyle(F,"height")){q.setAttrib(F,"height",E.replace(/[^0-9%]+/g,""));q.setStyle(F,"height","")}})}else{ev="resizestart";s=q.bind(D,"resizestart",j.cancel,j)}t=B.resizeInfo={node:D,ev:ev,cb:s}});B.onKeyDown.add(function(s,D){var t;switch(D.keyCode){case 8:t=B.getDoc().selection;if(t.createRange&&t.createRange().item){s.dom.remove(t.createRange().item(0));return j.cancel(D)}}})}if(m.isOpera){B.onClick.add(function(s,t){j.prevent(t)})}if(C.custom_undo_redo){function y(){B.undoManager.typing=false;B.undoManager.add()}q.bind(B.getDoc(),"focusout",function(s){if(!B.removed&&B.undoManager.typing){y()}});B.dom.bind(B.dom.getRoot(),"dragend",function(s){y()});B.onKeyUp.add(function(t,F){var s,E,D;if(b&&F.keyCode==8){s=B.selection.getRng();if(s.parentElement){E=s.parentElement();D=B.selection.getBookmark();E.innerHTML=E.innerHTML;B.selection.moveToBookmark(D)}}if((F.keyCode>=33&&F.keyCode<=36)||(F.keyCode>=37&&F.keyCode<=40)||F.keyCode==13||F.keyCode==45||F.ctrlKey){y()}});B.onKeyDown.add(function(t,H){var s,F,E,G=H.keyCode;if(b&&G==46){s=B.selection.getRng();if(s.parentElement){F=s.parentElement();if(!B.undoManager.typing){B.undoManager.beforeChange();B.undoManager.typing=true;B.undoManager.add()}if(H.ctrlKey){s.moveEnd("word",1);s.select()}B.selection.getSel().clear();if(s.parentElement()==F){E=B.selection.getBookmark();try{F.innerHTML=F.innerHTML}catch(D){}B.selection.moveToBookmark(E)}H.preventDefault();return}}if((G>=33&&G<=36)||(G>=37&&G<=40)||G==13||G==45){if(m.isIE&&G==13){B.undoManager.beforeChange()}if(B.undoManager.typing){y()}return}if((G<16||G>20)&&G!=224&&G!=91&&!B.undoManager.typing){B.undoManager.beforeChange();B.undoManager.add();B.undoManager.typing=true}});B.onMouseDown.add(function(){if(B.undoManager.typing){y()}})}if(m.isGecko){function A(){var s=B.dom.getAttribs(B.selection.getStart().cloneNode(false));return function(){var t=B.selection.getStart();B.dom.removeAllAttribs(t);i(s,function(D){t.setAttributeNode(D.cloneNode(true))})}}function z(){var t=B.selection;return !t.isCollapsed()&&t.getStart()!=t.getEnd()}B.onKeyPress.add(function(s,D){var t;if((D.keyCode==8||D.keyCode==46)&&z()){t=A();B.getDoc().execCommand("delete",false,null);t();return j.cancel(D)}});B.dom.bind(B.getDoc(),"cut",function(t){var s;if(z()){s=A();B.onKeyUp.addToTop(j.cancel,j);setTimeout(function(){s();B.onKeyUp.remove(j.cancel,j)},0)}})}},_isHidden:function(){var p;if(!a){return 0}p=this.selection.getSel();return(!p||!p.rangeCount||p.rangeCount==0)}})})(tinymce);(function(c){var d=c.each,e,a=true,b=false;c.EditorCommands=function(n){var l=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,o;function q(y,x,v){var u;y=y.toLowerCase();if(u=j.exec[y]){u(y,x,v);return a}return b}function m(v){var u;v=v.toLowerCase();if(u=j.state[v]){return u(v)}return -1}function h(v){var u;v=v.toLowerCase();if(u=j.value[v]){return u(v)}return b}function t(u,v){v=v||"exec";d(u,function(y,x){d(x.toLowerCase().split(","),function(z){j[v][z]=y})})}c.extend(this,{execCommand:q,queryCommandState:m,queryCommandValue:h,addCommands:t});function f(x,v,u){if(v===e){v=b}if(u===e){u=null}return n.getDoc().execCommand(x,v,u)}function s(u){return n.formatter.match(u)}function r(u,v){n.formatter.toggle(u,v?{value:v}:e)}function i(u){o=p.getBookmark(u)}function g(){p.moveToBookmark(o)}t({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(y){var x=n.getDoc(),u;try{f(y)}catch(v){u=a}if(u||!x.queryCommandSupported(y)){if(c.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(z){if(z){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(u){if(p.isCollapsed()){p.select(p.getNode())}f(u);p.collapse(b)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(u){var v=u.substring(7);d("left,center,right,full".split(","),function(x){if(v!=x){n.formatter.remove("align"+x)}});r("align"+v);q("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(x){var u,v;f(x);u=l.getParent(p.getNode(),"ol,ul");if(u){v=u.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(v.nodeName)){i();l.split(v,u);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(u){r(u)},"ForeColor,HiliteColor,FontName":function(x,v,u){r(x,u)},FontSize:function(y,x,v){var u,z;if(v>=1&&v<=7){z=c.explode(k.font_size_style_values);u=c.explode(k.font_size_classes);if(u){v=u[v-1]||v}else{v=z[v-1]||v}}r(y,v)},RemoveFormat:function(u){n.formatter.remove(u)},mceBlockQuote:function(u){r("blockquote")},FormatBlock:function(x,v,u){return r(u||"p")},mceCleanup:function(){var u=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(u)},mceRemoveNode:function(y,x,v){var u=v||p.getNode();if(u!=n.getBody()){i();n.dom.remove(u,a);g()}},mceSelectNodeDepth:function(y,x,v){var u=0;l.getParent(p.getNode(),function(z){if(z.nodeType==1&&u++==v){p.select(z);return b}},n.getBody())},mceSelectNode:function(x,v,u){p.select(u)},mceInsertContent:function(z,D,E){var C,u,x,F,y,u,A,G,B;function v(I,J,H){var K=new c.dom.TreeWalker(H?I.nextSibling:I.previousSibling,J);while((I=K.current())){if((I.nodeType==3&&c.trim(I.nodeValue).length)||I.nodeName=="BR"||I.nodeName=="IMG"){return I}if(H){K.next()}else{K.prev()}}}B={content:E,format:"html"};p.onBeforeSetContent.dispatch(p,B);E=B.content;if(E.indexOf("{$caret}")==-1){E+="{$caret}"}p.setContent('\uFEFF',{no_events:false});l.setOuterHTML("__mce",E.replace(/\{\$caret\}/,'\uFEFF'));C=l.select("#__mce")[0];x=l.getRoot();if(C.previousSibling&&l.isBlock(C.previousSibling)||C.parentNode==x){y=v(C,x);if(y){if(y.nodeName=="BR"){y.parentNode.insertBefore(C,y)}else{l.insertAfter(C,y)}}}while(C){if(C===x){l.setOuterHTML(F,new c.html.Serializer({},n.schema).serialize(n.parser.parse(l.getOuterHTML(F))));break}F=C;C=C.parentNode}C=l.select("#__mce")[0];if(C){y=v(C,x)||v(C,x,true);l.remove(C);if(y){u=l.createRng();if(y.nodeType==3){u.setStart(y,y.length);u.setEnd(y,y.length)}else{if(y.nodeName=="BR"){u.setStartBefore(y);u.setEndBefore(y)}else{u.setStartAfter(y);u.setEndAfter(y)}}p.setRng(u);if(!c.isIE){y=l.create("span",null,"\u00a0");u.insertNode(y);A=l.getRect(y);G=l.getViewPort(n.getWin());if((A.y>G.y+G.h||A.yG.x+G.w||A.x")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(x,v,u){n.execCommand("mceInsertContent",false,u.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(A,z,y){var x=l.getParent(p.getNode(),"a"),v,u;if(c.is(y,"string")){y={href:y}}y.href=y.href.replace(" ","%20");if(!x){if(c.isWebKit){v=l.getParent(p.getNode(),"img");if(v){u=v.style.cssFloat;v.style.cssFloat=null}}f("CreateLink",b,"javascript:mctmp(0);");if(u){v.style.cssFloat=u}d(l.select("a[href='javascript:mctmp(0);']"),function(B){l.setAttribs(B,y)})}else{if(y.href){l.setAttribs(x,y)}else{n.dom.remove(x,a)}}},selectAll:function(){var v=l.getRoot(),u=l.createRng();u.setStart(v,0);u.setEnd(v,v.childNodes.length);n.selection.setRng(u)}});t({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(u){return s("align"+u.substring(7))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(u){return s(u)},mceBlockQuote:function(){return s("blockquote")},Outdent:function(){var u;if(k.inline_styles){if((u=l.getParent(p.getStart(),l.isBlock))&&parseInt(u.style.paddingLeft)>0){return a}if((u=l.getParent(p.getEnd(),l.isBlock))&&parseInt(u.style.paddingLeft)>0){return a}}return m("InsertUnorderedList")||m("InsertOrderedList")||(!k.inline_styles&&!!l.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(u){return l.getParent(p.getNode(),u=="insertunorderedlist"?"UL":"OL")}},"state");t({"FontSize,FontName":function(x){var v=0,u;if(u=l.getParent(p.getNode(),"span")){if(x=="fontsize"){v=u.style.fontSize}else{v=u.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return v}},"value");if(k.custom_undo_redo){t({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(e){var c,d=0,g=[];function f(){return b.trim(e.getContent({format:"raw",no_events:1}))}return c={typing:false,onAdd:new a(c),onUndo:new a(c),onRedo:new a(c),beforeChange:function(){if(g[d]){g[d].beforeBookmark=e.selection.getBookmark(2,true)}},add:function(l){var h,j=e.settings,k;l=l||{};l.content=f();k=g[d];if(k&&k.content==l.content){return null}if(j.custom_undo_redo_levels){if(g.length>j.custom_undo_redo_levels){for(h=0;h0){j=g[--d];e.setContent(j.content,{format:"raw"});e.selection.moveToBookmark(j.beforeBookmark);c.onUndo.dispatch(c,j)}return j},redo:function(){var h;if(d0||this.typing},hasRedo:function(){return d');q.replace(p,m);o.select(p,1)}return g}return d}l.create("tinymce.ForceBlocks",{ForceBlocks:function(m){var n=this,o=m.settings,p;n.editor=m;n.dom=m.dom;p=(o.forced_root_block||"p").toLowerCase();o.element=p.toUpperCase();m.onPreInit.add(n.setup,n);if(o.forced_root_block){m.onInit.add(n.forceRoots,n);m.onSetContent.add(n.forceRoots,n);m.onBeforeGetContent.add(n.forceRoots,n);m.onExecCommand.add(function(q,r){if(r=="mceInsertContent"){n.forceRoots();q.nodeChanged()}})}},setup:function(){var n=this,m=n.editor,p=m.settings,r=m.dom,o=m.selection;if(p.forced_root_block){m.onBeforeExecCommand.add(n.forceRoots,n);m.onKeyUp.add(n.forceRoots,n);m.onPreProcess.add(n.forceRoots,n)}if(p.force_br_newlines){if(c){m.onKeyPress.add(function(s,t){var u;if(t.keyCode==13&&o.getNode().nodeName!="LI"){o.setContent('
',{format:"raw"});u=r.get("__");u.removeAttribute("id");o.select(u);o.collapse();return j.cancel(t)}})}}if(p.force_p_newlines){if(!c){m.onKeyPress.add(function(s,t){if(t.keyCode==13&&!t.shiftKey&&!n.insertPara(t)){j.cancel(t)}})}else{l.addUnload(function(){n._previousFormats=0});m.onKeyPress.add(function(s,t){n._previousFormats=0;if(t.keyCode==13&&!t.shiftKey&&s.selection.isCollapsed()&&p.keep_styles){n._previousFormats=k(s.selection.getStart())}});m.onKeyUp.add(function(t,v){if(v.keyCode==13&&!v.shiftKey){var u=t.selection.getStart(),s=n._previousFormats;if(!u.hasChildNodes()&&s){u=r.getParent(u,r.isBlock);if(u&&u.nodeName!="LI"){u.innerHTML="";if(n._previousFormats){u.appendChild(s.wrapper);s.inner.innerHTML="\uFEFF"}else{u.innerHTML="\uFEFF"}o.select(u,1);o.collapse(true);t.getDoc().execCommand("Delete",false,null);n._previousFormats=0}}}})}if(a){m.onKeyDown.add(function(s,t){if((t.keyCode==8||t.keyCode==46)&&!t.shiftKey){n.backspaceDelete(t,t.keyCode==8)}})}}if(l.isWebKit){function q(t){var s=o.getRng(),u,y=r.create("div",null," "),x,v=r.getViewPort(t.getWin()).h;s.insertNode(u=r.create("br"));s.setStartAfter(u);s.setEndAfter(u);o.setRng(s);if(o.getSel().focusNode==u.previousSibling){o.select(r.insertAfter(r.doc.createTextNode("\u00a0"),u));o.collapse(d)}r.insertAfter(y,u);x=r.getPos(y).y;r.remove(y);if(x>v){t.getWin().scrollTo(0,x)}}m.onKeyPress.add(function(s,t){if(t.keyCode==13&&(t.shiftKey||(p.force_br_newlines&&!r.getParent(o.getNode(),"h1,h2,h3,h4,h5,h6,ol,ul")))){q(s);j.cancel(t)}})}if(c){if(p.element!="P"){m.onKeyPress.add(function(s,t){n.lastElm=o.getNode().nodeName});m.onKeyUp.add(function(t,u){var x,v=o.getNode(),s=t.getBody();if(s.childNodes.length===1&&v.nodeName=="P"){v=r.rename(v,p.element);o.select(v);o.collapse();t.nodeChanged()}else{if(u.keyCode==13&&!u.shiftKey&&n.lastElm!="P"){x=r.getParent(v,"p");if(x){r.rename(x,p.element);t.nodeChanged()}}}})}}},find:function(u,p,q){var o=this.editor,m=o.getDoc().createTreeWalker(u,4,null,g),r=-1;while(u=m.nextNode()){r++;if(p==0&&u==q){return r}if(p==1&&r==q){return u}}return -1},forceRoots:function(v,H){var y=this,v=y.editor,L=v.getBody(),I=v.getDoc(),O=v.selection,z=O.getSel(),A=O.getRng(),M=-2,u,F,m,o,J=-16777215;var K,p,N,E,B,q=L.childNodes,D,C,x;for(D=q.length-1;D>=0;D--){K=q[D];if(K.nodeType===1&&K.getAttribute("data-mce-type")){p=null;continue}if(K.nodeType===3||(!y.dom.isBlock(K)&&K.nodeType!==8&&!/^(script|mce:script|style|mce:style)$/i.test(K.nodeName))){if(!p){if(K.nodeType!=3||/[^\s]/g.test(K.nodeValue)){if(M==-2&&A){if(!c||A.setStart){if(A.startContainer.nodeType==1&&(C=A.startContainer.childNodes[A.startOffset])&&C.nodeType==1){x=C.getAttribute("id");C.setAttribute("id","__mce")}else{if(v.dom.getParent(A.startContainer,function(n){return n===L})){F=A.startOffset;m=A.endOffset;M=y.find(L,0,A.startContainer);u=y.find(L,0,A.endContainer)}}}else{if(A.item){o=I.body.createTextRange();o.moveToElementText(A.item(0));A=o}o=I.body.createTextRange();o.moveToElementText(L);o.collapse(1);N=o.move("character",J)*-1;o=A.duplicate();o.collapse(1);E=o.move("character",J)*-1;o=A.duplicate();o.collapse(0);B=(o.move("character",J)*-1)-E;M=E-N;u=B}}p=v.dom.create(v.settings.forced_root_block);K.parentNode.replaceChild(p,K);p.appendChild(K)}}else{if(p.hasChildNodes()){p.insertBefore(K,p.firstChild)}else{p.appendChild(K)}}}else{p=null}}if(M!=-2){if(!c||A.setStart){p=L.getElementsByTagName(v.settings.element)[0];A=I.createRange();if(M!=-1){A.setStart(y.find(L,1,M),F)}else{A.setStart(p,0)}if(u!=-1){A.setEnd(y.find(L,1,u),m)}else{A.setEnd(p,0)}if(z){z.removeAllRanges();z.addRange(A)}}else{try{A=z.createRange();A.moveToElementText(L);A.collapse(1);A.moveStart("character",M);A.moveEnd("character",u);A.select()}catch(G){}}}else{if((!c||A.setStart)&&(C=v.dom.get("__mce"))){if(x){C.setAttribute("id",x)}else{C.removeAttribute("id")}A=I.createRange();A.setStartBefore(C);A.setEndBefore(C);O.setRng(A)}}},getParentBlock:function(o){var m=this.dom;return m.getParent(o,m.isBlock)},insertPara:function(R){var F=this,v=F.editor,N=v.dom,S=v.getDoc(),W=v.settings,G=v.selection.getSel(),H=G.getRangeAt(0),V=S.body;var K,L,I,P,O,q,o,u,z,m,D,U,p,x,J,M=N.getViewPort(v.getWin()),C,E,B;v.undoManager.beforeChange();K=S.createRange();K.setStart(G.anchorNode,G.anchorOffset);K.collapse(d);L=S.createRange();L.setStart(G.focusNode,G.focusOffset);L.collapse(d);I=K.compareBoundaryPoints(K.START_TO_END,L)<0;P=I?G.anchorNode:G.focusNode;O=I?G.anchorOffset:G.focusOffset;q=I?G.focusNode:G.anchorNode;o=I?G.focusOffset:G.anchorOffset;if(P===q&&/^(TD|TH)$/.test(P.nodeName)){if(P.firstChild.nodeName=="BR"){N.remove(P.firstChild)}if(P.childNodes.length==0){v.dom.add(P,W.element,null,"
");U=v.dom.add(P,W.element,null,"
")}else{J=P.innerHTML;P.innerHTML="";v.dom.add(P,W.element,null,J);U=v.dom.add(P,W.element,null,"
")}H=S.createRange();H.selectNodeContents(U);H.collapse(1);v.selection.setRng(H);return g}if(P==V&&q==V&&V.firstChild&&v.dom.isBlock(V.firstChild)){P=q=P.firstChild;O=o=0;K=S.createRange();K.setStart(P,0);L=S.createRange();L.setStart(q,0)}P=P.nodeName=="HTML"?S.body:P;P=P.nodeName=="BODY"?P.firstChild:P;q=q.nodeName=="HTML"?S.body:q;q=q.nodeName=="BODY"?q.firstChild:q;u=F.getParentBlock(P);z=F.getParentBlock(q);m=u?u.nodeName:W.element;if(J=F.dom.getParent(u,"li,pre")){if(J.nodeName=="LI"){return e(v.selection,F.dom,J)}return d}if(u&&(u.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(N.getStyle(u,"position",1)))){m=W.element;u=null}if(z&&(z.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(N.getStyle(u,"position",1)))){m=W.element;z=null}if(/(TD|TABLE|TH|CAPTION)/.test(m)||(u&&m=="DIV"&&/left|right/gi.test(N.getStyle(u,"float",1)))){m=W.element;u=z=null}D=(u&&u.nodeName==m)?u.cloneNode(0):v.dom.create(m);U=(z&&z.nodeName==m)?z.cloneNode(0):v.dom.create(m);U.removeAttribute("id");if(/^(H[1-6])$/.test(m)&&f(H,u)){U=v.dom.create(W.element)}J=p=P;do{if(J==V||J.nodeType==9||F.dom.isBlock(J)||/(TD|TABLE|TH|CAPTION)/.test(J.nodeName)){break}p=J}while((J=J.previousSibling?J.previousSibling:J.parentNode));J=x=q;do{if(J==V||J.nodeType==9||F.dom.isBlock(J)||/(TD|TABLE|TH|CAPTION)/.test(J.nodeName)){break}x=J}while((J=J.nextSibling?J.nextSibling:J.parentNode));if(p.nodeName==m){K.setStart(p,0)}else{K.setStartBefore(p)}K.setEnd(P,O);D.appendChild(K.cloneContents()||S.createTextNode(""));try{L.setEndAfter(x)}catch(Q){}L.setStart(q,o);U.appendChild(L.cloneContents()||S.createTextNode(""));H=S.createRange();if(!p.previousSibling&&p.parentNode.nodeName==m){H.setStartBefore(p.parentNode)}else{if(K.startContainer.nodeName==m&&K.startOffset==0){H.setStartBefore(K.startContainer)}else{H.setStart(K.startContainer,K.startOffset)}}if(!x.nextSibling&&x.parentNode.nodeName==m){H.setEndAfter(x.parentNode)}else{H.setEnd(L.endContainer,L.endOffset)}H.deleteContents();if(b){v.getWin().scrollTo(0,M.y)}if(D.firstChild&&D.firstChild.nodeName==m){D.innerHTML=D.firstChild.innerHTML}if(U.firstChild&&U.firstChild.nodeName==m){U.innerHTML=U.firstChild.innerHTML}if(N.isEmpty(D)){D.innerHTML="
"}function T(y,s){var r=[],Y,X,t;y.innerHTML="";if(W.keep_styles){X=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(X.nodeName)){Y=X.cloneNode(g);N.setAttrib(Y,"id","");r.push(Y)}}while(X=X.parentNode)}if(r.length>0){for(t=r.length-1,Y=y;t>=0;t--){Y=Y.appendChild(r[t])}r[0].innerHTML=b?"\u00a0":"
";return r[0]}else{y.innerHTML=b?"\u00a0":"
"}}if(N.isEmpty(U)){B=T(U,q)}if(b&&parseFloat(opera.version())<9.5){H.insertNode(D);H.insertNode(U)}else{H.insertNode(U);H.insertNode(D)}U.normalize();D.normalize();function A(r){return S.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,g).nextNode()||r}H=S.createRange();H.selectNodeContents(a?A(B||U):B||U);H.collapse(1);G.removeAllRanges();G.addRange(H);C=v.dom.getPos(U).y;if(CM.y+M.h){v.getWin().scrollTo(0,C1||!F(ap))&&an===0){c.remove(ap,1);return}if(ag.inline||ag.wrapper){if(!ag.exact&&an===1){ap=ao(ap)}O(ab,function(ar){O(c.select(ar.inline,ap),function(au){var at;if(ar.wrap_links===false){at=au.parentNode;do{if(at.nodeName==="A"){return}}while(at=at.parentNode)}U(ar,af,au,ar.exact?au:null)})});if(x(ap.parentNode,Y,af)){c.remove(ap,1);ap=0;return B}if(ag.merge_with_parents){c.getParent(ap.parentNode,function(ar){if(x(ar,Y,af)){c.remove(ap,1);ap=0;return B}})}if(ap){ap=u(C(ap),ap);ap=u(ap,C(ap,B))}}})}if(ag){if(aa){X=c.createRng();X.setStartBefore(aa);X.setEndAfter(aa);ah(o(X,ab))}else{if(!ac||!ag.inline||c.select("td.mceSelected,th.mceSelected").length){var ai=V.selection.getNode();ae=q.getBookmark();ah(o(q.getRng(B),ab));if(ag.styles&&(ag.styles.color||ag.styles.textDecoration)){a.walk(ai,I,"childNodes");I(ai)}q.moveToBookmark(ae);q.setRng(Z(q.getRng(B)));V.nodeChanged()}else{Q("apply",Y,af)}}}}function A(Y,ah,ab){var ac=R(Y),aj=ac[0],ag,af,X;function aa(am){var al=am.startContainer,ar=am.startOffset,aq,ap,an,ao;if(al.nodeType==3&&ar>=al.nodeValue.length-1){al=al.parentNode;ar=s(al)+1}if(al.nodeType==1){an=al.childNodes;al=an[Math.min(ar,an.length-1)];aq=new t(al);if(ar>an.length-1){aq.next()}for(ap=aq.current();ap;ap=aq.next()){if(ap.nodeType==3&&!f(ap)){ao=c.create("a",null,E);ap.parentNode.insertBefore(ao,ap);am.setStart(ap,0);q.setRng(am);c.remove(ao);return}}}}function Z(ao){var an,am,al;an=a.grep(ao.childNodes);for(am=0,al=ac.length;am=0;Z--){if(P.apply[Z].name==Y){return true}}for(Z=P.remove.length-1;Z>=0;Z--){if(P.remove[Z].name==Y){return false}}return W(q.getNode())}aa=q.getNode();if(W(aa)){return B}X=q.getStart();if(X!=aa){if(W(X)){return B}}return S}function v(ad,ac){var aa,ab=[],Z={},Y,X,W;if(q.isCollapsed()){for(X=0;X=0;Y--){W=ad[X];if(P.remove[Y].name==W){Z[W]=true;break}}}for(Y=P.apply.length-1;Y>=0;Y--){for(X=0;X=0;X--){W=ac[X].selector;if(!W){return B}for(ab=Y.length-1;ab>=0;ab--){if(c.is(Y[ab],W)){return B}}}}return S}a.extend(this,{get:R,register:k,apply:T,remove:A,toggle:D,match:j,matchAll:v,matchNode:x,canApply:y});function h(W,X){if(g(W,X.inline)){return B}if(g(W,X.block)){return B}if(X.selector){return c.is(W,X.selector)}}function g(X,W){X=X||"";W=W||"";X=""+(X.nodeName||X);W=""+(W.nodeName||W);return X.toLowerCase()==W.toLowerCase()}function L(X,W){var Y=c.getStyle(X,W);if(W=="color"||W=="backgroundColor"){Y=c.toHex(Y)}if(W=="fontWeight"&&Y==700){Y="bold"}return""+Y}function r(W,X){if(typeof(W)!="string"){W=W(X)}else{if(X){W=W.replace(/%(\w+)/g,function(Z,Y){return X[Y]||Z})}}return W}function f(W){return W&&W.nodeType===3&&/^([\s\r\n]+|)$/.test(W.nodeValue)}function N(Y,X,W){var Z=c.create(X,W);Y.parentNode.insertBefore(Z,Y);Z.appendChild(Y);return Z}function o(W,ag,Z){var Y=W.startContainer,ad=W.startOffset,aj=W.endContainer,ae=W.endOffset,ai,af,ac;function ah(am,an,ak,al){var ao,ap;al=al||c.getRoot();for(;;){ao=am.parentNode;if(ao==al||(!ag[0].block_expand&&F(ao))){return am}for(ai=ao[an];ai&&ai!=am;ai=ai[ak]){if(ai.nodeType==1&&!H(ai)){return am}if(ai.nodeType==3&&!f(ai)){return am}}am=am.parentNode}return am}function ab(ak,al){if(al===p){al=ak.nodeType===3?ak.length:ak.childNodes.length}while(ak&&ak.hasChildNodes()){ak=ak.childNodes[al];if(ak){al=ak.nodeType===3?ak.length:ak.childNodes.length}}return{node:ak,offset:al}}if(Y.nodeType==1&&Y.hasChildNodes()){af=Y.childNodes.length-1;Y=Y.childNodes[ad>af?af:ad];if(Y.nodeType==3){ad=0}}if(aj.nodeType==1&&aj.hasChildNodes()){af=aj.childNodes.length-1;aj=aj.childNodes[ae>af?af:ae-1];if(aj.nodeType==3){ae=aj.nodeValue.length}}if(H(Y.parentNode)){Y=Y.parentNode}if(H(Y)){Y=Y.nextSibling||Y}if(H(aj.parentNode)){ae=c.nodeIndex(aj);aj=aj.parentNode}if(H(aj)&&aj.previousSibling){aj=aj.previousSibling;ae=aj.length}if(ag[0].inline){ac=ab(aj,ae);if(ac.node){while(ac.node&&ac.offset===0&&ac.node.previousSibling){ac=ab(ac.node.previousSibling)}if(ac.node&&ac.offset>0&&ac.node.nodeType===3&&ac.node.nodeValue.charAt(ac.offset-1)===" "){if(ac.offset>1){aj=ac.node;aj.splitText(ac.offset-1)}else{if(ac.node.previousSibling){aj=ac.node.previousSibling}}}}}if(ag[0].inline||ag[0].block_expand){Y=ah(Y,"firstChild","nextSibling");aj=ah(aj,"lastChild","previousSibling")}if(ag[0].selector&&ag[0].expand!==S&&!ag[0].inline){function aa(al,ak){var am,an,ap,ao;if(al.nodeType==3&&al.nodeValue.length==0&&al[ak]){al=al[ak]}am=m(al);for(an=0;anY?Y:Z]}return W}function Q(ab,X,aa){var Y,W=P[ab],ac=P[ab=="apply"?"remove":"apply"];function ad(){return P.apply.length||P.remove.length}function Z(){P.apply=[];P.remove=[]}function ae(af){O(P.apply.reverse(),function(ag){T(ag.name,ag.vars,af);if(ag.name==="forecolor"&&ag.vars.value){I(af.parentNode)}});O(P.remove.reverse(),function(ag){A(ag.name,ag.vars,af)});c.remove(af,1);Z()}for(Y=W.length-1;Y>=0;Y--){if(W[Y].name==X){return}}W.push({name:X,vars:aa});for(Y=ac.length-1;Y>=0;Y--){if(ac[Y].name==X){ac.splice(Y,1)}}if(ad()){V.getDoc().execCommand("FontName",false,"mceinline");P.lastRng=q.getRng();O(c.select("font,span"),function(ag){var af;if(b(ag)){af=q.getBookmark();ae(ag);q.moveToBookmark(af);V.nodeChanged()}});if(!P.isListening&&ad()){P.isListening=true;O("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","),function(af){V[af].addToTop(function(ag,ah){if(ad()&&!a.dom.RangeUtils.compareRanges(P.lastRng,q.getRng())){O(c.select("font,span"),function(aj){var ak,ai;if(b(aj)){ak=aj.firstChild;if(ak){ae(aj);ai=c.createRng();ai.setStart(ak,ak.nodeValue.length);ai.setEnd(ak,ak.nodeValue.length);q.setRng(ai);ag.nodeChanged()}else{c.remove(aj)}}});if(ah.type=="keyup"||ah.type=="mouseup"){Z()}}})})}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;if(c.inline_styles){h=e.explode(c.font_size_style_values);function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}}); \ No newline at end of file diff --git a/functions/tinyMCE/jscripts/tiny_mce/tiny_mce_popup.js b/functions/tinyMCE/jscripts/tiny_mce/tiny_mce_popup.js new file mode 100644 index 0000000..f859d24 --- /dev/null +++ b/functions/tinyMCE/jscripts/tiny_mce/tiny_mce_popup.js @@ -0,0 +1,5 @@ + +// Uncomment and change this document.domain value if you are loading the script cross subdomains +// document.domain = 'moxiecode.com'; + +var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write(' + + \ No newline at end of file diff --git a/install/templates/install.tpl.htm b/install/templates/install.tpl.htm new file mode 100755 index 0000000..adeb67c --- /dev/null +++ b/install/templates/install.tpl.htm @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + {PAGETITLE} + + + +
+
+ +
+ {CONTENT} +
+ +
+
+ + \ No newline at end of file diff --git a/install/templates/step1.tpl.htm b/install/templates/step1.tpl.htm new file mode 100755 index 0000000..f081d84 --- /dev/null +++ b/install/templates/step1.tpl.htm @@ -0,0 +1,54 @@ + + + + + + + + + +
+
+



{STEP1_BOX}

+



{STEP2_BOX}

+



{STEP3_BOX}

+
+
+
+
+

{STEP1_TITLE}

+

{STEP1_SUBTITLE1}

+ {CHECK_1_PIC} Javascript: {CHECK_1_VALUE} +

{STEP1_SUBTITLE2}

+ {CHECK_2_PIC} {CHECK_2_TEXT}: {CHECK_2_VALUE} {CHECK_2_INFO} +

{STEP1_SUBTITLE3}

+

{STEP1_TEXT3_1}:

+ {CHECK_3_CONTENT_1} +

{STEP1_TEXT3_2}:

+ {CHECK_3_CONTENT_2} +

{STEP1_SUBTITLE4}

+

{STEP1_TEXT4_1}:

+ {CHECK_4_CONTENT_1} +

{STEP1_SUBTITLE5}

+

{STEP1_TEXT5_1}:

+ {CHECK_5_CONTENT_1} +

{STEP1_SUBTITLE6}

+ {CHECK_6_CONTENT_1} + {CHECK_6_CONTENT_2} + {CHECK_6_CONTENT_3} + {CHECK_6_CONTENT_4} + {CHECK_6_CONTENT_5} + {CHECK_6_CONTENT_6} + {CHECK_6_CONTENT_7} + {CHECK_6_CONTENT_8} +
+ {MESSAGE} +
+
+
+ {FORM_CONTENT} +
+
+
+
+
\ No newline at end of file diff --git a/install/templates/step2.tpl.htm b/install/templates/step2.tpl.htm new file mode 100755 index 0000000..42b7896 --- /dev/null +++ b/install/templates/step2.tpl.htm @@ -0,0 +1,157 @@ + + + + + + + + + + +
+
+



{STEP1_BOX}

+



{STEP2_BOX}

+



{STEP3_BOX}

+
+
+
+
+

{STEP2_TITLE}

+
+

{STEP2_TEXT1_1}:

+ {STEP2_TEXT1_2} +
+ {STEP2_TEXT2_1} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{STEP2_TEXT2_2}
{STEP2_TEXT2_3} *
{STEP2_TEXT2_4} *
{STEP2_TEXT2_5} *
{STEP2_TEXT2_6} *
{STEP2_TEXT2_7} *
{STEP2_TEXT2_8} *
{STEP2_TEXT2_9} *
{STEP2_TEXT2_10} *
{STEP2_TEXT2_11}
+
+
+ {STEP2_TEXT3_1} + + + + + + + + + + + + + +
{STEP2_TEXT3_2} *
{STEP2_TEXT3_3} *
{STEP2_TEXT3_4} *
+
+
+ {STEP2_TEXT4_1} + + + + + +
{STEP2_TEXT4_2}
+
+
+ {STEP2_TEXT5_1} + + + + + + + + + + + + + + + + +
{STEP2_TEXT5_2}
{STEP2_TEXT5_3}
{STEP2_TEXT5_4}
{STEP2_TEXT5_5}
{STEP2_TEXT5_6}
+
+
+
+ + {STEP2_FORM_1}
{STEP2_FORM_1} +
+
+
+
+
\ No newline at end of file diff --git a/install/templates/step3.tpl.htm b/install/templates/step3.tpl.htm new file mode 100755 index 0000000..3c2bf50 --- /dev/null +++ b/install/templates/step3.tpl.htm @@ -0,0 +1,90 @@ + + + + + + + + + +
+
+



{STEP1_BOX}

+



{STEP2_BOX}

+



{STEP3_BOX}

+
+
+
+
+

{STEP3_TITLE}

+
+
+ {STEP3_SUB_TITLE} + {ERRORMESSAGE} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{STEP3_TEXT_02}
{STEP3_TEXT_04}
{STEP3_TEXT_06}
{STEP3_TEXT_08}
{STEP3_TEXT_10}
{STEP3_TEXT_12}
{STEP3_TEXT_14}
{STEP3_TEXT_16}
{STEP3_TEXT_18}
+
+
+
+ {STEP4_SUB_TITLE} + + + + + + + + + + + + + + + + + +
{STEP4_TEXT_02}
{STEP4_TEXT_04}
{STEP4_TEXT_06}
{STEP4_TEXT_08}
+
+

{INFO_TEXT}

+ {BUTTON} +
+
+
+
\ No newline at end of file diff --git a/libraries/pear/HTML/Template/IT.php b/libraries/pear/HTML/Template/IT.php new file mode 100644 index 0000000..462a7ab --- /dev/null +++ b/libraries/pear/HTML/Template/IT.php @@ -0,0 +1,1186 @@ + + * Pierre-Alain Joye + * David Soria Parra + * + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @version CVS: $Id: IT.php 295605 2010-02-28 22:48:07Z gregorycu $ + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public + */ + +require_once (dirname(__FILE__) .'/../../PEAR.php' ); + +define('IT_OK', 1); +define('IT_ERROR', -1); +define('IT_TPL_NOT_FOUND', -2); +define('IT_BLOCK_NOT_FOUND', -3); +define('IT_BLOCK_DUPLICATE', -4); +define('IT_UNKNOWN_OPTION', -6); + +/** + * Integrated Template - IT + * + * Well there's not much to say about it. I needed a template class that + * supports a single template file with multiple (nested) blocks inside and + * a simple block API. + * + * The Isotemplate API is somewhat tricky for a beginner although it is the best + * one you can build. template::parse() [phplib template = Isotemplate] requests + * you to name a source and a target where the current block gets parsed into. + * Source and target can be block names or even handler names. This API gives you + * a maximum of fexibility but you always have to know what you do which is + * quite unusual for php skripter like me. + * + * I noticed that I do not any control on which block gets parsed into which one. + * If all blocks are within one file, the script knows how they are nested and in + * which way you have to parse them. IT knows that inner1 is a child of block2, + * there's no need to tell him about this. + * + * + * + * + * + * + * + * + * + *
+ * __global__ + *

+ * (hidden and automatically added) + *

block1 + * + * + * + * + * + * + * + * + *
block2
inner1inner2
+ *
+ * + * To add content to block1 you simply type: + * $tpl->setCurrentBlock("block1"); + * and repeat this as often as needed: + * + * $tpl->setVariable(...); + * $tpl->parseCurrentBlock(); + * + * + * To add content to block2 you would type something like: + * + * $tpl->setCurrentBlock("inner1"); + * $tpl->setVariable(...); + * $tpl->parseCurrentBlock(); + * + * $tpl->setVariable(...); + * $tpl->parseCurrentBlock(); + * + * $tpl->parse("block1"); + * + * + * This will result in one repition of block1 which contains two repitions + * of inner1. inner2 will be removed if $removeEmptyBlock is set to true + * which is the default. + * + * Usage: + * + * $tpl = new HTML_Template_IT( [string filerootdir] ); + * + * // load a template or set it with setTemplate() + * $tpl->loadTemplatefile( string filename [, boolean removeUnknownVariables, boolean removeEmptyBlocks] ) + * + * // set "global" Variables meaning variables not beeing within a (inner) block + * $tpl->setVariable( string variablename, mixed value ); + * + * // like with the Isotemplates there's a second way to use setVariable() + * $tpl->setVariable( array ( string varname => mixed value ) ); + * + * // Let's use any block, even a deeply nested one + * $tpl->setCurrentBlock( string blockname ); + * + * // repeat this as often as you need it. + * $tpl->setVariable( array ( string varname => mixed value ) ); + * $tpl->parseCurrentBlock(); + * + * // get the parsed template or print it: $tpl->show() + * $tpl->get(); + * + * + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public + */ +class HTML_Template_IT +{ + /** + * Contains the error objects + * @var array + * @access public + * @see halt(), $printError, $haltOnError + */ + var $err = array(); + + /** + * Clear cache on get()? + + * @var boolean + * @acces public + */ + var $clearCache = false; + + /** + * First character of a variable placeholder ( _{_VARIABLE} ). + * @var string + * @access public + * @see $closingDelimiter, $blocknameRegExp, $variablenameRegExp + */ + var $openingDelimiter = '{'; + + /** + * Last character of a variable placeholder ( {VARIABLE_}_ ). + * @var string + * @access public + * @see $openingDelimiter, $blocknameRegExp, $variablenameRegExp + */ + var $closingDelimiter = '}'; + + /** + * RegExp matching a block in the template. + * Per default "sm" is used as the regexp modifier, "i" is missing. + * That means a case sensitive search is done. + * @var string + * @access public + * @see $variablenameRegExp, $openingDelimiter, $closingDelimiter + */ + var $blocknameRegExp = '[\.0-9A-Za-z_-]+'; + + /** + * RegExp matching a variable placeholder in the template. + * Per default "sm" is used as the regexp modifier, "i" is missing. + * That means a case sensitive search is done. + * @var string + * @access public + * @see $blocknameRegExp, $openingDelimiter, $closingDelimiter + */ + var $variablenameRegExp = '[\.0-9A-Za-z_-]+'; + + /** + * RegExp used to find variable placeholder, filled by the constructor. + * @var string Looks somewhat like @(delimiter varname delimiter)@ + * @access private + * @see IntegratedTemplate() + */ + var $variablesRegExp = ''; + + /** + * RegExp used to strip unused variable placeholder. + * @access private + * @brother $variablesRegExp + */ + var $removeVariablesRegExp = ''; + + /** + * Controls the handling of unknown variables, default is remove. + * @var boolean + * @access public + */ + var $removeUnknownVariables = true; + + /** + * Controls the handling of empty blocks, default is remove. + * @var boolean + * @access public + */ + var $removeEmptyBlocks = true; + + /** + * RegExp used to find blocks an their content, filled by the constructor. + * @var string + * @see IntegratedTemplate() + * @access private + */ + var $blockRegExp = ''; + + /** + * Name of the current block. + * @var string + * @access private + */ + var $currentBlock = '__global__'; + + /** + * Content of the template. + * @var string + * @access private + */ + var $template = ''; + + /** + * Array of all blocks and their content. + * + * @var array + * @see findBlocks() + * @access private + */ + var $blocklist = array(); + + /** + * Array with the parsed content of a block. + * + * @var array + * @access private + */ + var $blockdata = array(); + + /** + * Array of variables in a block. + * @var array + * @access private + */ + var $blockvariables = array(); + + /** + * Array of inner blocks of a block. + * @var array + * @access private + */ + var $blockinner = array(); + + /** + * List of blocks to preverse even if they are "empty". + * + * This is something special. Sometimes you have blocks that + * should be preserved although they are empty (no placeholder replaced). + * Think of a shopping basket. If it's empty you have to drop a message to + * the user. If it's filled you have to show the contents of + * the shopping baseket. Now where do you place the message that the basket + * is empty? It's no good idea to place it in you applications as customers + * tend to like unecessary minor text changes. Having another template file + * for an empty basket means that it's very likely that one fine day + * the filled and empty basket templates have different layout. I decided + * to introduce blocks that to not contain any placeholder but only + * text such as the message "Your shopping basked is empty". + * + * Now if there is no replacement done in such a block the block will + * be recognized as "empty" and by default ($removeEmptyBlocks = true) be + * stripped off. To avoid thisyou can now call touchBlock() to avoid this. + * + * The array $touchedBlocks stores a list of touched block which must not + * be removed even if they are empty. + * + * @var array $touchedBlocks + * @see touchBlock(), $removeEmptyBlocks + * @access private + */ + var $touchedBlocks = array(); + + /** + * List of blocks which should not be shown even if not "empty" + * @var array $_hiddenBlocks + * @see hideBlock(), $removeEmptyBlocks + * @access private + */ + var $_hiddenBlocks = array(); + + /** + * Variable cache. + * + * Variables get cached before any replacement is done. + * Advantage: empty blocks can be removed automatically. + * Disadvantage: might take some more memory + * + * @var array + * @see setVariable(), $clearCacheOnParse + * @access private + */ + var $variableCache = array(); + + /** + * Clear the variable cache on parse? + * + * If you're not an expert just leave the default false. + * True reduces memory consumption somewhat if you tend to + * add lots of values for unknown placeholder. + * + * @var boolean + * @access public + */ + var $clearCacheOnParse = false; + + /** + * Root directory for all file operations. + * The string gets prefixed to all filenames given. + * @var string + * @see HTML_Template_IT(), setRoot() + * @access private + */ + var $fileRoot = ''; + + /** + * Internal flag indicating that a blockname was used multiple times. + * @var boolean + * @access private + */ + var $flagBlocktrouble = false; + + /** + * Flag indicating that the global block was parsed. + * @var boolean + * @access private + */ + var $flagGlobalParsed = false; + + /** + * EXPERIMENTAL! FIXME! + * Flag indication that a template gets cached. + * + * Complex templates require some times to be preparsed + * before the replacement can take place. Often I use + * one template file over and over again but I don't know + * before that I will use the same template file again. + * Now IT could notice this and skip the preparse. + * + * @var boolean + * @access private + */ + var $flagCacheTemplatefile = true; + + /** + * EXPERIMENTAL! FIXME! + * @access private + */ + var $lastTemplatefile = ''; + + /** + * $_options['preserve_data'] Whether to substitute variables and remove + * empty placeholders in data passed through setVariable + * (see also bugs #20199, #21951). + * $_options['use_preg'] Whether to use preg_replace instead of + * str_replace in parse() + * (this is a backwards compatibility feature, see also bugs #21951, #20392) + * + * @var array + * @access private + */ + var $_options = array( + 'preserve_data' => false, + 'use_preg' => true, + 'preserve_input'=> true + ); + + /** + * Builds some complex regular expressions and optinally sets the + * file root directory. + * + * Make sure that you call this constructor if you derive your template + * class from this one. + * + * @param string $root File root directory, prefix for all filenames + * given to the object. + * @param mixed $options Unknown + * + * @see setRoot() + * @access public + */ + function HTML_Template_IT($root = '', $options = null) + { + if (!is_null($options)) { + $this->setOptions($options); + } + + $this->variablesRegExp = '@' . $this->openingDelimiter . + '(' . $this->variablenameRegExp . ')' . + $this->closingDelimiter . '@sm'; + + $this->removeVariablesRegExp = '@' . $this->openingDelimiter . + "\s*(" . $this->variablenameRegExp . + ")\s*" . $this->closingDelimiter .'@sm'; + + $this->blockRegExp = '@(.*)@sm'; + + $this->setRoot($root); + } // end constructor + + + /** + * Sets the option for the template class + * + * @param string $option option name + * @param mixed $value option value + * + * @access public + * @return mixed IT_OK on success, error object on failure + */ + function setOption($option, $value) + { + switch ($option) { + case 'removeEmptyBlocks': + $this->removeEmptyBlocks = $value; + return IT_OK; + } + + if (array_key_exists($option, $this->_options)) { + $this->_options[$option] = $value; + return IT_OK; + } + + return PEAR::raiseError( + $this->errorMessage(IT_UNKNOWN_OPTION) . ": '{$option}'", + IT_UNKNOWN_OPTION + ); + } + + /** + * Sets the options for the template class + * + * @param string[] $options options array of options + * default value: + * 'preserve_data' => false, + * 'use_preg' => true + * + * @access public + * @return mixed IT_OK on success, error object on failure + * @see $options + */ + function setOptions($options) + { + if (is_array($options)) { + foreach ($options as $option => $value) { + $error = $this->setOption($option, $value); + if (PEAR::isError($error)) { + return $error; + } + } + } + + return IT_OK; + } + + /** + * Print a certain block with all replacements done. + * + * @param string $block block + * + * @brother get() + * @access public + * @return null + */ + function show($block = '__global__') + { + print $this->get($block); + } // end func show + + /** + * Returns a block with all replacements done. + * + * @param string $block name of the block + * + * @return string + * @throws PEAR_Error + * @access public + * @see show() + */ + function get($block = '__global__') + { + if ($block == '__global__' && !$this->flagGlobalParsed) { + $this->parse('__global__'); + } + + if (!isset($this->blocklist[$block])) { + $this->err[] = PEAR::raiseError( + $this->errorMessage(IT_BLOCK_NOT_FOUND) . '"' . $block . "'", + IT_BLOCK_NOT_FOUND + ); + return ''; + } + + if (isset($this->blockdata[$block])) { + $ret = $this->blockdata[$block]; + + if ($this->clearCache) { + unset($this->blockdata[$block]); + if ($block == '__global__') { + $this->flagGlobalParsed = false; + } + } + + if ($this->_options['preserve_data']) { + $ret = str_replace( + $this->openingDelimiter . + '%preserved%' . $this->closingDelimiter, + $this->openingDelimiter, + $ret + ); + } + return $ret; + } + + return ''; + } // end func get() + + /** + * Parses the given block. + * + * @param string $block name of the block to be parsed + * @param bool $flag_recursion unknown + * + * @access public + * @see parseCurrentBlock() + * @throws PEAR_Error + * @return null + */ + function parse($block = '__global__', $flag_recursion = false) + { + static $regs, $values; + + if (!isset($this->blocklist[$block])) { + return PEAR::raiseError( + $this->errorMessage(IT_BLOCK_NOT_FOUND) . '"' . $block . "'", + IT_BLOCK_NOT_FOUND + ); + } + + if ($block == '__global__') { + $this->flagGlobalParsed = true; + } + + if (!$flag_recursion) { + $regs = array(); + $values = array(); + } + $outer = $this->blocklist[$block]; + $empty = true; + + $variablelist = array(); + if ($this->clearCacheOnParse) { + foreach ($this->variableCache as $name => $value) { + $regs[] = $this->openingDelimiter . + $name . $this->closingDelimiter; + + $values[] = $value; + + $empty = false; + + $variablelist[] = $name; + } + $this->variableCache = array(); + } else { + foreach ($this->blockvariables[$block] as $allowedvar => $v) { + + if (isset($this->variableCache[$allowedvar])) { + $regs[] = $this->openingDelimiter . + $allowedvar . $this->closingDelimiter; + $values[] = $this->variableCache[$allowedvar]; + + unset($this->variableCache[$allowedvar]); + + $empty = false; + + $variablelist[] = $allowedvar; + } + } + } + + if (isset($this->blockinner[$block])) { + foreach ($this->blockinner[$block] as $k => $innerblock) { + + $this->parse($innerblock, true); + if ($this->blockdata[$innerblock] != '') { + $empty = false; + } + + $placeholder = $this->openingDelimiter . "__" . + $innerblock . "__" . $this->closingDelimiter; + + $outer = str_replace( + $placeholder, + $this->blockdata[$innerblock], $outer + ); + + $this->blockdata[$innerblock] = ""; + } + + } + + if (!$flag_recursion && 0 != count($values)) { + if ($this->_options['use_preg']) { + $regs = array_map(array(&$this, '_addPregDelimiters'), $regs); + $values = array_map(array(&$this, '_escapeBackreferences'), $values); + + $funcReplace = 'preg_replace'; + } else { + $funcReplace = 'str_replace'; + } + + if ($this->_options['preserve_data']) { + $values = array_map( + array(&$this, '_preserveOpeningDelimiter'), + $values + ); + } + + $outer = $funcReplace($regs, $values, $outer); + } + + if ($this->removeUnknownVariables) { + $outer = $this->removeUnknownVariablesFromBlock( + $block, + $outer, + $variablelist + ); + } + + if ($empty) { + if (!$this->removeEmptyBlocks) { + $this->blockdata[$block ] .= $outer; + } else { + if (isset($this->touchedBlocks[$block])) { + $this->blockdata[$block] .= $outer; + unset($this->touchedBlocks[$block]); + } + } + } else { + if (empty($this->blockdata[$block])) { + $this->blockdata[$block] = $outer; + } else { + $this->blockdata[$block] .= $outer; + } + } + + return $empty; + } // end func parse + + /** + * Removes unknown variables from block. If preserve_input is set to true + * only unknown variables that were present during setTemplate or + * loadTemplatefile are removed. Thus you can set a variable to + * "{SOMEINPUTDATA}" which is preserved. + * + * @param string $blockname block + * @param string $blockinner unknown + * @param string $variableList unknown + * + * @see parse() + * @access private + * @return null + */ + function removeUnknownVariablesFromBlock ($blockname, $blockinner, $variableList) + { + if ($this->_options['preserve_input']) { + foreach ($this->blockvariables[$blockname] as $var => $setted) { + if (!in_array($var, $variableList)) { + $blockinner = str_replace( + $this->openingDelimiter . $var . $this->closingDelimiter, + '', + $blockinner + ); + } + } + } else { + $blockinner = preg_replace( + $this->removeVariablesRegExp, + '', + $blockinner + ); + } + + return $blockinner; + } + + /** + * Parses the current block + * + * @see parse(), setCurrentBlock(), $currentBlock + * @access public + * @return null + */ + function parseCurrentBlock() + { + return $this->parse($this->currentBlock); + } // end func parseCurrentBlock + + /** + * Checks to see if a placeholder exists within a block (and its children) + * + * @access public + * @return bool + */ + function checkPlaceholderExists($blockname, $placeholder) { + if (isset($this->blockvariables[$blockname][$placeholder])) { + return true; + } + if (isset($this->blockinner[$blockname])) { + foreach ($this->blockinner[$blockname] as $block) { + if ($this->checkPlaceholderExists($block, $placeholder)) { + return true; + } + } + } + return false; + } // end func checkPlaceholderExists + + /** + * Sets a variable value. + * + * The function can be used eighter like setVariable( "varname", "value") + * or with one array $variables["varname"] = "value" + * given setVariable($variables) quite like phplib templates set_var(). + * + * @param mixed $variable string with the variable name or an array + * %variables["varname"] = "value" + * @param string $value value of the variable or empty if $variable + * is an array. + * + * @access public + * @return null + */ + function setVariable($variable, $value = '') + { + if (is_array($variable)) { + foreach ($variable as $key => $value) { + $this->setVariable($key, $value); + } + } else { + if ($this->checkPlaceholderExists($this->currentBlock, $variable)) { + $this->variableCache[$variable] = $value; + } + } + } // end func setVariable + + /** + * Sets the name of the current block that is the block where variables + * are added. + * + * @param string $block name of the block + * + * @return boolean false on failure, otherwise true + * @throws PEAR_Error + * @access public + */ + function setCurrentBlock($block = '__global__') + { + + if (!isset($this->blocklist[$block])) { + return PEAR::raiseError( + $this->errorMessage(IT_BLOCK_NOT_FOUND) + . '"' . $block . "'", + IT_BLOCK_NOT_FOUND + ); + } + + $this->currentBlock = $block; + + return true; + } // end func setCurrentBlock + + /** + * Preserves an empty block even if removeEmptyBlocks is true. + * + * @param string $block name of the block + * + * @return boolean false on false, otherwise true + * @throws PEAR_Error + * @access public + * @see $removeEmptyBlocks + */ + function touchBlock($block) + { + if (!isset($this->blocklist[$block])) { + return PEAR::raiseError( + $this->errorMessage(IT_BLOCK_NOT_FOUND) . '"' . $block . "'", + IT_BLOCK_NOT_FOUND + ); + } + + $this->touchedBlocks[$block] = true; + + return true; + } // end func touchBlock + + /** + * Clears all datafields of the object and rebuild the internal blocklist + * + * LoadTemplatefile() and setTemplate() automatically call this function + * when a new template is given. Don't use this function + * unless you know what you're doing. + * + * @access private + * @see free() + * @return null + */ + function init() + { + $this->free(); + $this->findBlocks($this->template); + // we don't need it any more + $this->template = ''; + $this->buildBlockvariablelist(); + } // end func init + + /** + * Clears all datafields of the object. + * + * Don't use this function unless you know what you're doing. + * + * @access private + * @see init() + * @return null + */ + function free() + { + $this->err = array(); + + $this->currentBlock = '__global__'; + + $this->variableCache = array(); + $this->blocklist = array(); + $this->touchedBlocks = array(); + + $this->flagBlocktrouble = false; + $this->flagGlobalParsed = false; + } // end func free + + /** + * Sets the template. + * + * You can eighter load a template file from disk with + * LoadTemplatefile() or set the template manually using this function. + * + * @param string $template template content + * @param bool $removeUnknownVariables how to handle unknown variables. + * @param bool $removeEmptyBlocks how to handle empty blocks. + * + * @see LoadTemplatefile(), $template + * @access public + * @return boolean + */ + function setTemplate( $template, + $removeUnknownVariables = true, + $removeEmptyBlocks = true) { + $this->removeUnknownVariables = $removeUnknownVariables; + + $this->removeEmptyBlocks = $removeEmptyBlocks; + + if ($template == '' && $this->flagCacheTemplatefile) { + $this->variableCache = array(); + $this->blockdata = array(); + $this->touchedBlocks = array(); + $this->currentBlock = '__global__'; + } else { + $this->template = '' . $template . + ''; + $this->init(); + } + + if ($this->flagBlocktrouble) { + return false; + } + + return true; + } // end func setTemplate + + /** + * Reads a template file from the disk. + * + * @param string $filename name of the template file + * @param bool $removeUnknownVariables how to handle unknown variables. + * @param bool $removeEmptyBlocks how to handle empty blocks. + * + * @access public + * @return boolean false on failure, otherwise true + * @see $template, setTemplate(), $removeUnknownVariables, + * $removeEmptyBlocks + */ + function loadTemplatefile( $filename, + $removeUnknownVariables = true, + $removeEmptyBlocks = true ) {; + $template = ''; + if (!$this->flagCacheTemplatefile + || $this->lastTemplatefile != $filename + ) { + $template = $this->getFile($filename); + } + $this->lastTemplatefile = $filename; + + return $template != '' ? + $this->setTemplate( + $template, + $removeUnknownVariables, + $removeEmptyBlocks) : false; + } // end func LoadTemplatefile + + /** + * Sets the file root. The file root gets prefixed to all filenames passed + * to the object. + * + * Make sure that you override this function when using the class + * on windows. + * + * @param string $root File root + * + * @see HTML_Template_IT() + * @access public + * @return null + */ + function setRoot($root) + { + if ($root != '' && substr($root, -1) != '/') { + $root .= '/'; + } + + $this->fileRoot = $root; + } // end func setRoot + + /** + * Build a list of all variables within of a block + * + * @access private + * @return null + */ + function buildBlockvariablelist() + { + foreach ($this->blocklist as $name => $content) { + preg_match_all($this->variablesRegExp, $content, $regs); + + if (count($regs[1]) != 0) { + foreach ($regs[1] as $k => $var) { + $this->blockvariables[$name][$var] = true; + } + } else { + $this->blockvariables[$name] = array(); + } + } + } // end func buildBlockvariablelist + + /** + * Returns a list of all global variables + * + * @access public + * @return array + */ + function getGlobalvariables() + { + $regs = array(); + $values = array(); + + foreach ($this->blockvariables['__global__'] as $allowedvar => $v) { + if (isset($this->variableCache[$allowedvar])) { + $regs[] = '@' . $this->openingDelimiter . + $allowedvar . $this->closingDelimiter . '@'; + $values[] = $this->variableCache[$allowedvar]; + unset($this->variableCache[$allowedvar]); + } + } + + return array($regs, $values); + } // end func getGlobalvariables + + /** + * Recusively builds a list of all blocks within the template. + * + * @param string $string string that gets scanned + * + * @access private + * @see $blocklist + * @return array + */ + function findBlocks($string) + { + $blocklist = array(); + + if (preg_match_all($this->blockRegExp, $string, $regs, PREG_SET_ORDER)) { + foreach ($regs as $k => $match) { + $blockname = $match[1]; + $blockcontent = $match[2]; + + if (isset($this->blocklist[$blockname])) { + $msg = $this->errorMessage(IT_BLOCK_DUPLICATE, $blockname); + + $this->err[] = PEAR::raiseError($msg, IT_BLOCK_DUPLICATE); + + $this->flagBlocktrouble = true; + } + + $this->blocklist[$blockname] = $blockcontent; + $this->blockdata[$blockname] = ""; + + $blocklist[] = $blockname; + + $inner = $this->findBlocks($blockcontent); + $regex = '@(.*)@sm'; + foreach ($inner as $k => $name) { + $pattern = sprintf($regex, preg_quote($name), preg_quote($name)); + + $this->blocklist[$blockname] = preg_replace( + $pattern, + $this->openingDelimiter . + '__' . $name . '__' . + $this->closingDelimiter, + $this->blocklist[$blockname] + ); + + $this->blockinner[$blockname][] = $name; + + $this->blockparents[$name] = $blockname; + } + } + } + + return $blocklist; + } // end func findBlocks + + /** + * Reads a file from disk and returns its content. + * + * @param string $filename Filename + * + * @return string Filecontent + * @access private + */ + function getFile($filename) + { + if ($filename{0} == '/' && substr($this->fileRoot, -1) == '/') { + $filename = substr($filename, 1); + } + + $filename = $this->fileRoot . $filename; + + if (!($fh = @fopen($filename, 'r'))) { + $this->err[] = PEAR::raiseError( + $this->errorMessage(IT_TPL_NOT_FOUND) . ': "' .$filename .'"', + IT_TPL_NOT_FOUND + ); + return ""; + } + + $fsize = filesize($filename); + if ($fsize < 1) { + fclose($fh); + return ''; + } + + $content = fread($fh, $fsize); + fclose($fh); + + return preg_replace( + "##ime", + "\$this->getFile('\\1')", + $content + ); + } // end func getFile + + /** + * Adds delimiters to a string, so it can be used as a pattern + * in preg_* functions + * + * @param string $str input + * + * @return string + * @access private + */ + function _addPregDelimiters($str) + { + return '@' . preg_quote($str) . '@'; + } + + /** + * Escapes $ and \ as preg_replace will treat + * them as a backreference and not literal. + * See bug #9501 + * + * @param string $str String to escape + * + * @since 1.2.2 + * @return string + * @access private + */ + function _escapeBackreferences($str) + { + $str = str_replace('\\', '\\\\', $str); + $str = preg_replace('@\$([0-9]{1,2})@', '\\\$${1}', $str); + return $str; + } + + /** + * Replaces an opening delimiter by a special string + * + * @param string $str special string + * + * @return string + * @access private + */ + function _preserveOpeningDelimiter($str) + { + return (false === strpos($str, $this->openingDelimiter))? + $str: + str_replace( + $this->openingDelimiter, + $this->openingDelimiter . + '%preserved%' . $this->closingDelimiter, + $str + ); + } + + /** + * Return a textual error message for a IT error code + * + * @param integer $value error code + * @param string $blockname unknown + * + * @access private + * @return string error message, or false if the error code was + * not recognized + */ + function errorMessage($value, $blockname = '') + { + static $errorMessages; + if (!isset($errorMessages)) { + $errorMessages = array( + IT_OK => '', + IT_ERROR => 'unknown error', + IT_TPL_NOT_FOUND => 'Cannot read the template file', + IT_BLOCK_NOT_FOUND => 'Cannot find this block', + IT_BLOCK_DUPLICATE => 'The name of a block must be'. + ' uniquewithin a template.'. + ' Found "' . $blockname . '" twice.'. + 'Unpredictable results '. + 'may appear.', + IT_UNKNOWN_OPTION => 'Unknown option' + ); + } + + if (PEAR::isError($value)) { + $value = $value->getCode(); + } + + return isset($errorMessages[$value]) ? + $errorMessages[$value] : $errorMessages[IT_ERROR]; + } +} // end class IntegratedTemplate +?> diff --git a/libraries/pear/HTML/Template/ITX.php b/libraries/pear/HTML/Template/ITX.php new file mode 100644 index 0000000..b8ec37c --- /dev/null +++ b/libraries/pear/HTML/Template/ITX.php @@ -0,0 +1,889 @@ + + * Pierre-Alain Joye + * David Soria Parra + * + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @version CVS: $Id: ITX.php 295086 2010-02-15 06:31:36Z clockwerx $ + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public + */ + +require_once 'HTML/Template/IT.php'; +require_once 'HTML/Template/IT_Error.php'; + +/** +* Integrated Template Extension - ITX +* +* With this class you get the full power of the phplib template class. +* You may have one file with blocks in it but you have as well one main file +* and multiple files one for each block. This is quite usefull when you have +* user configurable websites. Using blocks not in the main template allows +* you to modify some parts of your layout easily. +* +* Note that you can replace an existing block and add new blocks at runtime. +* Adding new blocks means changing a variable placeholder to a block. +* + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public +*/ +class HTML_Template_ITX extends HTML_Template_IT +{ + /** + * Array with all warnings. + * @var array + * @access public + * @see $printWarning, $haltOnWarning, warning() + */ + var $warn = array(); + + /** + * Print warnings? + * @var array + * @access public + * @see $haltOnWarning, $warn, warning() + */ + var $printWarning = false; + + /** + * Call die() on warning? + * @var boolean + * @access public + * @see $warn, $printWarning, warning() + */ + var $haltOnWarning = false; + + /** + * RegExp used to test for a valid blockname. + * @var string + * @access private + */ + var $checkblocknameRegExp = ''; + + /** + * Functionnameprefix used when searching function calls in the template. + * @var string + * @access public + */ + var $functionPrefix = 'func_'; + + /** + * Functionname RegExp. + * @var string + * @access public + */ + var $functionnameRegExp = '[_a-zA-Z]+[A-Za-z_0-9]*'; + + /** + * RegExp used to grep function calls in the template. + * + * The variable gets set by the constructor. + * + * @access private + * @var string + * @see HTML_Template_IT() + */ + var $functionRegExp = ''; + + /** + * List of functions found in the template. + * + * @access private + * @var array + */ + var $functions = array(); + + /** + * List of callback functions specified by the user. + * + * @access private + * @var array + */ + var $callback = array(); + + /** + * Builds some complex regexps and calls the constructor + * of the parent class. + * + * Make sure that you call this constructor if you derive your own + * template class from this one. + * + * @param string $root Root node? + * + * @access public + * @see HTML_Template_IT() + */ + function HTML_Template_ITX($root = '') + { + + $this->checkblocknameRegExp = '@' . $this->blocknameRegExp . '@'; + + $this->functionRegExp = '@' . $this->functionPrefix . '(' . + $this->functionnameRegExp . ')\s*\(@sm'; + + $this->HTML_Template_IT($root); + } // end func constructor + + /** + * Clears all datafields of the object and rebuild the internal blocklist + * + * LoadTemplatefile() and setTemplate() automatically call this function + * when a new template is given. Don't use this function + * unless you know what you're doing. + * + * @access private + * @return null + */ + function init() + { + $this->free(); + $this->buildFunctionlist(); + $this->findBlocks($this->template); + + // we don't need it any more + $this->template = ''; + $this->buildBlockvariablelist(); + + } // end func init + + /** + * Replaces an existing block with new content. + * + * This function will replace a block of the template and all blocks + * contained in the replaced block and add a new block insted, means + * you can dynamically change your template. + * + * Note that changing the template structure violates one of the IT[X] + * development goals. I've tried to write a simple to use template engine + * supporting blocks. In contrast to other systems IT[X] analyses the way + * you've nested blocks and knows which block belongs into another block. + * The nesting information helps to make the API short and simple. Replacing + * blocks does not only mean that IT[X] has to update the nesting + * information (relatively time consumpting task) but you have to make sure + * that you do not get confused due to the template change itself. + * + * @param string $block Blockname + * @param string $template Blockcontent + * @param boolean $keep_content true if the new block inherits the content + * of the old block + * + * @return boolean + * @throws IT_Error + * @see replaceBlockfile(), addBlock(), addBlockfile() + * @access public + */ + function replaceBlock($block, $template, $keep_content = false) + { + if (!isset($this->blocklist[$block])) { + return new IT_Error("The block "."'$block'". + " does not exist in the template and thus it can't be replaced.", + __FILE__, __LINE__); + } + + if ($template == '') { + return new IT_Error('No block content given.', __FILE__, __LINE__); + } + + if ($keep_content) { + $blockdata = $this->blockdata[$block]; + } + + // remove all kinds of links to the block / data of the block + $this->removeBlockData($block); + + $template = "" . $template . ""; + $parents = $this->blockparents[$block]; + + $this->findBlocks($template); + $this->blockparents[$block] = $parents; + + // KLUDGE: rebuild the list for all block - could be done faster + $this->buildBlockvariablelist(); + + if ($keep_content) { + $this->blockdata[$block] = $blockdata; + } + + // old TODO - I'm not sure if we need this + // update caches + + return true; + } // end func replaceBlock + + /** + * Replaces an existing block with new content from a file. + * + * @param string $block Blockname + * @param string $filename Name of the file that contains the blockcontent + * @param boolean $keep_content true if the new block inherits the content of + * the old block + * + * @brother replaceBlock() + * @access public + * @return null + */ + function replaceBlockfile($block, $filename, $keep_content = false) + { + return $this->replaceBlock($block, $this->getFile($filename), $keep_content); + } // end func replaceBlockfile + + /** + * Adds a block to the template changing a variable placeholder + * to a block placeholder. + * + * Add means "replace a variable placeholder by a new block". + * This is different to PHPLibs templates. The function loads a + * block, creates a handle for it and assigns it to a certain + * variable placeholder. To to the same with PHPLibs templates you would + * call set_file() to create the handle and parse() to assign the + * parsed block to a variable. By this PHPLibs templates assume + * that you tend to assign a block to more than one one placeholder. + * To assign a parsed block to more than only the placeholder you specify + * in this function you have to use a combination of getBlock() + * and setVariable(). + * + * As no updates to cached data is necessary addBlock() and addBlockfile() + * are rather "cheap" meaning quick operations. + * + * The block content must not start with + * and end with this would cause overhead and + * produce an error. + * + * @param string $placeholder Name of the variable placeholder, the name + * must be unique within the template. + * @param string $blockname Name of the block to be added + * @param string $template Content of the block + * + * @return boolean + * @throws IT_Error + * @see addBlockfile() + * @access public + */ + function addBlock($placeholder, $blockname, $template) + { + // Don't trust any user even if it's a programmer or yourself... + if ($placeholder == '') { + return new IT_Error('No variable placeholder given.', + __FILE__, __LINE__); + } elseif ($blockname == '' || + !preg_match($this->checkblocknameRegExp, $blockname) + ) { + return new IT_Error("No or invalid blockname '$blockname' given.", + __FILE__, __LINE__); + } elseif ($template == '') { + return new IT_Error('No block content given.', __FILE__, __LINE__); + } elseif (isset($this->blocklist[$blockname])) { + return new IT_Error('The block already exists.', + __FILE__, __LINE__); + } + + // find out where to insert the new block + $parents = $this->findPlaceholderBlocks($placeholder); + if (count($parents) == 0) { + + return new IT_Error("The variable placeholder". + " '$placeholder' was not found in the template.", + __FILE__, __LINE__); + + } elseif (count($parents) > 1) { + + reset($parents); + while (list($k, $parent) = each($parents)) { + $msg .= "$parent, "; + } + $msg = substr($parent, -2); + + return new IT_Error("The variable placeholder "."'$placeholder'". + " must be unique, found in multiple blocks '$msg'.", + __FILE__, __LINE__); + } + + $template = "" + . $template + . ""; + $this->findBlocks($template); + if ($this->flagBlocktrouble) { + return false; // findBlocks() already throws an exception + } + + $this->blockinner[$parents[0]][] = $blockname; + + $escblockname = '__' . $blockname . '__'; + + $this->blocklist[$parents[0]] = preg_replace( + '@' . $this->openingDelimiter . $placeholder . + $this->closingDelimiter . '@', + $this->openingDelimiter . $escblockname . $this->closingDelimiter, + $this->blocklist[$parents[0]] + ); + + $this->deleteFromBlockvariablelist($parents[0], $placeholder); + $this->updateBlockvariablelist($blockname); + + return true; + } // end func addBlock + + /** + * Adds a block taken from a file to the template changing a variable + * placeholder to a block placeholder. + * + * @param string $placeholder Name of the variable placeholder to be converted + * @param string $blockname Name of the block to be added + * @param string $filename File that contains the block + * + * @brother addBlock() + * @access public + * @return null + */ + function addBlockfile($placeholder, $blockname, $filename) + { + return $this->addBlock($placeholder, $blockname, $this->getFile($filename)); + } // end func addBlockfile + + /** + * Returns the name of the (first) block that contains + * the specified placeholder. + * + * @param string $placeholder Name of the placeholder you're searching + * @param string $block Name of the block to scan. If left out (default) + * all blocks are scanned. + * + * @return string Name of the (first) block that contains + * the specified placeholder. + * If the placeholder was not found or an error occured + * an empty string is returned. + * @throws IT_Error + * @access public + */ + function placeholderExists($placeholder, $block = '') + { + if ($placeholder == '') { + new IT_Error('No placeholder name given.', __FILE__, __LINE__); + return ''; + } + + if ($block != '' && !isset($this->blocklist[$block])) { + new IT_Error("Unknown block '$block'.", __FILE__, __LINE__); + return ''; + } + + // name of the block where the given placeholder was found + $found = ''; + + if ($block != '') { + if (is_array($variables = $this->blockvariables[$block])) { + // search the value in the list of blockvariables + reset($variables); + while (list($k, $variable) = each($variables)) { + if ($k == $placeholder) { + $found = $block; + break; + } + } + } + } else { + + // search all blocks and return the name of the first block that + // contains the placeholder + reset($this->blockvariables); + while (list($blockname, $variables) = each($this->blockvariables)) { + if (is_array($variables) && isset($variables[$placeholder])) { + $found = $blockname; + break; + } + } + } + + return $found; + } // end func placeholderExists + + /** + * Checks the list of function calls in the template and + * calls their callback function. + * + * @access public + * @return null + */ + function performCallback() + { + reset($this->functions); + while (list($func_id, $function) = each($this->functions)) { + if (isset($this->callback[$function['name']])) { + if ($this->callback[$function['name']]['expandParameters']) { + $callFunction = 'call_user_func_array'; + } else { + $callFunction = 'call_user_func'; + } + + if ($this->callback[$function['name']]['object'] != '') { + $call = $callFunction( + array( + &$GLOBALS[$this->callback[$function['name']]['object']], + $this->callback[$function['name']]['function']), + $function['args']); + + } else { + $call = $callFunction( + $this->callback[$function['name']]['function'], + $function['args']); + } + $this->variableCache['__function' . $func_id . '__'] = $call; + } + } + + } // end func performCallback + + /** + * Returns a list of all function calls in the current template. + * + * @return array + * @access public + */ + function getFunctioncalls() + { + return $this->functions; + } // end func getFunctioncalls + + /** + * Replaces a function call with the given replacement. + * + * @param int $functionID Function ID + * @param string $replacement Replacement + * + * @access public + * @deprecated + * @return null + */ + function setFunctioncontent($functionID, $replacement) + { + $this->variableCache['__function' . $functionID . '__'] = $replacement; + } // end func setFunctioncontent + + /** + * Sets a callback function. + * + * IT[X] templates (note the X) can contain simple function calls. + * "function call" means that the editor of the template can add + * special placeholder to the template like 'func_h1("embedded in h1")'. + * IT[X] will grab this function calls and allow you to define a callback + * function for them. + * + * This is an absolutely evil feature. If your application makes heavy + * use of such callbacks and you're even implementing if-then etc. on + * the level of a template engine you're reiventing the wheel... - that's + * actually how PHP came into life. Anyway, sometimes it's handy. + * + * Consider also using XML/XSLT or native PHP. And please do not push + * IT[X] any further into this direction of adding logics to the template + * engine. + * + * For those of you ready for the X in IT[X]: + * + * %s
', $args[0]); + * } + * + * ... + * $itx = new HTML_Template_ITX(...); + * ... + * $itx->setCallbackFunction('h1', 'h_one'); + * $itx->performCallback(); + * ?> + * + * template: + * func_h1('H1 Headline'); + * + * @param string $tplfunction Function name in the template + * @param string $callbackfunction Name of the callback function + * @param string $callbackobject Name of the callback object + * @param boolean $expandCallbackParameters If the callback is called with + * a list of parameters or with an + * array holding the parameters + * + * @return boolean False on failure. + * @throws IT_Error + * @access public + * @deprecated The $callbackobject parameter is depricated since + * version 1.2 and might be dropped in further versions. + */ + function setCallbackFunction($tplfunction, $callbackfunction, + $callbackobject = '', + $expandCallbackParameters = false) { + if ($tplfunction == '' || $callbackfunction == '') { + return new IT_Error("No template function "."('$tplfunction')". + " and/or no callback function ('$callback') given.", + __FILE__, __LINE__); + } + $this->callback[$tplfunction] = array( + 'function' => $callbackfunction, + 'object' => $callbackobject, + 'expandParameters' => (boolean) + $expandCallbackParameters); + + return true; + } // end func setCallbackFunction + + /** + * Sets the Callback function lookup table + * + * @param array $functions function table + * array[templatefunction] = + * array( + * "function" => userfunction, + * "object" => userobject + * ) + * + * @access public + * @return null + */ + function setCallbackFuntiontable($functions) + { + $this->callback = $functions; + } // end func setCallbackFunctiontable + + /** + * Recursively removes all data assiciated with a block, including + * all inner blocks + * + * @param string $block block to be removed + * + * @return null + * @access private + */ + function removeBlockData($block) + { + if (isset($this->blockinner[$block])) { + foreach ($this->blockinner[$block] as $k => $inner) { + $this->removeBlockData($inner); + } + + unset($this->blockinner[$block]); + } + + unset($this->blocklist[$block]); + unset($this->blockdata[$block]); + unset($this->blockvariables[$block]); + unset($this->touchedBlocks[$block]); + + } // end func removeBlockinner + + /** + * Returns a list of blocknames in the template. + * + * @return array [blockname => blockname] + * @access public + * @see blockExists() + */ + function getBlocklist() + { + $blocklist = array(); + foreach ($this->blocklist as $block => $content) { + $blocklist[$block] = $block; + } + + return $blocklist; + } // end func getBlocklist + + /** + * Checks wheter a block exists. + * + * @param string $blockname Blockname + * + * @return boolean + * @access public + * @see getBlocklist() + */ + function blockExists($blockname) + { + return isset($this->blocklist[$blockname]); + } // end func blockExists + + /** + * Returns a list of variables of a block. + * + * @param string $block Blockname + * + * @return array [varname => varname] + * @access public + * @see BlockvariableExists() + */ + function getBlockvariables($block) + { + if (!isset($this->blockvariables[$block])) { + return array(); + } + + $variables = array(); + foreach ($this->blockvariables[$block] as $variable => $v) { + $variables[$variable] = $variable; + } + + return $variables; + } // end func getBlockvariables + + /** + * Checks wheter a block variable exists. + * + * @param string $block Blockname + * @param string $variable Variablename + * + * @return boolean + * @access public + * @see getBlockvariables() + */ + function BlockvariableExists($block, $variable) + { + return isset($this->blockvariables[$block][$variable]); + } // end func BlockvariableExists + + /** + * Builds a functionlist from the template. + * + * @access private + * @return null + */ + function buildFunctionlist() + { + $this->functions = array(); + + $template = $this->template; + + $num = 0; + + while (preg_match($this->functionRegExp, $template, $regs)) { + + $pos = strpos($template, $regs[0]); + + $template = substr($template, $pos + strlen($regs[0])); + + $head = $this->getValue($template, ')'); + $args = array(); + + $search = $regs[0] . $head . ')'; + + $replace = $this->openingDelimiter . + '__function' . $num . '__' . + $this->closingDelimiter; + + $this->template = str_replace($search, $replace, $this->template); + $template = str_replace($search, $replace, $template); + + while ($head != '' && $args2 = $this->getValue($head, ',')) { + $arg2 = trim($args2); + + $args[] = ('"' == $arg2{0} || "'" == $arg2{0}) ? + substr($arg2, 1, -1) : $arg2; + + if ($arg2 == $head) { + break; + } + $head = substr($head, strlen($arg2) + 1); + } + + $this->functions[$num++] = array('name' => $regs[1], + 'args' => $args); + } + + } // end func buildFunctionlist + + /** + * Truncates the given code from the first occurence of + * $delimiter but ignores $delimiter enclosed by " or '. + * + * @param string $code The code which should be parsed + * @param string $delimiter The delimiter char + * + * @access private + * @return string + * @see buildFunctionList() + */ + function getValue($code, $delimiter) + { + if ($code == '') { + return ''; + } + + if (!is_array($delimiter)) { + $delimiter = array($delimiter => true); + } + + $len = strlen($code); + $enclosed = false; + $enclosed_by = ''; + + if (isset($delimiter[$code[0]])) { + $i = 1; + } else { + for ($i = 0; $i < $len; ++$i) { + $char = $code[$i]; + + if (($char == '"' || $char == "'") + && ($char == $enclosed_by || '' == $enclosed_by) + && (0 == $i || ($i > 0 && '\\' != $code[$i - 1])) + ) { + + if (!$enclosed) { + $enclosed_by = $char; + } else { + $enclosed_by = ""; + } + $enclosed = !$enclosed; + + } + + if (!$enclosed && isset($delimiter[$char])) { + break; + } + } + } + + return substr($code, 0, $i); + } // end func getValue + + /** + * Deletes one or many variables from the block variable list. + * + * @param string $block Blockname + * @param mixed $variables Name of one variable or array of variables + * (array (name => true ) ) to be stripped. + * + * @access private + * @return null + */ + function deleteFromBlockvariablelist($block, $variables) + { + if (!is_array($variables)) { + $variables = array($variables => true); + } + + reset($this->blockvariables[$block]); + while (list($varname, $val) = each($this->blockvariables[$block])) { + if (isset($variables[$varname])) { + unset($this->blockvariables[$block][$varname]); + } + } + } // end deleteFromBlockvariablelist + + /** + * Updates the variable list of a block. + * + * @param string $block Blockname + * + * @access private + * @return null + */ + function updateBlockvariablelist($block) + { + preg_match_all( + $this->variablesRegExp, + $this->blocklist[$block], $regs + ); + + if (count($regs[1]) != 0) { + foreach ($regs[1] as $k => $var) { + $this->blockvariables[$block][$var] = true; + } + } else { + $this->blockvariables[$block] = array(); + } + + // check if any inner blocks were found + if (isset($this->blockinner[$block]) + && is_array($this->blockinner[$block]) + && count($this->blockinner[$block]) > 0 + ) { + /* + * loop through inner blocks, registering the variable + * placeholders in each + */ + foreach ($this->blockinner[$block] as $childBlock) { + $this->updateBlockvariablelist($childBlock); + } + } + } // end func updateBlockvariablelist + + /** + * Returns an array of blocknames where the given variable + * placeholder is used. + * + * @param string $variable Variable placeholder + * + * @return array $parents parents[0..n] = blockname + * @access public + */ + function findPlaceholderBlocks($variable) + { + $parents = array(); + reset($this->blocklist); + while (list($blockname, $content) = each($this->blocklist)) { + reset($this->blockvariables[$blockname]); + + while (list($varname, $val) = each($this->blockvariables[$blockname])) { + if ($variable == $varname) { + $parents[] = $blockname; + } + } + } + + return $parents; + } // end func findPlaceholderBlocks + + /** + * Handles warnings, saves them to $warn and prints them or + * calls die() depending on the flags + * + * @param string $message Warning + * @param string $file File where the warning occured + * @param int $line Linenumber where the warning occured + * + * @see $warn, $printWarning, $haltOnWarning + * @access private + * @return null + */ + function warning($message, $file = '', $line = 0) + { + $message = sprintf( + 'HTML_Template_ITX Warning: %s [File: %s, Line: %d]', + $message, + $file, + $line + ); + + $this->warn[] = $message; + + if ($this->printWarning) { + print $message; + } + + if ($this->haltOnWarning) { + die($message); + } + } // end func warning + +} // end class HTML_Template_ITX +?> diff --git a/libraries/pear/HTML/Template/IT_Error.php b/libraries/pear/HTML/Template/IT_Error.php new file mode 100644 index 0000000..20e250c --- /dev/null +++ b/libraries/pear/HTML/Template/IT_Error.php @@ -0,0 +1,65 @@ + + * Pierre-Alain Joye + * David Soria Parra + * + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @version CVS: $Id: IT_Error.php 295117 2010-02-15 23:25:21Z clockwerx $ + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public + */ + +require_once "PEAR.php"; + +/** +* IT[X] Error class +* + * @category HTML + * @package HTML_Template_IT + * @author Ulf Wendel + * @license BSD http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/packages/HTML_Template_IT + * @access public +*/ +class IT_Error extends PEAR_Error +{ + /** + * Prefix of all error messages. + * + * @var string + */ + var $error_message_prefix = "IntegratedTemplate Error: "; + + /** + * Creates an cache error object. + * + * @param string $msg error message + * @param string $file file where the error occured + * @param string $line linenumber where the error occured + */ + function IT_Error($msg, $file = __FILE__, $line = __LINE__) + { + $this->PEAR_Error(sprintf("%s [%s on line %d].", $msg, $file, $line)); + } // end func IT_Error + +} // end class IT_Error +?> diff --git a/libraries/pear/JSON/JSON.php b/libraries/pear/JSON/JSON.php new file mode 100644 index 0000000..2e460a9 --- /dev/null +++ b/libraries/pear/JSON/JSON.php @@ -0,0 +1,808 @@ + +* @author Matt Knapp +* @author Brett Stimmerman +* @copyright 2005 Michal Migurski +* @version CVS: $Id: JSON.php,v 1.2 2007/07/31 21:14:29 jennyhan Exp $ +* @license http://www.opensource.org/licenses/bsd-license.php +* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 +*/ + +/** +* Marker constant for Services_JSON::decode(), used to flag stack state +*/ +define('SERVICES_JSON_SLICE', 1); + +/** +* Marker constant for Services_JSON::decode(), used to flag stack state +*/ +define('SERVICES_JSON_IN_STR', 2); + +/** +* Marker constant for Services_JSON::decode(), used to flag stack state +*/ +define('SERVICES_JSON_IN_ARR', 3); + +/** +* Marker constant for Services_JSON::decode(), used to flag stack state +*/ +define('SERVICES_JSON_IN_OBJ', 4); + +/** +* Marker constant for Services_JSON::decode(), used to flag stack state +*/ +define('SERVICES_JSON_IN_CMT', 5); + +/** +* Behavior switch for Services_JSON::decode() +*/ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** +* Behavior switch for Services_JSON::decode() +*/ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** +* Converts to and from JSON format. +* +* Brief example of use: +* +* +* // create a new instance of Services_JSON +* $json = new Services_JSON(); +* +* // convert a complexe value to JSON notation, and send it to the browser +* $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); +* $output = $json->encode($value); +* +* print($output); +* // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] +* +* // accept incoming POST data, assumed to be in JSON notation +* $input = file_get_contents('php://input', 1000000); +* $value = $json->decode($input); +* +*/ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + */ + function Services_JSON($use = 0) + { + $this->use = $use; + } + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, 'encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); + $utf8 = ''; + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = substr($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XXXXX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = substr($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = substr($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = substr($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @todo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @todo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} + +?> diff --git a/libraries/pear/JSON/index.html b/libraries/pear/JSON/index.html new file mode 100644 index 0000000..0e44bd0 --- /dev/null +++ b/libraries/pear/JSON/index.html @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/libraries/pear/PEAR.php b/libraries/pear/PEAR.php new file mode 100644 index 0000000..772e025 --- /dev/null +++ b/libraries/pear/PEAR.php @@ -0,0 +1,1129 @@ + + * @author Stig Bakken + * @author Tomas V.V.Cox + * @author Greg Beaver + * @copyright 1997-2009 The Authors + * @license http://opensource.org/licenses/bsd-license.php New BSD License + * @version CVS: $Id: PEAR.php 12356 2009-06-24 18:20:14Z ian $ + * @link http://pear.php.net/package/PEAR + * @since File available since Release 0.1 + */ + +/**#@+ + * ERROR constants + */ +define('PEAR_ERROR_RETURN', 1); +define('PEAR_ERROR_PRINT', 2); +define('PEAR_ERROR_TRIGGER', 4); +define('PEAR_ERROR_DIE', 8); +define('PEAR_ERROR_CALLBACK', 16); +/** + * WARNING: obsolete + * @deprecated + */ +define('PEAR_ERROR_EXCEPTION', 32); +/**#@-*/ +define('PEAR_ZE2', (function_exists('version_compare') && + version_compare(zend_version(), "2-dev", "ge"))); + +if (substr(PHP_OS, 0, 3) == 'WIN') { + define('OS_WINDOWS', true); + define('OS_UNIX', false); + define('PEAR_OS', 'Windows'); +} else { + define('OS_WINDOWS', false); + define('OS_UNIX', true); + define('PEAR_OS', 'Unix'); // blatant assumption +} + +$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN; +$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE; +$GLOBALS['_PEAR_destructor_object_list'] = array(); +$GLOBALS['_PEAR_shutdown_funcs'] = array(); +$GLOBALS['_PEAR_error_handler_stack'] = array(); + +@ini_set('track_errors', true); + +/** + * Base class for other PEAR classes. Provides rudimentary + * emulation of destructors. + * + * If you want a destructor in your class, inherit PEAR and make a + * destructor method called _yourclassname (same name as the + * constructor, but with a "_" prefix). Also, in your constructor you + * have to call the PEAR constructor: $this->PEAR();. + * The destructor method will be called without parameters. Note that + * at in some SAPI implementations (such as Apache), any output during + * the request shutdown (in which destructors are called) seems to be + * discarded. If you need to get any debug information from your + * destructor, use error_log(), syslog() or something similar. + * + * IMPORTANT! To use the emulated destructors you need to create the + * objects by reference: $obj =& new PEAR_child; + * + * @category pear + * @package PEAR + * @author Stig Bakken + * @author Tomas V.V. Cox + * @author Greg Beaver + * @copyright 1997-2006 The PHP Group + * @license http://opensource.org/licenses/bsd-license.php New BSD License + * @version Release: 1.8.1 + * @link http://pear.php.net/package/PEAR + * @see PEAR_Error + * @since Class available since PHP 4.0.2 + * @link http://pear.php.net/manual/en/core.pear.php#core.pear.pear + */ +class PEAR +{ + // {{{ properties + + /** + * Whether to enable internal debug messages. + * + * @var bool + * @access private + */ + var $_debug = false; + + /** + * Default error mode for this object. + * + * @var int + * @access private + */ + var $_default_error_mode = null; + + /** + * Default error options used for this object when error mode + * is PEAR_ERROR_TRIGGER. + * + * @var int + * @access private + */ + var $_default_error_options = null; + + /** + * Default error handler (callback) for this object, if error mode is + * PEAR_ERROR_CALLBACK. + * + * @var string + * @access private + */ + var $_default_error_handler = ''; + + /** + * Which class to use for error objects. + * + * @var string + * @access private + */ + var $_error_class = 'PEAR_Error'; + + /** + * An array of expected errors. + * + * @var array + * @access private + */ + var $_expected_errors = array(); + + // }}} + + // {{{ constructor + + /** + * Constructor. Registers this object in + * $_PEAR_destructor_object_list for destructor emulation if a + * destructor object exists. + * + * @param string $error_class (optional) which class to use for + * error objects, defaults to PEAR_Error. + * @access public + * @return void + */ + function PEAR($error_class = null) + { + $classname = strtolower(get_class($this)); + if ($this->_debug) { + print "PEAR constructor called, class=$classname\n"; + } + if ($error_class !== null) { + $this->_error_class = $error_class; + } + while ($classname && strcasecmp($classname, "pear")) { + $destructor = "_$classname"; + if (method_exists($this, $destructor)) { + global $_PEAR_destructor_object_list; + $_PEAR_destructor_object_list[] = &$this; + if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { + register_shutdown_function("_PEAR_call_destructors"); + $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; + } + break; + } else { + $classname = get_parent_class($classname); + } + } + } + + // }}} + // {{{ destructor + + /** + * Destructor (the emulated type of...). Does nothing right now, + * but is included for forward compatibility, so subclass + * destructors should always call it. + * + * See the note in the class desciption about output from + * destructors. + * + * @access public + * @return void + */ + function _PEAR() { + if ($this->_debug) { + printf("PEAR destructor called, class=%s\n", strtolower(get_class($this))); + } + } + + // }}} + // {{{ getStaticProperty() + + /** + * If you have a class that's mostly/entirely static, and you need static + * properties, you can use this method to simulate them. Eg. in your method(s) + * do this: $myVar = &PEAR::getStaticProperty('myclass', 'myVar'); + * You MUST use a reference, or they will not persist! + * + * @access public + * @param string $class The calling classname, to prevent clashes + * @param string $var The variable to retrieve. + * @return mixed A reference to the variable. If not set it will be + * auto initialised to NULL. + */ + function &getStaticProperty($class, $var) + { + static $properties; + if (!isset($properties[$class])) { + $properties[$class] = array(); + } + + if (!array_key_exists($var, $properties[$class])) { + $properties[$class][$var] = null; + } + + return $properties[$class][$var]; + } + + // }}} + // {{{ registerShutdownFunc() + + /** + * Use this function to register a shutdown method for static + * classes. + * + * @access public + * @param mixed $func The function name (or array of class/method) to call + * @param mixed $args The arguments to pass to the function + * @return void + */ + function registerShutdownFunc($func, $args = array()) + { + // if we are called statically, there is a potential + // that no shutdown func is registered. Bug #6445 + if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { + register_shutdown_function("_PEAR_call_destructors"); + $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; + } + $GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args); + } + + // }}} + // {{{ isError() + + /** + * Tell whether a value is a PEAR error. + * + * @param mixed $data the value to test + * @param int $code if $data is an error object, return true + * only if $code is a string and + * $obj->getMessage() == $code or + * $code is an integer and $obj->getCode() == $code + * @access public + * @return bool true if parameter is an error + */ + function isError($data, $code = null) + { + if (!is_a($data, 'PEAR_Error')) { + return false; + } + + if (is_null($code)) { + return true; + } elseif (is_string($code)) { + return $data->getMessage() == $code; + } + + return $data->getCode() == $code; + } + + // }}} + // {{{ setErrorHandling() + + /** + * Sets how errors generated by this object should be handled. + * Can be invoked both in objects and statically. If called + * statically, setErrorHandling sets the default behaviour for all + * PEAR objects. If called in an object, setErrorHandling sets + * the default behaviour for that object. + * + * @param int $mode + * One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, + * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, + * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION. + * + * @param mixed $options + * When $mode is PEAR_ERROR_TRIGGER, this is the error level (one + * of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR). + * + * When $mode is PEAR_ERROR_CALLBACK, this parameter is expected + * to be the callback function or method. A callback + * function is a string with the name of the function, a + * callback method is an array of two elements: the element + * at index 0 is the object, and the element at index 1 is + * the name of the method to call in the object. + * + * When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is + * a printf format string used when printing the error + * message. + * + * @access public + * @return void + * @see PEAR_ERROR_RETURN + * @see PEAR_ERROR_PRINT + * @see PEAR_ERROR_TRIGGER + * @see PEAR_ERROR_DIE + * @see PEAR_ERROR_CALLBACK + * @see PEAR_ERROR_EXCEPTION + * + * @since PHP 4.0.5 + */ + + function setErrorHandling($mode = null, $options = null) + { + if (isset($this) && is_a($this, 'PEAR')) { + $setmode = &$this->_default_error_mode; + $setoptions = &$this->_default_error_options; + } else { + $setmode = &$GLOBALS['_PEAR_default_error_mode']; + $setoptions = &$GLOBALS['_PEAR_default_error_options']; + } + + switch ($mode) { + case PEAR_ERROR_EXCEPTION: + case PEAR_ERROR_RETURN: + case PEAR_ERROR_PRINT: + case PEAR_ERROR_TRIGGER: + case PEAR_ERROR_DIE: + case null: + $setmode = $mode; + $setoptions = $options; + break; + + case PEAR_ERROR_CALLBACK: + $setmode = $mode; + // class/object method callback + if (is_callable($options)) { + $setoptions = $options; + } else { + trigger_error("invalid error callback", E_USER_WARNING); + } + break; + + default: + trigger_error("invalid error mode", E_USER_WARNING); + break; + } + } + + // }}} + // {{{ expectError() + + /** + * This method is used to tell which errors you expect to get. + * Expected errors are always returned with error mode + * PEAR_ERROR_RETURN. Expected error codes are stored in a stack, + * and this method pushes a new element onto it. The list of + * expected errors are in effect until they are popped off the + * stack with the popExpect() method. + * + * Note that this method can not be called statically + * + * @param mixed $code a single error code or an array of error codes to expect + * + * @return int the new depth of the "expected errors" stack + * @access public + */ + function expectError($code = '*') + { + if (is_array($code)) { + array_push($this->_expected_errors, $code); + } else { + array_push($this->_expected_errors, array($code)); + } + return sizeof($this->_expected_errors); + } + + // }}} + // {{{ popExpect() + + /** + * This method pops one element off the expected error codes + * stack. + * + * @return array the list of error codes that were popped + */ + function popExpect() + { + return array_pop($this->_expected_errors); + } + + // }}} + // {{{ _checkDelExpect() + + /** + * This method checks unsets an error code if available + * + * @param mixed error code + * @return bool true if the error code was unset, false otherwise + * @access private + * @since PHP 4.3.0 + */ + function _checkDelExpect($error_code) + { + $deleted = false; + + foreach ($this->_expected_errors AS $key => $error_array) { + if (in_array($error_code, $error_array)) { + unset($this->_expected_errors[$key][array_search($error_code, $error_array)]); + $deleted = true; + } + + // clean up empty arrays + if (0 == count($this->_expected_errors[$key])) { + unset($this->_expected_errors[$key]); + } + } + return $deleted; + } + + // }}} + // {{{ delExpect() + + /** + * This method deletes all occurences of the specified element from + * the expected error codes stack. + * + * @param mixed $error_code error code that should be deleted + * @return mixed list of error codes that were deleted or error + * @access public + * @since PHP 4.3.0 + */ + function delExpect($error_code) + { + $deleted = false; + if ((is_array($error_code) && (0 != count($error_code)))) { + // $error_code is a non-empty array here; + // we walk through it trying to unset all + // values + foreach($error_code as $key => $error) { + if ($this->_checkDelExpect($error)) { + $deleted = true; + } else { + $deleted = false; + } + } + return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME + } elseif (!empty($error_code)) { + // $error_code comes alone, trying to unset it + if ($this->_checkDelExpect($error_code)) { + return true; + } else { + return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME + } + } + + // $error_code is empty + return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME + } + + // }}} + // {{{ raiseError() + + /** + * This method is a wrapper that returns an instance of the + * configured error class with this object's default error + * handling applied. If the $mode and $options parameters are not + * specified, the object's defaults are used. + * + * @param mixed $message a text error message or a PEAR error object + * + * @param int $code a numeric error code (it is up to your class + * to define these if you want to use codes) + * + * @param int $mode One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT, + * PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE, + * PEAR_ERROR_CALLBACK, PEAR_ERROR_EXCEPTION. + * + * @param mixed $options If $mode is PEAR_ERROR_TRIGGER, this parameter + * specifies the PHP-internal error level (one of + * E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR). + * If $mode is PEAR_ERROR_CALLBACK, this + * parameter specifies the callback function or + * method. In other error modes this parameter + * is ignored. + * + * @param string $userinfo If you need to pass along for example debug + * information, this parameter is meant for that. + * + * @param string $error_class The returned error object will be + * instantiated from this class, if specified. + * + * @param bool $skipmsg If true, raiseError will only pass error codes, + * the error message parameter will be dropped. + * + * @access public + * @return object a PEAR error object + * @see PEAR::setErrorHandling + * @since PHP 4.0.5 + */ + function &raiseError($message = null, + $code = null, + $mode = null, + $options = null, + $userinfo = null, + $error_class = null, + $skipmsg = false) + { + // The error is yet a PEAR error object + if (is_object($message)) { + $code = $message->getCode(); + $userinfo = $message->getUserInfo(); + $error_class = $message->getType(); + $message->error_message_prefix = ''; + $message = $message->getMessage(); + } + + if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) { + if ($exp[0] == "*" || + (is_int(reset($exp)) && in_array($code, $exp)) || + (is_string(reset($exp)) && in_array($message, $exp))) { + $mode = PEAR_ERROR_RETURN; + } + } + + // No mode given, try global ones + if ($mode === null) { + // Class error handler + if (isset($this) && isset($this->_default_error_mode)) { + $mode = $this->_default_error_mode; + $options = $this->_default_error_options; + // Global error handler + } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) { + $mode = $GLOBALS['_PEAR_default_error_mode']; + $options = $GLOBALS['_PEAR_default_error_options']; + } + } + + if ($error_class !== null) { + $ec = $error_class; + } elseif (isset($this) && isset($this->_error_class)) { + $ec = $this->_error_class; + } else { + $ec = 'PEAR_Error'; + } + + if (intval(PHP_VERSION) < 5) { + // little non-eval hack to fix bug #12147 + include 'PEAR/FixPHP5PEARWarnings.php'; + return $a; + } + + if ($skipmsg) { + $a = new $ec($code, $mode, $options, $userinfo); + } else { + $a = new $ec($message, $code, $mode, $options, $userinfo); + } + + return $a; + } + + // }}} + // {{{ throwError() + + /** + * Simpler form of raiseError with fewer options. In most cases + * message, code and userinfo are enough. + * + * @param string $message + * + */ + function &throwError($message = null, + $code = null, + $userinfo = null) + { + if (isset($this) && is_a($this, 'PEAR')) { + $a = &$this->raiseError($message, $code, null, null, $userinfo); + return $a; + } + + $a = &PEAR::raiseError($message, $code, null, null, $userinfo); + return $a; + } + + // }}} + function staticPushErrorHandling($mode, $options = null) + { + $stack = &$GLOBALS['_PEAR_error_handler_stack']; + $def_mode = &$GLOBALS['_PEAR_default_error_mode']; + $def_options = &$GLOBALS['_PEAR_default_error_options']; + $stack[] = array($def_mode, $def_options); + switch ($mode) { + case PEAR_ERROR_EXCEPTION: + case PEAR_ERROR_RETURN: + case PEAR_ERROR_PRINT: + case PEAR_ERROR_TRIGGER: + case PEAR_ERROR_DIE: + case null: + $def_mode = $mode; + $def_options = $options; + break; + + case PEAR_ERROR_CALLBACK: + $def_mode = $mode; + // class/object method callback + if (is_callable($options)) { + $def_options = $options; + } else { + trigger_error("invalid error callback", E_USER_WARNING); + } + break; + + default: + trigger_error("invalid error mode", E_USER_WARNING); + break; + } + $stack[] = array($mode, $options); + return true; + } + + function staticPopErrorHandling() + { + $stack = &$GLOBALS['_PEAR_error_handler_stack']; + $setmode = &$GLOBALS['_PEAR_default_error_mode']; + $setoptions = &$GLOBALS['_PEAR_default_error_options']; + array_pop($stack); + list($mode, $options) = $stack[sizeof($stack) - 1]; + array_pop($stack); + switch ($mode) { + case PEAR_ERROR_EXCEPTION: + case PEAR_ERROR_RETURN: + case PEAR_ERROR_PRINT: + case PEAR_ERROR_TRIGGER: + case PEAR_ERROR_DIE: + case null: + $setmode = $mode; + $setoptions = $options; + break; + + case PEAR_ERROR_CALLBACK: + $setmode = $mode; + // class/object method callback + if (is_callable($options)) { + $setoptions = $options; + } else { + trigger_error("invalid error callback", E_USER_WARNING); + } + break; + + default: + trigger_error("invalid error mode", E_USER_WARNING); + break; + } + return true; + } + + // {{{ pushErrorHandling() + + /** + * Push a new error handler on top of the error handler options stack. With this + * you can easily override the actual error handler for some code and restore + * it later with popErrorHandling. + * + * @param mixed $mode (same as setErrorHandling) + * @param mixed $options (same as setErrorHandling) + * + * @return bool Always true + * + * @see PEAR::setErrorHandling + */ + function pushErrorHandling($mode, $options = null) + { + $stack = &$GLOBALS['_PEAR_error_handler_stack']; + if (isset($this) && is_a($this, 'PEAR')) { + $def_mode = &$this->_default_error_mode; + $def_options = &$this->_default_error_options; + } else { + $def_mode = &$GLOBALS['_PEAR_default_error_mode']; + $def_options = &$GLOBALS['_PEAR_default_error_options']; + } + $stack[] = array($def_mode, $def_options); + + if (isset($this) && is_a($this, 'PEAR')) { + $this->setErrorHandling($mode, $options); + } else { + PEAR::setErrorHandling($mode, $options); + } + $stack[] = array($mode, $options); + return true; + } + + // }}} + // {{{ popErrorHandling() + + /** + * Pop the last error handler used + * + * @return bool Always true + * + * @see PEAR::pushErrorHandling + */ + function popErrorHandling() + { + $stack = &$GLOBALS['_PEAR_error_handler_stack']; + array_pop($stack); + list($mode, $options) = $stack[sizeof($stack) - 1]; + array_pop($stack); + if (isset($this) && is_a($this, 'PEAR')) { + $this->setErrorHandling($mode, $options); + } else { + PEAR::setErrorHandling($mode, $options); + } + return true; + } + + // }}} + // {{{ loadExtension() + + /** + * OS independant PHP extension load. Remember to take care + * on the correct extension name for case sensitive OSes. + * + * @param string $ext The extension name + * @return bool Success or not on the dl() call + */ + function loadExtension($ext) + { + if (!extension_loaded($ext)) { + // if either returns true dl() will produce a FATAL error, stop that + if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) { + return false; + } + + if (OS_WINDOWS) { + $suffix = '.dll'; + } elseif (PHP_OS == 'HP-UX') { + $suffix = '.sl'; + } elseif (PHP_OS == 'AIX') { + $suffix = '.a'; + } elseif (PHP_OS == 'OSX') { + $suffix = '.bundle'; + } else { + $suffix = '.so'; + } + + return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix); + } + + return true; + } + + // }}} +} + +if (PEAR_ZE2) { + include_once 'PEAR5.php'; +} + +// {{{ _PEAR_call_destructors() + +function _PEAR_call_destructors() +{ + global $_PEAR_destructor_object_list; + if (is_array($_PEAR_destructor_object_list) && + sizeof($_PEAR_destructor_object_list)) + { + reset($_PEAR_destructor_object_list); + if (PEAR_ZE2) { + $destructLifoExists = PEAR5::getStaticProperty('PEAR', 'destructlifo'); + } else { + $destructLifoExists = PEAR::getStaticProperty('PEAR', 'destructlifo'); + } + + if ($destructLifoExists) { + $_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list); + } + + while (list($k, $objref) = each($_PEAR_destructor_object_list)) { + $classname = get_class($objref); + while ($classname) { + $destructor = "_$classname"; + if (method_exists($objref, $destructor)) { + $objref->$destructor(); + break; + } else { + $classname = get_parent_class($classname); + } + } + } + // Empty the object list to ensure that destructors are + // not called more than once. + $_PEAR_destructor_object_list = array(); + } + + // Now call the shutdown functions + if (is_array($GLOBALS['_PEAR_shutdown_funcs']) AND !empty($GLOBALS['_PEAR_shutdown_funcs'])) { + foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) { + call_user_func_array($value[0], $value[1]); + } + } +} + +// }}} +/** + * Standard PEAR error class for PHP 4 + * + * This class is supserseded by {@link PEAR_Exception} in PHP 5 + * + * @category pear + * @package PEAR + * @author Stig Bakken + * @author Tomas V.V. Cox + * @author Gregory Beaver + * @copyright 1997-2006 The PHP Group + * @license http://opensource.org/licenses/bsd-license.php New BSD License + * @version Release: 1.8.1 + * @link http://pear.php.net/manual/en/core.pear.pear-error.php + * @see PEAR::raiseError(), PEAR::throwError() + * @since Class available since PHP 4.0.2 + */ +class PEAR_Error +{ + // {{{ properties + + var $error_message_prefix = ''; + var $mode = PEAR_ERROR_RETURN; + var $level = E_USER_NOTICE; + var $code = -1; + var $message = ''; + var $userinfo = ''; + var $backtrace = null; + + // }}} + // {{{ constructor + + /** + * PEAR_Error constructor + * + * @param string $message message + * + * @param int $code (optional) error code + * + * @param int $mode (optional) error mode, one of: PEAR_ERROR_RETURN, + * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER, + * PEAR_ERROR_CALLBACK or PEAR_ERROR_EXCEPTION + * + * @param mixed $options (optional) error level, _OR_ in the case of + * PEAR_ERROR_CALLBACK, the callback function or object/method + * tuple. + * + * @param string $userinfo (optional) additional user/debug info + * + * @access public + * + */ + function PEAR_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + if ($mode === null) { + $mode = PEAR_ERROR_RETURN; + } + $this->message = $message; + $this->code = $code; + $this->mode = $mode; + $this->userinfo = $userinfo; + + if (PEAR_ZE2) { + $skiptrace = PEAR5::getStaticProperty('PEAR_Error', 'skiptrace'); + } else { + $skiptrace = PEAR::getStaticProperty('PEAR_Error', 'skiptrace'); + } + + if (!$skiptrace) { + $this->backtrace = debug_backtrace(); + if (isset($this->backtrace[0]) && isset($this->backtrace[0]['object'])) { + unset($this->backtrace[0]['object']); + } + } + if ($mode & PEAR_ERROR_CALLBACK) { + $this->level = E_USER_NOTICE; + $this->callback = $options; + } else { + if ($options === null) { + $options = E_USER_NOTICE; + } + $this->level = $options; + $this->callback = null; + } + if ($this->mode & PEAR_ERROR_PRINT) { + if (is_null($options) || is_int($options)) { + $format = "%s"; + } else { + $format = $options; + } + printf($format, $this->getMessage()); + } + if ($this->mode & PEAR_ERROR_TRIGGER) { + trigger_error($this->getMessage(), $this->level); + } + if ($this->mode & PEAR_ERROR_DIE) { + $msg = $this->getMessage(); + if (is_null($options) || is_int($options)) { + $format = "%s"; + if (substr($msg, -1) != "\n") { + $msg .= "\n"; + } + } else { + $format = $options; + } + die(sprintf($format, $msg)); + } + if ($this->mode & PEAR_ERROR_CALLBACK) { + if (is_callable($this->callback)) { + call_user_func($this->callback, $this); + } + } + if ($this->mode & PEAR_ERROR_EXCEPTION) { + trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING); + eval('$e = new Exception($this->message, $this->code);throw($e);'); + } + } + + // }}} + // {{{ getMode() + + /** + * Get the error mode from an error object. + * + * @return int error mode + * @access public + */ + function getMode() { + return $this->mode; + } + + // }}} + // {{{ getCallback() + + /** + * Get the callback function/method from an error object. + * + * @return mixed callback function or object/method array + * @access public + */ + function getCallback() { + return $this->callback; + } + + // }}} + // {{{ getMessage() + + + /** + * Get the error message from an error object. + * + * @return string full error message + * @access public + */ + function getMessage() + { + return ($this->error_message_prefix . $this->message); + } + + + // }}} + // {{{ getCode() + + /** + * Get error code from an error object + * + * @return int error code + * @access public + */ + function getCode() + { + return $this->code; + } + + // }}} + // {{{ getType() + + /** + * Get the name of this error/exception. + * + * @return string error/exception name (type) + * @access public + */ + function getType() + { + return get_class($this); + } + + // }}} + // {{{ getUserInfo() + + /** + * Get additional user-supplied information. + * + * @return string user-supplied information + * @access public + */ + function getUserInfo() + { + return $this->userinfo; + } + + // }}} + // {{{ getDebugInfo() + + /** + * Get additional debug information supplied by the application. + * + * @return string debug information + * @access public + */ + function getDebugInfo() + { + return $this->getUserInfo(); + } + + // }}} + // {{{ getBacktrace() + + /** + * Get the call backtrace from where the error was generated. + * Supported with PHP 4.3.0 or newer. + * + * @param int $frame (optional) what frame to fetch + * @return array Backtrace, or NULL if not available. + * @access public + */ + function getBacktrace($frame = null) + { + if (defined('PEAR_IGNORE_BACKTRACE')) { + return null; + } + if ($frame === null) { + return $this->backtrace; + } + return $this->backtrace[$frame]; + } + + // }}} + // {{{ addUserInfo() + + function addUserInfo($info) + { + if (empty($this->userinfo)) { + $this->userinfo = $info; + } else { + $this->userinfo .= " ** $info"; + } + } + + // }}} + // {{{ toString() + function __toString() + { + return $this->getMessage(); + } + // }}} + // {{{ toString() + + /** + * Make a string representation of this object. + * + * @return string a string with an object summary + * @access public + */ + function toString() { + $modes = array(); + $levels = array(E_USER_NOTICE => 'notice', + E_USER_WARNING => 'warning', + E_USER_ERROR => 'error'); + if ($this->mode & PEAR_ERROR_CALLBACK) { + if (is_array($this->callback)) { + $callback = (is_object($this->callback[0]) ? + strtolower(get_class($this->callback[0])) : + $this->callback[0]) . '::' . + $this->callback[1]; + } else { + $callback = $this->callback; + } + return sprintf('[%s: message="%s" code=%d mode=callback '. + 'callback=%s prefix="%s" info="%s"]', + strtolower(get_class($this)), $this->message, $this->code, + $callback, $this->error_message_prefix, + $this->userinfo); + } + if ($this->mode & PEAR_ERROR_PRINT) { + $modes[] = 'print'; + } + if ($this->mode & PEAR_ERROR_TRIGGER) { + $modes[] = 'trigger'; + } + if ($this->mode & PEAR_ERROR_DIE) { + $modes[] = 'die'; + } + if ($this->mode & PEAR_ERROR_RETURN) { + $modes[] = 'return'; + } + return sprintf('[%s: message="%s" code=%d mode=%s level=%s '. + 'prefix="%s" info="%s"]', + strtolower(get_class($this)), $this->message, $this->code, + implode("|", $modes), $levels[$this->level], + $this->error_message_prefix, + $this->userinfo); + } + + // }}} +} + +/* + * Local Variables: + * mode: php + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/libraries/pear/PEAR5.php b/libraries/pear/PEAR5.php new file mode 100644 index 0000000..4286067 --- /dev/null +++ b/libraries/pear/PEAR5.php @@ -0,0 +1,33 @@ + + + + \ No newline at end of file diff --git a/scripts/do_config.php b/scripts/do_config.php new file mode 100644 index 0000000..a0b7cc0 --- /dev/null +++ b/scripts/do_config.php @@ -0,0 +1,285 @@ +#!/usr/bin/php +getFieldData($strSQL); +$strSQL = "SELECT `id` FROM `tbl_datadomain` WHERE `domain`='$argDomain'"; +$intDomain = $myDBClass->getFieldData($strSQL); +if ($intDomain == "") { + echo "Domain '".$argDomain."' doesn not exist\n"; + exit(1); +} else if ($intDomain == "0") { + echo "Domain '".$argDomain."' cannot be used\n"; + exit(1); +} else { + $myDataClass->intDomainId = $intDomain; + $myConfigClass->intDomainId = $intDomain; + $myImportClass->intDomainId = $intDomain; +} +$myConfigClass->getConfigData($intTarget,"method",$intMethod); +// +// Process form variables +// ====================== +if ($argFunction == "check") { + $myConfigClass->getConfigData($intTarget,"binaryfile",$strBinary); + $myConfigClass->getConfigData($intTarget,"basedir",$strBaseDir); + $myConfigClass->getConfigData($intTarget,"nagiosbasedir",$strNagiosBaseDir); + $myConfigClass->getConfigData($intTarget,"conffile",$strConffile); + if ($intMethod == 1) { + if (file_exists($strBinary) && is_executable($strBinary)) { + $resFile = popen($strBinary." -v ".$strConffile,"r"); + } else { + echo "Cannot find the Nagios binary or no rights for execution!\n"; + exit(1); + } + } else if ($intMethod == 2) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getFTPConnection($intTarget); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + $intErrorReporting = error_reporting(); + error_reporting(0); + if (!($resFile = ftp_exec($myConfigClass->resConnectId,$strBinary.' -v '.$strConffile))) { + echo "Remote execution (FTP SITE EXEC) is not supported on your system!\n"; + error_reporting($intErrorReporting); + exit(1); + } + ftp_close($conn_id); + error_reporting($intErrorReporting); + } + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intTarget); + } + if ($booReturn == 1) { + echo "SSH connection failure: ".str_replace("::","\n",$myConfigClass->strErrorMessage); + exit(1); + } else { + if ((is_array($myConfigClass->sendSSHCommand('ls '.$strBinary))) && + (is_array($myConfigClass->sendSSHCommand('ls '.$strConffile)))) { + $arrResult = $myConfigClass->sendSSHCommand($strBinary.' -v '.$strConffile); + if (!is_array($arrResult) || ($arrResult == false)) { + echo "Remote execution of nagios verify command failed (remote SSH)!\n"; + exit(1); + } + } else { + echo "Nagios binary or configuration file not found (remote SSH)!\n"; + exit(1); + } + } + } +} +if ($argFunction == "restart") { + // Read config file + $myConfigClass->getConfigData($intTarget,"commandfile",$strCommandfile); + $myConfigClass->getConfigData($intTarget,"pidfile",$strPidfile); + // Check state nagios demon + clearstatcache(); + if ($intMethod == 1) { + if (file_exists($strPidfile)) { + if (file_exists($strCommandfile) && is_writable($strCommandfile)) { + $strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); + $timeout = 3; + $old = ini_set('default_socket_timeout', $timeout); + $resCmdFile = fopen($strCommandfile,"w"); + ini_set('default_socket_timeout', $old); + stream_set_timeout($resCmdFile, $timeout); + stream_set_blocking($resCmdFile, 0); + if ($resCmdFile) { + fputs($resCmdFile,$strCommandString); + fclose($resCmdFile); + echo "Restart command successfully send to Nagios\n"; + exit(0); + } + } + echo "Restart failed - Nagios command file not found or no rights to execute\n"; + exit(1); + } else { + echo "Nagios daemon is not running, cannot send restart command!\n"; + exit(1); + } + } else if ($intMethod == 2) { + echo "Nagios restart is not possible via FTP remote connection!\n"; + exit(1); + } else if ($intMethod == 3) { + $booReturn = 0; + if (!isset($myConfigClass->resConnectId) || !is_resource($myConfigClass->resConnectId)) { + $booReturn = $myConfigClass->getSSHConnection($intTarget); + } + if ($booReturn == 1) { + $myVisClass->processMessage($myDataClass->strErrorMessage,$strErrorMessage); + } else { + if (is_array($myConfigClass->sendSSHCommand('ls '.$strCommandfile))) { + $strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); + $arrResult = $myConfigClass->sendSSHCommand('echo "'.$strCommandString.'" >> '.$strCommandfile); + if ($arrResult == false) { + echo "Restart failed - Nagios command file not found or no rights to execute (remote SSH)!\n"; + exit(1); + } + echo "Nagios daemon successfully restarted (remote SSH)\n"; + exit(0); + } else { + echo "Nagios command file not found (remote SSH)!\n"; + exit(1); + } + } + } +} +if ($argFunction == "write") { + if (substr_count($argObject,"tbl_") != 0) { + $argObject = str_replace("tbl_","",$argObject); + } + if (substr_count($argObject,".cfg") != 0) { + $argObject = str_replace(".cfg","",$argObject); + } + if ($argObject == "host") { + // Write host configuration + $strInfo = "Write host configurations ...\n"; + $strSQL = "SELECT `id` FROM `tbl_host` WHERE `config_id` = $intDomain AND `active`='1'"; + $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + $intError = 0; + if ($intDataCount != 0) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("tbl_host",$data['id']); + if ($intReturn == 1) $intError++; + } + } + if ($intError == 0) { + $strInfo .= "Host configuration files successfully written!\n"; + } else { + $strInfo .= "Cannot open/overwrite the configuration file (check the permissions)!\n"; + } + } else if ($argObject == "service") { + // Write service configuration + $strInfo = "Write service configurations ...\n"; + $strSQL = "SELECT `id`, `config_name` FROM `tbl_service` WHERE `config_id` = $intDomain AND `active`='1' GROUP BY `config_name`"; + $myDBClass->getDataArray($strSQL,$arrData,$intDataCount); + $intError = 0; + if ($intDataCount != 0) { + foreach ($arrData AS $data) { + $intReturn = $myConfigClass->createConfigSingle("tbl_service",$data['id']); + if ($intReturn == 1) $intError++; + } + } + if ($intError == 0) { + $strInfo .= "Service configuration file successfully written!\n"; + } else { + $strInfo .= "Cannot open/overwrite the configuration file (check the permissions)!\n"; + } + } else { + $strInfo = "Write ".$argObject.".cfg ...\n"; + $booReturn = $myConfigClass->createConfig("tbl_".$argObject); + if ($booReturn == 0) { + $strInfo .= "Configuration file ".$argObject.".cfg successfully written!\n"; + } else { + echo $myConfigClass->strErrorMessage; + $strInfo .= "Cannot open/overwrite the configuration file ".$argObject.".cfg (check the permissions or probably tbl_".$argObject." does not exists)!\n"; + } + } + echo $strInfo; +} +if ($argFunction == "import") { + $strInfo = "Importing configurations ...\n"; + $intReturn = $myImportClass->fileImport($argObject,$intTarget,'1'); + if ($intReturn != 0) { + $strInfo .= $myImportClass->strErrorMessage; + } else { + $strInfo .= $myImportClass->strInfoMessage; + } + $strInfo = strip_tags($strInfo); + echo str_replace("::","\n",$strInfo); + +} + +// +// Output processing +// ================= +if (isset($resFile) && ($resFile != false)){ + $intError = 0; + $intWarning = 0; + $strOutput = ""; + while(!feof($resFile)) { + $strLine = fgets($resFile,1024); + if (substr_count($strLine,"Error:") != 0) { + $intError++; + } + if (substr_count($strLine,"Warning:") != 0) { + $intWarning++; + } + $strOutput .= $strLine; + } + pclose($resFile); + echo $strOutput."\n"; + if (($intError == 0) && ($intWarning == 0)) { + echo "Written configuration files are valid, Nagios can be restarted!\n\n"; + } +} else if (isset($arrResult) && is_array($arrResult)) { + $intError = 0; + $intWarning = 0; + $strOutput = ""; + foreach ($arrResult AS $elem) { + if (substr_count($elem,"Error:") != 0) { + $intError++; + } + if (substr_count($elem,"Warning:") != 0) { + $intWarning++; + } + $strOutput .= $elem."\n"; + } + echo $strOutput."\n"; + if (($intError == 0) && ($intWarning == 0)) { + echo "Written configuration files are valid, Nagios can be restarted!\n\n"; + } +} +?> diff --git a/templates/admin/admin_master.tpl.htm b/templates/admin/admin_master.tpl.htm new file mode 100644 index 0000000..e698b11 --- /dev/null +++ b/templates/admin/admin_master.tpl.htm @@ -0,0 +1,872 @@ + + + + + + + + + + + +
+ + + + + + +
{LANG_SEARCH_STRING}:{LANG_SEARCH} {LANG_DELETE_SEARCH}
+ + + + + + + + + + + + + + + + + + + +
 
{FIELD_1}
{SORT_IMAGE_1}
{FIELD_2}
{SORT_IMAGE_2}
{LANG_REGISTERED}{LANG_ACTIVE}{LANG_FUNCTION}
{DATA_FIELD_1} {DOMAIN_SPECIAL}{DATA_FIELD_2}{DATA_REGISTERED}{DATA_ACTIVE}{LANG_MODIFY} + {LANG_DUPLICATE} + {LANG_DELETE} + {INFO}
+ + + + + + +
+ + + + + + + + {LANG_MARKED}: + + to Domain: + +
+
+
+ + +
+
+ + +

+{CONSIST_USAGE}

+{INFOMESSAGE}
+{ERRORMESSAGE}
+{LAST_MODIFIED_TABLE}
+{LAST_MODIFIED_FILE}
+{MODIFICATION_STATUS}
+

+ + + +
+ + + + + + +
{LANG_SEARCH_STRING}:{LANG_SEARCH} {LANG_DELETE_SEARCH}
+ + + + + + + + + + + + + + + + + + + + + +
{FIELD_1}
{SORT_IMAGE_1}
{FIELD_2}
{SORT_IMAGE_2}
{LANG_REGISTERED}{LANG_ACTIVE}{LANG_FILE}
{LANG_FUNCTION}
{DATA_FIELD_1} {DOMAIN_SPECIAL}{DATA_FIELD_2}{DATA_REGISTERED}{DATA_ACTIVE}{DATA_FILE}{LANG_MODIFY} + {LANG_DUPLICATE} + {LANG_DELETE} + {LANG_WRITE_CONFIG} + {LANG_DOWNLOAD} + {INFO}
+ + + + + + +
+ + + + + + + {LANG_MARKED}: + + to Domain: + +
+
+
+ + +
+
+ + +

+ {DBMESSAGE}
+ {CONSISTUSAGE}
+

+ + + +
+ + + + + + + + +
{LANG_SEARCH_STRING}:{LANG_SEARCH} {LANG_DELETE_SEARCH}{LANG_CONFIGFILTER}: +
+ + + + + + + + + + + + + + + + + + + + + +
{FIELD_1}
{SORT_IMAGE_1}
{FIELD_2}
{SORT_IMAGE_2}
{LANG_REGISTERED}{LANG_ACTIVE}{LANG_FILE}
{LANG_FUNCTION}
{DATA_FIELD_1} {DOMAIN_SPECIAL}{DATA_FIELD_2}{DATA_REGISTERED}{DATA_ACTIVE}{DATA_FILE}{LANG_MODIFY} + {LANG_DUPLICATE} + {LANG_DELETE} + {LANG_WRITE_CONFIG} + {LANG_DOWNLOAD} + {INFO}
+ + + + + + +
+ + + + + + + {LANG_MARKED}: + + to Domain: + +
+
+
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + +
 
{FIELD_1}
{SORT_IMAGE_1}
{FIELD_2}
{SORT_IMAGE_2}
{LANG_ACTIVE}{LANG_FUNCTION}
{DATA_FIELD_1}{DATA_FIELD_2}{DATA_ACTIVE} + {LANG_MODIFY} + {LANG_COPY} + {DEL_HIDE_START}{LANG_DELETE}{DEL_HIDE_STOP}
+ + + + + + +
+ + + + + + {LANG_MARKED}: + +
+
+ + +
+
+ + +
+
{LANG_CHANGE_PASSWORD}
+ +
+ + + + + + + + + + + + + + + + + + + +
{LANG_OLD_PASSWORD} *
{LANG_NEW_PASSWORD} *
{LANG_CONFIRM_PASSWORD}*
 
 * {LANG_REQUIRED}
+
+
+

{ERRORMESSAGE}

+
+
+ + +
+
{TITLE}
+ +
+ + + + + + +
{LANG_SEARCH_STRING}:{LANG_SEARCH} {LANG_DELETE_SEARCH}
+
+ + + + + + + + + + + + + + + + + +
{LANG_TIME}{LANG_USER}{LANG_IP}{LANG_DOMAIN}{LANG_ENTRY}
{DAT_TIME}{DAT_ACCOUNT}{DAT_IPADRESS}{DAT_DOMAIN}{DAT_ACTION}
+ + + + + +
{LANG_PREVIOUS}{LANG_NEXT}
+
+ + + + + + + + + + + + + +
{LANG_ENTRIES_BEFORE}
{LANG_FROM}:{LANG_CALENDAR} {LANG_DELETE_SEARCH}{LANG_TO}:{LANG_CALENDAR} {LANG_DELETE_SEARCH}
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+ + +
+
+ + +
+
{TITLE}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_MENU_PAGE} + +
 
{LANG_ACCESS_GROUP} +
 
{LANG_ACCESSDESCRIPTION}
 
 
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+ \ No newline at end of file diff --git a/templates/admin/checkcommands.tpl.htm b/templates/admin/checkcommands.tpl.htm new file mode 100644 index 0000000..ca922e0 --- /dev/null +++ b/templates/admin/checkcommands.tpl.htm @@ -0,0 +1,121 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_COMMAND}*{LANG_HELP}   
{LANG_COMMAND_LINE}*{LANG_HELP}
{LANG_COMMAND_TYPE} + + {LANG_HELP} +
{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + + +
 
 * {LANG_REQUIRED}{WARNING}
+
+
+ [{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/configtargets.tpl.htm b/templates/admin/configtargets.tpl.htm new file mode 100755 index 0000000..fb090a5 --- /dev/null +++ b/templates/admin/configtargets.tpl.htm @@ -0,0 +1,297 @@ + + + + + + + + + + +
+
{TITLE}
+
{PATHMESSAGE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CONFIG_TARGET} *{LANG_HELP}
{LANG_DESCRIPTION} *
{LANG_SERVER_NAME} *
{LANG_METHOD} + +
{LANG_USERNAME} *
{LANG_PASSWORD} *
{LANG_SSH_KEY} *{LANG_HELP}
 
{LANG_CONFIGURATION_DIRECTORIES}
{LANG_BASE_DIRECTORY} *{LANG_HELP}
{LANG_HOST_DIRECTORY} *{LANG_HELP}
{LANG_SERVICE_DIRECTORY} *{LANG_HELP}
{LANG_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_HOST_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_SERVICE_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_NAGIOS_BASEDIR} *{LANG_HELP}
{LANG_IMPORT_DIRECTORY}{LANG_HELP}
{LANG_PICTURE_DIRECTORY}{LANG_HELP}
 
{LANG_NAGIOS_COMMAND_FILE}{LANG_HELP}
{LANG_NAGIOS_BINARY_FILE}{LANG_HELP}
{LANG_NAGIOS_PROCESS_FILE}{LANG_HELP}
{LANG_NAGIOS_CONFIG_FILE} *{LANG_HELP}
 
{LANG_NAGIOS_VERSION} + + {LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_ACTIVE} + + +
 
 * {LANG_REQUIRED}
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/templates/admin/contactgroups.tpl.htm b/templates/admin/contactgroups.tpl.htm new file mode 100644 index 0000000..bca65a2 --- /dev/null +++ b/templates/admin/contactgroups.tpl.htm @@ -0,0 +1,163 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CONTACT_GROUP} *{LANG_HELP}{LANG_MEMBERS} * + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION} *{LANG_HELP}{LANG_CTRLINFO}
{LANG_GROUP_MEMBERS} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+[{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/contacts.tpl.htm b/templates/admin/contacts.tpl.htm new file mode 100644 index 0000000..81db5b0 --- /dev/null +++ b/templates/admin/contacts.tpl.htm @@ -0,0 +1,574 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CONTACT_NAME} *{LANG_HELP}{LANG_CONTACT_GROUP} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION} {VERSION_20_STAR}{LANG_HELP}{LANG_CTRLINFO}
 
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_EMAIL_ADDRESS}{LANG_HELP}{LANG_PAGER_NUMBER}{LANG_HELP}
{LANG_ADDON_ADDRESS} 1{LANG_HELP}{LANG_ADDON_ADDRESS} 2
{LANG_ADDON_ADDRESS} 3{LANG_ADDON_ADDRESS} 4
{LANG_ADDON_ADDRESS} 5{LANG_ADDON_ADDRESS} 6
 
{LANG_HOST_NOTIF_ENABLE} * + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP}{LANG_SERVICE_NOTIF_ENABLE} * + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP}
{LANG_TIME_PERIOD_HOSTS} * + + {LANG_HELP}{LANG_TIME_PERIOD_SERVICES} * + + {LANG_HELP}
{LANG_HOST_OPTIONS} * + + + + + + + + + + + + + + + +
durfsn
+
{LANG_HELP}{LANG_HELP}{LANG_SERVICE_OPTIONS} * + + + + + + + + + + + + + + + + + +
wucrfsn
+
{LANG_HELP}{LANG_HELP}
{LANG_HOST_COMMAND} * + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_SERVICE_COMMAND} * + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
  + + + + + + + +
+{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + +
+{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFO} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_CAN_SUBMIT_COMMANDS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_RETAIN_NONSTATUS_INFO} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
{LANG_ADDITIONAL_TEMPLATES}
{LANG_TEMPLATE_NAME} + + {LANG_HELP}
      
{LANG_USE_THIS_AS_TEMPLATE}
{LANG_GENERIC_NAME}{LANG_HELP}
 
{LANG_OBJECT_ACCESS_RESTRICTIONS}
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+ +
+
+[{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/contacttemplates.tpl.htm b/templates/admin/contacttemplates.tpl.htm new file mode 100644 index 0000000..a255174 --- /dev/null +++ b/templates/admin/contacttemplates.tpl.htm @@ -0,0 +1,510 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_TEMPLATE_NAME}*{LANG_HELP}{LANG_CONTACT_GROUP} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION}{LANG_HELP}{LANG_CTRLINFO}
 
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_EMAIL_ADDRESS}{LANG_HELP}{LANG_PAGER_NUMBER}{LANG_HELP}
{LANG_ADDON_ADDRESS} 1{LANG_HELP}{LANG_ADDON_ADDRESS} 2
{LANG_ADDON_ADDRESS} 3{LANG_ADDON_ADDRESS} 4
{LANG_ADDON_ADDRESS} 5{LANG_ADDON_ADDRESS} 6
 
{LANG_HOST_NOTIF_ENABLE} + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP}{LANG_SERVICE_NOTIF_ENABLE} + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP}
{LANG_TIME_PERIOD_HOSTS} + + {LANG_HELP}{LANG_TIME_PERIOD_SERVICES} + + {LANG_HELP}
{LANG_HOST_OPTIONS} + + + + + + + + + + + + + + + +
durfsn
+
{LANG_HELP}{LANG_HELP}{LANG_SERVICE_OPTIONS} + + + + + + + + + + + + + + + + + +
wucrfsn
+
{LANG_HELP}{LANG_HELP}
{LANG_HOST_COMMAND} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_SERVICE_COMMAND} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
  + + + + + + + +
+{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + +
+{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFO} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_CAN_SUBMIT_COMMANDS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_RETAIN_NONSTATUS_INFO} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
{LANG_ADDITIONAL_TEMPLATES}
{LANG_TEMPLATE_NAME} + + {LANG_HELP}
      
{LANG_OBJECT_ACCESS_RESTRICTIONS}
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+ +
+
+[{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/datadomain.tpl.htm b/templates/admin/datadomain.tpl.htm new file mode 100755 index 0000000..423f370 --- /dev/null +++ b/templates/admin/datadomain.tpl.htm @@ -0,0 +1,146 @@ + + + + + + + + + + +
+
{TITLE}
+
{ERRMESSAGE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_DOMAIN} *{LANG_HELP}
{LANG_DESCRIPTION} *
 
{LANG_CONFIG_TARGET} * + + {LANG_HELP}
 
{LANG_NAGIOS_VERSION} + + {LANG_HELP}
{LANG_ENABLE_COMMON_DOMAIN} + + {LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_ACTIVE} + + +
 
 * {LANG_REQUIRED}{WARNING}
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/delbackup.tpl.htm b/templates/admin/delbackup.tpl.htm new file mode 100644 index 0000000..c0e0c27 --- /dev/null +++ b/templates/admin/delbackup.tpl.htm @@ -0,0 +1,66 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + +
{LANG_SEARCH_STRING}{LANG_SEARCH} {LANG_DELETE_SEARCH}
{BACKUPFILE} * +
{CTRL_INFO}
 
  + * {LANG_REQUIRED}
+
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+ \ No newline at end of file diff --git a/templates/admin/domain.tpl.htm b/templates/admin/domain.tpl.htm new file mode 100644 index 0000000..8f0b5af --- /dev/null +++ b/templates/admin/domain.tpl.htm @@ -0,0 +1,309 @@ + + + + + + + + + + +
+
{TITLE}
+
{ERRMESSAGE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_DOMAIN} * + {LANG_HELP}
{LANG_DESCRIPTION} *
{LANG_SERVER_NAME} *
{LANG_METHOD} + +
{LANG_USERNAME} *
{LANG_PASSWORD} *
{LANG_SSH_KEY} *{LANG_HELP}
 
{LANG_CONFIGURATION_DIRECTORIES}
{LANG_BASE_DIRECTORY} *{LANG_HELP}
{LANG_HOST_DIRECTORY} *{LANG_HELP}
{LANG_SERVICE_DIRECTORY} *{LANG_HELP}
{LANG_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_HOST_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_SERVICE_BACKUP_DIRECTORY} *{LANG_HELP}
{LANG_NAGIOS_BASEDIR} *{LANG_HELP}
{LANG_IMPORT_DIRECTORY}{LANG_HELP}
{LANG_PICTURE_DIRECTORY}{LANG_HELP}
 
{LANG_NAGIOS_COMMAND_FILE}{LANG_HELP}
{LANG_NAGIOS_BINARY_FILE}{LANG_HELP}
{LANG_NAGIOS_PROCESS_FILE}{LANG_HELP}
{LANG_NAGIOS_CONFIG_FILE}{LANG_HELP}
 
{LANG_NAGIOS_VERSION} + + {LANG_HELP}
{LANG_ENABLE_COMMON_DOMAIN} + + {LANG_HELP}
{LANG_ENABLE_UTF8_DECODE} + + {LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_ACTIVE} + + +
 
{LANG_ACCESSDESCRIPTION}
 
 * {LANG_REQUIRED}
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/templates/admin/group.tpl.htm b/templates/admin/group.tpl.htm new file mode 100644 index 0000000..0820d0e --- /dev/null +++ b/templates/admin/group.tpl.htm @@ -0,0 +1,172 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_GROUPNAME} *
{LANG_DESCRIPTION} *
 
{LANG_USER_DEFINITIONS}
+ + + + + +
{LANG_USER_NAME}{LANG_USER_RIGHTS}
+
+ + + + + + + + + + + +
{LANG_USER_NAME} +  
{LANG_USER_RIGHTS} + + + + + + + + + + +
{LANG_READ}   {LANG_WRITE}   {LANG_LINK}   {LANG_HELP}
+
+
 
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}
{WARNING}
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/helpedit.tpl.htm b/templates/admin/helpedit.tpl.htm new file mode 100644 index 0000000..e65aa2f --- /dev/null +++ b/templates/admin/helpedit.tpl.htm @@ -0,0 +1,132 @@ + + + + + + + + + + +
+
{TITLE}
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{INFOKEY_1} + +
{INFOKEY_2} + +
{INFO_VERSION} + +
{LOAD_DEFAULT}
 
 
  +
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+
+ \ No newline at end of file diff --git a/templates/admin/hostdependencies.tpl.htm b/templates/admin/hostdependencies.tpl.htm new file mode 100644 index 0000000..a6a50ce --- /dev/null +++ b/templates/admin/hostdependencies.tpl.htm @@ -0,0 +1,257 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_DEPENDHOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DEPENDHOSTGRS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_HOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOSTGROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
 
{LANG_CONFIG_NAME} *{LANG_HELP}{LANG_INHERIT}{LANG_HELP}
{LANG_DEPENDENCY_PERIOD} + + + {LANG_HELP}{LANG_EXECFAILCRIT} + + + + + + + + + + + + + +
odupn
+
{LANG_HELP}
{LANG_ACCESS_GROUP} + + {LANG_HELP}{LANG_NOTIFFAILCRIT} + + + + + + + + + + + + + +
odupn
+
{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/hostescalations.tpl.htm b/templates/admin/hostescalations.tpl.htm new file mode 100644 index 0000000..afec6ed --- /dev/null +++ b/templates/admin/hostescalations.tpl.htm @@ -0,0 +1,241 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_HOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOSTGROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_CONTACTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACT_GROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_CONFIG_NAME} *{LANG_HELP}{LANG_ESCALATION_PERIOD} + + {LANG_HELP}
{LANG_FIRST_NOTIFICATION} *{LANG_HELP}{LANG_ESCALATION_OPTIONS} + + + + + + + + + +
dur
+
{LANG_HELP}
{LANG_LAST_NOTIFICATION} *{LANG_HELP}{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_NOTIFICATION_INTERVAL} *min{LANG_HELP}{LANG_REGISTERED}{LANG_HELP}
 {LANG_ACTIVE} + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/hostextinfo.tpl.htm b/templates/admin/hostextinfo.tpl.htm new file mode 100644 index 0000000..22b5d97 --- /dev/null +++ b/templates/admin/hostextinfo.tpl.htm @@ -0,0 +1,134 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_HOST_NAME} * + + {LANG_HELP}{LANG_ICON_IMAGE}{LANG_HELP}
{LANG_NOTES}{LANG_HELP}{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}{LANG_VRML_IMAGE}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}{LANG_STATUS_IMAGE}{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}{LANG_2D_COORDS}(x,y){LANG_HELP}
{LANG_ACTIVE} + + + {LANG_3D_COORDS}(x,y,z){LANG_HELP}
 {LANG_ACCESS_GROUP} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/hostgroups.tpl.htm b/templates/admin/hostgroups.tpl.htm new file mode 100644 index 0000000..e6957b1 --- /dev/null +++ b/templates/admin/hostgroups.tpl.htm @@ -0,0 +1,175 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_HOSTGROUP_NAME} *{LANG_HELP}{LANG_MEMBERS} {VERSION_20_STAR} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION} *{LANG_HELP}{LANG_CTRLINFO}
{LANG_NOTES}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}{LANG_HOSTGROUP_MEMBERS} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_ACCESS_GROUP} + + {LANG_HELP}{LANG_CTRLINFO}
 
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+ {CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/hosts.tpl.htm b/templates/admin/hosts.tpl.htm new file mode 100644 index 0000000..94c4928 --- /dev/null +++ b/templates/admin/hosts.tpl.htm @@ -0,0 +1,944 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_COMMON_SETTINGS}
{LANG_HOST_NAME} *{LANG_HELP}{LANG_DESCRIPTION} *{LANG_HELP}
{LANG_ADDRESS} *{LANG_HELP}{LANG_DISPLAY_NAME}{LANG_HELP}
{LANG_PARENTS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOST_GROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_CHECK_COMMAND} + + {LANG_HELP}
{LANG_COMMAND_VIEW}
$ARG1${LANG_HELP}$ARG5$
$ARG2$$ARG6$
$ARG3$$ARG7$
$ARG4$$ARG8$
 {LANG_REGISTERED}{LANG_HELP}
{LANG_ADDITIONAL_TEMPLATES}{LANG_ACTIVE} +
{LANG_TEMPLATE_NAME}
{LANG_TEMPLATE_NAME} + +
 
 * {LANG_REQUIRED}{WARNING}
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CHECK_SETTINGS}
 {LANG_INITIAL_STATE} + + + + + + + + + +
odu
+
{LANG_HELP}{LANG_RETRY_INTERVAL}min{LANG_HELP}
{LANG_MAX_CHECK_ATTEMPTS} *{LANG_HELP}{LANG_CHECK_INTERVAL}min{LANG_HELP}
{LANG_ACTIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_PASSIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_CHECK_PERIOD} * + + {LANG_HELP}{LANG_FRESHNESS_TRESHOLD}sec{LANG_HELP}
{LANG_CHECK_FRESHNESS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_OBSESS_OVER_HOST} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_EVENT_HANDLER} + + {LANG_HELP}{LANG_EVENT_HANDLER_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_LOW_FLAP_THRESHOLD}%{LANG_HELP}{LANG_HIGH_FLAP_THRESHOLD}%{LANG_HELP}
{LANG_FLAP_DETECTION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_FLAP_DETECTION_OPTIONS} + + + + + + + + + +
odu
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_RETAIN_NOSTATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_PROCESS_PERF_DATA} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP} 
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ALARM_SETTINGS}
{LANG_CONTACT_GROUPS} *

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACTS} *

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_NOTIFICATION_PERIOD} * + + {LANG_HELP}{LANG_NOTIFICATION_OPTIONS} {VERSION_20_STAR} + + + + + + + + + + + + + +
durfs
+
{LANG_HELP}
{LANG_NOTIFICATION_INTERVAL} *min{LANG_HELP}{LANG_FIRST_NOTIFICATION_DELAY}min{LANG_HELP}
{LANG_NOTIFICATION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_STALKING_OPTIONS} + + + + + + + + + +
odu
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ADDON_SETTINGS}
{LANG_NOTES}{LANG_HELP}{LANG_VRML_IMAGE}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}{LANG_STATUS_IMAGE}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}
{LANG_ICON_IMAGE}{LANG_HELP}{LANG_2D_COORDS}(x,y){LANG_HELP}
{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}{LANG_3D_COORDS}(x,y,z){LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
{LANG_USE_THIS_AS_TEMPLATE}
{LANG_GENERIC_NAME}{LANG_HELP}   
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_SERVICE_SETTINGS}
{LANG_SERVICE_SETTINGS_DESC}
 
{LANG_SERVICES}

{LANG_CTRLINFO}
+ + + + + +
+ + {LANG_MODIFY}
{LANG_HELP}
+
 
{LANG_SERVICES_WARNING}
 
+ + + + + +
 * {LANG_REQUIRED}{WARNING}
+
 
+
+
+
+
+ +
+ [{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/hosttemplates.tpl.htm b/templates/admin/hosttemplates.tpl.htm new file mode 100644 index 0000000..624a70e --- /dev/null +++ b/templates/admin/hosttemplates.tpl.htm @@ -0,0 +1,806 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_COMMON_SETTINGS}
{LANG_TEMPLATE_NAME} *{LANG_HELP}{LANG_DESCRIPTION}{LANG_HELP}
{LANG_PARENTS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOST_GROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_CHECK_COMMAND} + {LANG_HELP}{LANG_ACTIVE} +
{LANG_COMMAND_VIEW}
$ARG1${LANG_HELP}$ARG5$
$ARG2$$ARG6$
$ARG3$$ARG7$
$ARG4$$ARG8$
 
{LANG_ADDITIONAL_TEMPLATES}
{LANG_TEMPLATE_NAME}
{LANG_TEMPLATE_NAME} + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CHECK_SETTINGS}
 {LANG_INITIAL_STATE} + + + + + + + + + +
odu
+
{LANG_HELP}{LANG_RETRY_INTERVAL}min{LANG_HELP}
{LANG_MAX_CHECK_ATTEMPTS}{LANG_HELP}{LANG_CHECK_INTERVAL}min{LANG_HELP}
{LANG_ACTIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_PASSIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_CHECK_PERIOD} + + {LANG_HELP}{LANG_FRESHNESS_TRESHOLD}sec{LANG_HELP}
{LANG_CHECK_FRESHNESS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_OBSESS_OVER_HOST} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_EVENT_HANDLER} + + {LANG_HELP}{LANG_EVENT_HANDLER_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_LOW_FLAP_THRESHOLD}%{LANG_HELP}{LANG_HIGH_FLAP_THRESHOLD}%{LANG_HELP}
{LANG_FLAP_DETECTION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_FLAP_DETECTION_OPTIONS} + + + + + + + + + +
odu
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_RETAIN_NOSTATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_PROCESS_PERF_DATA} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ALARM_SETTINGS}
{LANG_CONTACT_GROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACTS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_NOTIFICATION_PERIOD}* + + {LANG_HELP}{LANG_NOTIFICATION_OPTIONS} + + + + + + + + + + + + + +
durfs
+
{LANG_HELP}
{LANG_NOTIFICATION_INTERVAL}min{LANG_HELP}{LANG_FIRST_NOTIFICATION_DELAY}min{LANG_HELP}
{LANG_NOTIFICATION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_STALKING_OPTIONS} + + + + + + + + + +
odu
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ADDON_SETTINGS}
{LANG_NOTES}{LANG_HELP}{LANG_VRML_IMAGE}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}{LANG_STATUS_IMAGE}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}
{LANG_ICON_IMAGE}{LANG_HELP}{LANG_2D_COORDS}(x,y){LANG_HELP}
{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}{LANG_3D_COORDS}(x,y,z){LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+ +
+ {CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/import.tpl.htm b/templates/admin/import.tpl.htm new file mode 100644 index 0000000..fe99209 --- /dev/null +++ b/templates/admin/import.tpl.htm @@ -0,0 +1,76 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_SEARCH_STRING}{LANG_SEARCH} {LANG_DELETE_SEARCH}
{IMPORTFILE} +
{CTRL_INFO}
{LOCAL_FILE}
{OVERWRITE}
 
 
 
+
+

{IMPORT_INFO_1}{IMPORT_INFO_2}

+

{ERRORMESSAGE}{INFOMESSAGE}

+
+ \ No newline at end of file diff --git a/templates/admin/mainpages.tpl.htm b/templates/admin/mainpages.tpl.htm new file mode 100644 index 0000000..ee6e7a6 --- /dev/null +++ b/templates/admin/mainpages.tpl.htm @@ -0,0 +1,39 @@ + + + + + + + + + + +
+
{TITLE}
+ + +

{DESC}

+
+ +

{STATISTICS}

+ + + + + + + + + + + + + +
{TYPE}{ACTIVE}{INACTIVE}
{NAME}{ACT_COUNT}{INACT_COUNT}
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/mutdialog.tpl.htm b/templates/admin/mutdialog.tpl.htm new file mode 100644 index 0000000..e5f2115 --- /dev/null +++ b/templates/admin/mutdialog.tpl.htm @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + none + + + + + + + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + +
{AVAILABLE} {SELECTED}
+   +
<-

->{DISABLE_HTML_BEGIN}

!->{DISABLE_HTML_END}
 
+
+
+
+
+ + + \ No newline at end of file diff --git a/templates/admin/nagioscfg.tpl.htm b/templates/admin/nagioscfg.tpl.htm new file mode 100644 index 0000000..ea765e8 --- /dev/null +++ b/templates/admin/nagioscfg.tpl.htm @@ -0,0 +1,65 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + +
 
  +
+
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+
+ \ No newline at end of file diff --git a/templates/admin/servicedependencies.tpl.htm b/templates/admin/servicedependencies.tpl.htm new file mode 100644 index 0000000..09029fd --- /dev/null +++ b/templates/admin/servicedependencies.tpl.htm @@ -0,0 +1,374 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_DEPENDHOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_DEPENDHOSTGRS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOSTGROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_DEPENDSERVICES} (*) + + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_SERVICES} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_DEPENDSERVICEGROUPS} (*) + + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_SERVICEGROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_CONFIG_NAME} *{LANG_HELP}{LANG_INHERIT}{LANG_HELP}
{LANG_DEPENDENCY_PERIOD} + + {LANG_HELP}{LANG_EXECFAILCRIT} + + + + + + + + + + + + + + + +
owucpn
+
{LANG_HELP}
{LANG_ACCESS_GROUP} + + {LANG_HELP}{LANG_NOTIFFAILCRIT} + + + + + + + + + + + + + + + +
owucpn
+
{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/serviceescalations.tpl.htm b/templates/admin/serviceescalations.tpl.htm new file mode 100644 index 0000000..583224a --- /dev/null +++ b/templates/admin/serviceescalations.tpl.htm @@ -0,0 +1,304 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_HOSTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACT_GROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_HOST_GROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACTS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_SERVICES} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_SERVICEGROUPS} (*) + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CTRLINFO}{LANG_CTRLINFO}
{LANG_CONFIG_NAME} *{LANG_HELP}{LANG_FIRST_NOTIFICATION} *{LANG_HELP}
{LANG_NOTIFICATION_INTERVAL} * + min{LANG_HELP}{LANG_LAST_NOTIFICATION} *{LANG_HELP}
{LANG_ESCALATION_PERIOD} + + {LANG_HELP}{LANG_ESCALATION_OPTIONS} + + + + + + + + + + + +
wucr
+
{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_ACTIVE} + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/serviceextinfo.tpl.htm b/templates/admin/serviceextinfo.tpl.htm new file mode 100644 index 0000000..8dab2f9 --- /dev/null +++ b/templates/admin/serviceextinfo.tpl.htm @@ -0,0 +1,132 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_HOST_NAME}* + + {LANG_HELP}{LANG_ICON_IMAGE}{LANG_HELP}
{LANG_SERVICE_DESCRIPTION}* + + {LANG_HELP}{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}
{LANG_NOTES}{LANG_HELP}{LANG_ACTION_URL}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + {LANG_ACCESS_GROUP} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/servicegroups.tpl.htm b/templates/admin/servicegroups.tpl.htm new file mode 100644 index 0000000..f164e3e --- /dev/null +++ b/templates/admin/servicegroups.tpl.htm @@ -0,0 +1,175 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_SERVICEGROUP_NAME} *{LANG_HELP}{LANG_MEMBERS} {VERSION_20_STAR} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION} *{LANG_HELP}{LANG_CTRLINFO}
{LANG_NOTES}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}{LANG_SERVICEGROUP_MEMBERS} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_ACCESS_GROUP} + + {LANG_HELP}{LANG_CTRLINFO}
 
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}{WARNING}
 
+
+ {CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/services.tpl.htm b/templates/admin/services.tpl.htm new file mode 100644 index 0000000..c34187a --- /dev/null +++ b/templates/admin/services.tpl.htm @@ -0,0 +1,980 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_COMMON_SETTINGS}
{LANG_CONFIG_NAME} *{LANG_HELP}   
{LANG_HOSTS} (*)

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP} +
{LANG_HOST_GROUPS} (*)

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_SERVICE_DESCRIPTION} *{LANG_HELP}{LANG_SERVICEGROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DISPLAY_NAME}{LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_CHECK_COMMAND} * + + {LANG_HELP}
{LANG_COMMAND_VIEW}
$ARG1${LANG_HELP}$ARG5$
$ARG2$$ARG6$
$ARG3$$ARG7$
$ARG4$$ARG8$
 
{LANG_ADDITIONAL_TEMPLATES}
{LANG_TEMPLATE_NAME}
{LANG_TEMPLATE_NAME} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CHECK_SETTINGS}
 {LANG_INITIAL_STATE} + + + + + + + + + + + +
owuc
+
{LANG_HELP}{LANG_RETRY_INTERVAL} *min{LANG_HELP}
{LANG_MAX_CHECK_ATTEMPTS} *{LANG_HELP} {LANG_CHECK_INTERVAL} *min{LANG_HELP}
{LANG_ACTIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_PASSIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_PARALLELIZE_CHECK} + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP} 
{LANG_CHECK_PERIOD} * + + {LANG_HELP}{LANG_FRESHNESS_TRESHOLD}sec{LANG_HELP}
{LANG_CHECK_FRESHNESS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_OBSESS_OVER_SERVICE} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_EVENT_HANDLER} + + {LANG_HELP}{LANG_EVENT_HANDLER_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_LOW_FLAP_THRESHOLD}%{LANG_HELP}{LANG_HIGH_FLAP_THRESHOLD}%{LANG_HELP}
{LANG_FLAP_DETECTION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_FLAP_DETECTION_OPTIONS} + + + + + + + + + + + +
owuc
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_RETAIN_NOSTATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_PROCESS_PERF_DATA} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_IS_VOLATILE} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ALARM_SETTINGS}
{LANG_CONTACT_GROUPS} *

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACTS} *

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_NOTIFICATION_PERIOD} * + + {LANG_HELP}{LANG_NOTIFICATION_OPTIONS} {VERSION_20_STAR} + + + + + + + + + + + + + + + +
wucrfs
+
{LANG_HELP}
{LANG_NOTIFICATION_INTERVAL} *min{LANG_HELP}{LANG_FIRST_NOTIFICATION_DELAY}min{LANG_HELP}
{LANG_NOTIFICATION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_STALKING_OPTIONS} + + + + + + + + + + + +
oduc
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ADDON_SETTINGS}
{LANG_NOTES}{LANG_HELP}{LANG_ICON_IMAGE}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
{LANG_USE_THIS_AS_TEMPLATE}
{LANG_GENERIC_NAME}{LANG_HELP}   
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+ + {CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/servicetemplates.tpl.htm b/templates/admin/servicetemplates.tpl.htm new file mode 100644 index 0000000..873f850 --- /dev/null +++ b/templates/admin/servicetemplates.tpl.htm @@ -0,0 +1,905 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_COMMON_SETTINGS}
{LANG_TEMPLATE_NAME} *{LANG_HELP}   
{LANG_HOSTS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_HOST_GROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP} + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_SERVICE_DESCRIPTION}{LANG_HELP}{LANG_SERVICEGROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DISPLAY_NAME}{LANG_HELP}
{LANG_ACTIVE} +
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
{LANG_CHECK_COMMAND} + + {LANG_HELP}
{LANG_COMMAND_VIEW}
$ARG1${LANG_HELP}$ARG5$
$ARG2$$ARG6$
$ARG3$$ARG7$
$ARG4$$ARG8$
 
{LANG_ADDITIONAL_TEMPLATES}
{LANG_TEMPLATE_NAME} 
{LANG_TEMPLATE_NAME} + + {LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_CHECK_SETTINGS}
 {LANG_INITIAL_STATE} + + + + + + + + + + + +
owuc
+
{LANG_HELP}{LANG_RETRY_INTERVAL}min{LANG_HELP}
{LANG_MAX_CHECK_ATTEMPTS}{LANG_HELP}{LANG_CHECK_INTERVAL}min{LANG_HELP}
{LANG_ACTIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_PASSIVE_CHECKS_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_PARALLELIZE_CHECK} + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}
+
{LANG_HELP}
{LANG_CHECK_PERIOD} + + {LANG_HELP}{LANG_FRESHNESS_TRESHOLD}sec{LANG_HELP}
{LANG_CHECK_FRESHNESS} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_OBSESS_OVER_SERVICE} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_EVENT_HANDLER} + + {LANG_HELP}{LANG_EVENT_HANDLER_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
{LANG_LOW_FLAP_THRESHOLD}%{LANG_HELP}{LANG_HIGH_FLAP_THRESHOLD}%{LANG_HELP}
{LANG_FLAP_DETECTION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_FLAP_DETECTION_OPTIONS} + + + + + + + + + + + +
owuc
+
{LANG_HELP}
 
{LANG_RETAIN_STATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_RETAIN_NOSTATUS_INFORMATION} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
{LANG_PROCESS_PERF_DATA} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_IS_VOLATILE} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ALARM_SETTINGS}
{LANG_CONTACT_GROUPS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_CONTACTS}

{LANG_CTRLINFO}
+ + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
  + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP} + + + + + + + + + +
+null{LANG_STANDARD}
+
{LANG_HELP}
 
{LANG_NOTIFICATION_PERIOD}* + + {LANG_HELP}{LANG_NOTIFICATION_OPTIONS} + + + + + + + + + + + + + + + +
wucrfs
+
{LANG_HELP}
{LANG_NOTIFICATION_INTERVAL}{LANG_HELP}{LANG_FIRST_NOTIFICATION_DELAY}{LANG_HELP}
{LANG_NOTIFICATION_ENABLED} + + + + + + + + + + + +
{LANG_ON}{LANG_OFF}{LANG_SKIP}null
+
{LANG_HELP}{LANG_STALKING_OPTIONS} + + + + + + + + + + + +
owuc
+
{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_ADDON_SETTINGS}
{LANG_NOTES}{LANG_HELP}{LANG_ICON_IMAGE}{LANG_HELP}
{LANG_NOTES_URL}{LANG_HELP}{LANG_ICON_IMAGE_ALT_TEXT}{LANG_HELP}
{LANG_ACTION_URL}{LANG_HELP}
 
{LANG_ACCESS_GROUP} + + {LANG_HELP}
 
{LANG_FREE_VARIABLE_DEFINITIONS}
+ + + + + +
{LANG_VARIABLE_NAME}{LANG_VARIABLE_VALUE}
+
{LANG_VARIABLE_NAME}{LANG_HELP}
{LANG_VARIABLE_VALUE}{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+
+
+
+ + {CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/settings.tpl.htm b/templates/admin/settings.tpl.htm new file mode 100644 index 0000000..eda0381 --- /dev/null +++ b/templates/admin/settings.tpl.htm @@ -0,0 +1,285 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{PATH}
{TEMPDIR_NAME} *{LANG_HELP}
{PROTOCOL_NAME} * + + {LANG_HELP}
 
{DATA}
{LOCALE} + + {LANG_HELP}
{ENCODING_NAME}{LANG_HELP}
 
{DB}
{SERVER_NAME} *{LANG_HELP}
{SERVER_PORT} *{LANG_HELP}
{DATABASE_NAME} *{LANG_HELP}
{USERNAME_NAME} *{LANG_HELP}
{PASSWORD_NAME}{LANG_HELP}
 
{SECURITY}
{LOGOFFTIME_NAME}{LANG_HELP}
{WSAUTH_NAME}* + + {LANG_HELP}
 
{COMMON}
{PAGELINES_NAME}{LANG_HELP}
{SELDISABLE_NAME} + + {LANG_HELP}
{TEMPLATE_CHECK} +
{LANG_ENABLE}
+
{LANG_DISABLE}
+
{LANG_HELP}
{UPDATE_CHECK} +
{LANG_ENABLE}
+
{LANG_DISABLE}
+
{LANG_HELP}
{UPD_PROXY_CHECK} +
{LANG_ENABLE}
+
{LANG_DISABLE}
+
{LANG_HELP}
{UPD_PROXY_SERVER} *{LANG_HELP}
{UPD_PROXY_USERNAME}{LANG_HELP}
{UPD_PROXY_PASSWORD}{LANG_HELP}
 
 * {LANG_REQUIRED}
+
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/support.tpl.htm b/templates/admin/support.tpl.htm new file mode 100644 index 0000000..b7b1e9a --- /dev/null +++ b/templates/admin/support.tpl.htm @@ -0,0 +1,140 @@ + + + + + + + + + + +
+
{TITLE}
+ + +

{SUBTITLE_1}

+

{SUPPORT_TEXT_1}

+

NagiosQL +

{SUBTITLE_2}

+

{SUPPORT_TEXT_2}

+

{DONATE_LINK} +

{SUBTITLE_3}

+

{SUPPORT_TEXT_3}

+

{TRANSLATION_LINK} +

{SUBTITLE_4}

+

{SUPPORT_TEXT_4}

+ + +
Loading...
+ +

{SUBTITLE_5}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Javascript{FAILED}{INI_FILE_UPLOADS}{INI_FILE_UPLOADS_RESULT}
{PHP_VERSION}{PHP_RESULT}{INI_AUTO_START}{INI_AUTO_START_RESULT}
{PHP_SESSION_MODULE}{PHP_SESSION_RESULT}{INI_SUHO_SESS_ENC}{INI_SUHO_SESS_ENC_RESULT}
{PHP_GETTEXT_MODULE}{PHP_GETTEXT_RESULT}{INI_DATE_TIMEZONE}{INI_DATE_TIMEZONE_RESULT}
{PHP_FTP_MODULE}{PHP_FTP_RESULT}{RW_CONFIG}{RW_CONFIG_RESULT}
{PHP_SSH2_MODULE}{PHP_SSH2_RESULT}  
{DB_VERSION}{DB_RESULT}  
+ +

{SUBTITLE_6}

+

{SUPPORT_TEXT_6}

+ + + + + + + + + + + + + + + + + + + + + + + + + +
{DOMAIN_NAME}{DOMAIN_NAME_VALUE}{RW_NAG_CONF}{RW_NAG_CONF_RESULT}
{CONNECT_TYPE}{CONNECT_TYPE_RESULT}{CHECK_NAG_LOCK}{CHECK_NAG_LOCK_RESULT}
{CONNECT_CHECK}{CONNECT_CHECK_RESULT}{RW_NAG_COMMAND}{RW_NAG_COMMAND_RESULT}
{EXE_NAG_BINARY}{EXE_NAG_BINARY_RESULT}
+

{SUBTITLE_7}

+ + + + + + + + + + + + + +
{CONFIGURATION_NAME}{USED}{DEMON_CONFIG}
{CONFIG_NAME}{ACTIVE_CONFIG_COUNT}{DEMON_CFG_OK}
+ + +

{ERRORMESSAGE}{INFOMESSAGE}

+ + + + +
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/timeperiods.tpl.htm b/templates/admin/timeperiods.tpl.htm new file mode 100644 index 0000000..0337a9a --- /dev/null +++ b/templates/admin/timeperiods.tpl.htm @@ -0,0 +1,233 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_TIME_PERIOD} *{LANG_HELP}{LANG_EXCLUDE} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
{LANG_DESCRIPTION} *{LANG_HELP}{LANG_CTRLINFO}
{LANG_TPLNAME}{LANG_HELP}
{LANG_ACCESS_GROUP} + + {LANG_HELP}
{LANG_REGISTERED}{LANG_HELP}
{LANG_ACTIVE} + + + + + {LANG_INCLUDE} + + + + +
+ +
+
{LANG_MODIFY}
{LANG_HELP}
 {LANG_CTRLINFO}
 
{LANG_TIME_DEFINITIONS}
+ + + + + +
{LANG_TIME_DEFINITION}{LANG_TIME_RANGE}
+
{LANG_WEEKDAY} + + {LANG_HELP}
{LANG_TIME_RANGE}{LANG_HELP}
{LANG_TIME_DEFINITION}{LANG_HELP}
{LANG_TIME_RANGE}{LANG_HELP}
 
 * {LANG_REQUIRED}{WARNING}
 
+
+ [{LANG_SHOW_RELATION_DATA}][{LANG_HIDE_RELATION_DATA}]{CHECK_MUST_DATA} +
+
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/user.tpl.htm b/templates/admin/user.tpl.htm new file mode 100644 index 0000000..530c220 --- /dev/null +++ b/templates/admin/user.tpl.htm @@ -0,0 +1,148 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LANG_USERNAME} *
{LANG_DESCRIPTION} *
{LANG_PASSWORD} {PASSWORD_MUST_STAR}
{LANG_CONFIRM_PASSWORD} {PASSWORD_MUST_STAR}
{LANG_LANGUAGE} + + {LANG_HELP}
{LANG_STANDARD_DOMAIN} + + {LANG_HELP}
{LANG_ADMIN_ENABLE}{LANG_HELP}
{LANG_WEBSERVER_AUTH}{LANG_HELP}
 
{LANG_ACTIVE} + + + +
 
 * {LANG_REQUIRED}
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/templates/admin/verify.tpl.htm b/templates/admin/verify.tpl.htm new file mode 100644 index 0000000..69f4cdf --- /dev/null +++ b/templates/admin/verify.tpl.htm @@ -0,0 +1,61 @@ + + + + + + + + + + +
+
{TITLE}
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{WRITE_MONITORING_DATA}
 
{WRITE_ADDITIONAL_DATA}
 
{CHECK_CONFIG}
 
{RESTART_NAGIOS}
 
+
+
+

{ERRORMESSAGE}{INFOMESSAGE}

+

+{VERIFY_LINE}
+ {DATA}

+
+ \ No newline at end of file diff --git a/templates/files/commands.tpl.dat b/templates/files/commands.tpl.dat new file mode 100644 index 0000000..ddfbe39 --- /dev/null +++ b/templates/files/commands.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Check command configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define command { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Check command configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/contactgroups.tpl.dat b/templates/files/contactgroups.tpl.dat new file mode 100644 index 0000000..707beef --- /dev/null +++ b/templates/files/contactgroups.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Contact group configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define contactgroup { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Contact group configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/contacts.tpl.dat b/templates/files/contacts.tpl.dat new file mode 100644 index 0000000..1aa0174 --- /dev/null +++ b/templates/files/contacts.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Contact configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define contact { + {ITEM_TITLE} {ITEM_VALUE} + } + +############################################################################### +# +# Contact configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/contacttemplates.tpl.dat b/templates/files/contacttemplates.tpl.dat new file mode 100644 index 0000000..1093906 --- /dev/null +++ b/templates/files/contacttemplates.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Contact template configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define contact { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Contact template configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hostdependencies.tpl.dat b/templates/files/hostdependencies.tpl.dat new file mode 100644 index 0000000..dfeaaae --- /dev/null +++ b/templates/files/hostdependencies.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Host dependency configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define hostdependency { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Host dependency configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hostescalations.tpl.dat b/templates/files/hostescalations.tpl.dat new file mode 100644 index 0000000..82bdb3e --- /dev/null +++ b/templates/files/hostescalations.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Host escalations configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define hostescalation { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Host escalations configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hostextinfo.tpl.dat b/templates/files/hostextinfo.tpl.dat new file mode 100644 index 0000000..f4e494b --- /dev/null +++ b/templates/files/hostextinfo.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Extended host information configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define hostextinfo { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Extended host information configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hostgroups.tpl.dat b/templates/files/hostgroups.tpl.dat new file mode 100644 index 0000000..2919a55 --- /dev/null +++ b/templates/files/hostgroups.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Host group configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define hostgroup { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Host group configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hosts.tpl.dat b/templates/files/hosts.tpl.dat new file mode 100644 index 0000000..dbdbe23 --- /dev/null +++ b/templates/files/hosts.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Host configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define host { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Host configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/hosttemplates.tpl.dat b/templates/files/hosttemplates.tpl.dat new file mode 100644 index 0000000..ea5bd51 --- /dev/null +++ b/templates/files/hosttemplates.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Host template configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define host { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Host template configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/servicedependencies.tpl.dat b/templates/files/servicedependencies.tpl.dat new file mode 100644 index 0000000..0ef7730 --- /dev/null +++ b/templates/files/servicedependencies.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Service dependency configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define servicedependency { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Service dependency configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/serviceescalations.tpl.dat b/templates/files/serviceescalations.tpl.dat new file mode 100644 index 0000000..a67f9d8 --- /dev/null +++ b/templates/files/serviceescalations.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Service escalations configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define serviceescalation { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Service escalations configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/serviceextinfo.tpl.dat b/templates/files/serviceextinfo.tpl.dat new file mode 100644 index 0000000..5cc01ef --- /dev/null +++ b/templates/files/serviceextinfo.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Extended service information configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define serviceextinfo { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Extended service information configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/servicegroups.tpl.dat b/templates/files/servicegroups.tpl.dat new file mode 100644 index 0000000..5e57711 --- /dev/null +++ b/templates/files/servicegroups.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Service group configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define servicegroup { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Service group configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/services.tpl.dat b/templates/files/services.tpl.dat new file mode 100644 index 0000000..d1a5170 --- /dev/null +++ b/templates/files/services.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Service configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define service { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Service configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/servicetemplates.tpl.dat b/templates/files/servicetemplates.tpl.dat new file mode 100644 index 0000000..55104b2 --- /dev/null +++ b/templates/files/servicetemplates.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Service template configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define service { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Service template configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/files/timeperiods.tpl.dat b/templates/files/timeperiods.tpl.dat new file mode 100644 index 0000000..a8edfb7 --- /dev/null +++ b/templates/files/timeperiods.tpl.dat @@ -0,0 +1,25 @@ +############################################################################### +# +# Time period configuration file +# +# Created by: Nagios QL Version {NAGIOS_QL_VERSION} +# Date: {CREATE_DATE} +# Version: {VERSION} +# +# --- DO NOT EDIT THIS FILE BY HAND --- +# Nagios QL will overwite all manual settings during the next update +# +############################################################################### + +define timeperiod { + {ITEM_TITLE} {ITEM_VALUE} +} + +############################################################################### +# +# Time period configuration file +# +# END OF FILE +# +############################################################################### + \ No newline at end of file diff --git a/templates/index.tpl.htm b/templates/index.tpl.htm new file mode 100644 index 0000000..a520a3f --- /dev/null +++ b/templates/index.tpl.htm @@ -0,0 +1,33 @@ + + + + + + + + + + +
+

NagiosQL

+

{TITLE_LOGIN}

+
+ + + + + + + + + + + +
{USERNAME}:
{PASSWORD}:
 
+
+

{MESSAGE}

+
+

{LOGIN_TEXT}

+
+
+ \ No newline at end of file diff --git a/templates/main.tpl.htm b/templates/main.tpl.htm new file mode 100644 index 0000000..5011802 --- /dev/null +++ b/templates/main.tpl.htm @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + {PAGETITLE} + + + + + + + {SPECIALMETA} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{ADMIN} {MONITOR} {PLUGINS}  
{POSITION}  +
+ + + + + + + + + + +
{DOMAIN_INFO}   + +   {LOGIN_INFO} {LOGOUT_INFO}
+
+
+ + + {MAINMENU} + + +
+ + +
+

{VERSION_INFO}

+ + + \ No newline at end of file