tbrehm
2013-08-21 7b47c0aa0aeee6f059f00008e36cc210ca89ecb9
Merged revisions 4069-4117 from stable branch.
64 files added
468 files modified
4972 ■■■■ changed files
install/dist/lib/fedora.lib.php 18 ●●●●● patch | view | raw | blame | history
install/dist/lib/opensuse.lib.php 16 ●●●●● patch | view | raw | blame | history
install/install.php 3 ●●●● patch | view | raw | blame | history
install/lib/installer_base.lib.php 6 ●●●● patch | view | raw | blame | history
install/lib/mysql.lib.php 79 ●●●●● patch | view | raw | blame | history
install/sql/incremental/upd_0055.sql 1 ●●●● patch | view | raw | blame | history
install/sql/incremental/upd_0056.sql 12 ●●●●● patch | view | raw | blame | history
install/sql/ispconfig3.sql 20 ●●●●● patch | view | raw | blame | history
install/tpl/config.inc.php.master 2 ●●● patch | view | raw | blame | history
install/tpl/system.ini.master 6 ●●●●● patch | view | raw | blame | history
interface/lib/classes/aps_guicontroller.inc.php 1692 ●●●● patch | view | raw | blame | history
interface/lib/classes/client_templates.inc.php 239 ●●●●● patch | view | raw | blame | history
interface/lib/classes/listform.inc.php 10 ●●●● patch | view | raw | blame | history
interface/lib/classes/plugin_backuplist.inc.php 6 ●●●●● patch | view | raw | blame | history
interface/lib/classes/remoting.inc.php 175 ●●●●● patch | view | raw | blame | history
interface/lib/classes/remoting_lib.inc.php 2 ●●●●● patch | view | raw | blame | history
interface/lib/classes/tform.inc.php 13 ●●●● patch | view | raw | blame | history
interface/lib/classes/tree.inc.php 6 ●●●● patch | view | raw | blame | history
interface/lib/lang/ar.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/bg.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/br.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/cz.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/de.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/el.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/en.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/es.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/fi.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/fr.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/hr.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/hu.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/id.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/it.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/ja.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/nl.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/pl.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/pt.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/ro.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/ru.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/se.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/sk.lng 2 ●●●●● patch | view | raw | blame | history
interface/lib/lang/tr.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/form/system_config.tform.php 36 ●●●●● patch | view | raw | blame | history
interface/web/admin/language_edit.php 2 ●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ar_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ar_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ar_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ar_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ar_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/bg_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/bg_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/bg_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/bg_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/bg_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/br_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/br_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/br_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/br_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/br_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_remote_action.lng 4 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/cz_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/de_system_config.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/el_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/el_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/el_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/el_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/el_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_system_config.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/es_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/es_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/es_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/es_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/es_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fi_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fi_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fi_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fi_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fi_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fr_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fr_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fr_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fr_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/fr_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hr_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hr_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hr_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hr_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hr_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hu_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hu_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hu_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hu_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/hu_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/id_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/id_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/id_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/id_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/id_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/it_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/it_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/it_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/it_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/it_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ja_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ja_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ja_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ja_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ja_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/nl_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pl_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pl_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pl_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pl_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pl_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pt_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pt_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pt_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pt_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/pt_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ro_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ro_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ro_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ro_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ro_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ru_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ru_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ru_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ru_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/ru_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/se_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/se_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/se_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/se_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/se_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/sk_server_config.lng 17 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/sk_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/sk_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/sk_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/sk_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/tr_server_config.lng 18 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/tr_software_package.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/tr_software_package_list.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/tr_software_repo.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/tr_system_config.lng 3 ●●●●● patch | view | raw | blame | history
interface/web/admin/system_config_edit.php 23 ●●●●● patch | view | raw | blame | history
interface/web/admin/templates/system_config_misc_edit.htm 24 ●●●●● patch | view | raw | blame | history
interface/web/client/client_edit.php 180 ●●●●● patch | view | raw | blame | history
interface/web/client/client_template_del.php 7 ●●●●● patch | view | raw | blame | history
interface/web/client/client_template_edit.php 2 ●●● patch | view | raw | blame | history
interface/web/client/form/client.tform.php 18 ●●●●● patch | view | raw | blame | history
interface/web/client/form/reseller.tform.php 18 ●●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ar_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ar_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ar_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ar_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/bg_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/bg_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/bg_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/bg_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/br_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/br_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/br_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/br_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/cz_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/cz_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/cz_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/cz_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/de_client.lng 5 ●●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/de_reseller.lng 5 ●●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/el_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/el_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/el_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/el_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/en_client.lng 5 ●●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/en_reseller.lng 5 ●●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/es_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/es_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/es_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/es_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fi_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fi_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fi_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fi_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fr_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fr_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fr_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/fr_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hr_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hr_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hr_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hr_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hu_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hu_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hu_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/hu_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/id_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/id_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/id_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/id_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/it_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/it_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/it_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/it_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ja_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ja_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ja_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ja_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/nl_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/nl_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/nl_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/nl_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pl_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pl_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pl_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pl_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pt_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pt_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pt_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/pt_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ro_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ro_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ro_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ro_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ru_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ru_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ru_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/ru_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/se_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/se_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/se_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/se_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/sk_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/sk_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/sk_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/sk_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/tr_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/tr_client_del.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/tr_client_template_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/tr_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/reseller_edit.php 34 ●●●● patch | view | raw | blame | history
interface/web/client/templates/client_edit_address.htm 18 ●●●●● patch | view | raw | blame | history
interface/web/client/templates/client_edit_limits.htm 6 ●●●● patch | view | raw | blame | history
interface/web/client/templates/reseller_edit_address.htm 18 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/dashboard.php 32 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/dashlets/templates/mailquota.htm 2 ●●● patch | view | raw | blame | history
interface/web/dashboard/dashlets/templates/quota.htm 2 ●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ar_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ar_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/bg_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/bg_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/br_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/cz_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng 14 ●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/de_dashlet_quota.lng 14 ●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/el_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/el_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/es_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/fi_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/fi_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/fr_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/fr_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/hr_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/hu_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/hu_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/id_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/id_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/it_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ja_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ja_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/nl_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/pl_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/pl_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/pt_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/pt_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ro_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ro_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ru_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/ru_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/se_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/sk_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/sk_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/lib/lang/tr_dashlet_quota.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/dashboard/templates/dashboard.htm 2 ●●● patch | view | raw | blame | history
interface/web/dns/lib/lang/tr_dns_mx.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ar_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ar_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/bg_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/bg_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/br_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/br_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/cz_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/cz_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/el_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/el_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/es_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/es_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/fi_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/fi_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/fr_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/fr_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/hr_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/hr_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/hu_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/hu_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/id_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/id_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/it_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/it_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ja_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ja_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/nl_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/nl_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/pl_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/pl_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/pt_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/pt_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ro_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ro_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ru_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/ru_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/se_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/se_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/sk_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/sk_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/tr_support_message.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/help/lib/lang/tr_support_message_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/js/scrigo.js.php 71 ●●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/ar.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/bg.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/br.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/cz.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/el.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/es.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/fi.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/fr.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/hr.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/hu.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/id.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/it.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/ja.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/nl.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/pl.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/pt.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/ro.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/ru.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/se.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/sk.lng 1 ●●●● patch | view | raw | blame | history
interface/web/login/lib/lang/tr.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ar_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ar_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/bg_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/bg_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/br_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/br_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/cz_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/cz_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/de_mail_get.lng 2 ●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/el_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/el_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/es_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/es_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/fi_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/fi_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/fr_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/fr_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/hr_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/hr_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/hu_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/hu_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/id_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/id_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/it_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/it_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ja_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ja_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/nl_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/nl_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/pl_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/pl_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/pt_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/pt_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ro_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ro_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ru_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/ru_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/se_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/se_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/sk_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/sk_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/tr_spamfilter_users.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/mail/lib/lang/tr_user_quota_stats_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/mail/mail_alias_edit.php 6 ●●●●● patch | view | raw | blame | history
interface/web/mail/mail_get_edit.php 6 ●●●●● patch | view | raw | blame | history
interface/web/mail/mail_user_edit.php 2 ●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/ar.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/bg.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/br.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/cz.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/el.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/es.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/fi.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/fr.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/hr.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/hu.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/id.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/it.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/ja.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/nl.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/pl.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/pt.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/ro.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/ru.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/se.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/sk.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/monitor/lib/lang/tr.lng 6 ●●●●● patch | view | raw | blame | history
interface/web/sites/ajax_get_json.php 33 ●●●● patch | view | raw | blame | history
interface/web/sites/cron_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/database_edit.php 5 ●●●● patch | view | raw | blame | history
interface/web/sites/ftp_user_edit.php 10 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ar_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ar_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ar_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/bg_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/bg_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/bg_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/br_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/br_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/br_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/cz_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/cz_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/cz_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/de_database_admin_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/de_database_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/de_web_domain.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/de_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/el_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/el_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/el_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/en_database_admin_list.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/en_database_list.lng 3 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/en_web_domain.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/en_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/es_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/es_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/es_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fi_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fi_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fi_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fr_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fr_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/fr_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hr_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hr_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hr_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hu_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hu_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/hu_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/id_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/id_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/id_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/it_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/it_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/it_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ja_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ja_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ja_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/nl_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/nl_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/nl_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pl_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pl_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pl_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pt_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pt_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/pt_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ro_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ro_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ro_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ru_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ru_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/ru_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/se_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/se_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/se_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/sk_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/sk_web_domain.lng 7 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/sk_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/tr_shell_user.lng 2 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/tr_web_domain.lng 8 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/tr_web_folder_user.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/list/database.list.php 17 ●●●●● patch | view | raw | blame | history
interface/web/sites/shell_user_edit.php 12 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/database_admin_list.htm 3 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/database_list.htm 3 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_advanced.htm 9 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_backup.htm 9 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_edit.htm 12 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_redirect.htm 11 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_ssl.htm 9 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_stats.htm 9 ●●●●● patch | view | raw | blame | history
interface/web/sites/web_aliasdomain_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/web_domain_edit.php 75 ●●●● patch | view | raw | blame | history
interface/web/sites/web_folder_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/web_folder_user_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/web_subdomain_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/web_vhost_subdomain_edit.php 3 ●●●● patch | view | raw | blame | history
interface/web/sites/webdav_user_edit.php 3 ●●●● patch | view | raw | blame | history
remoting_client/examples/client_add.php 2 ●●● patch | view | raw | blame | history
remoting_client/examples/client_update.php 7 ●●●● patch | view | raw | blame | history
server/cron_daily.php 18 ●●●●● patch | view | raw | blame | history
server/lib/app.inc.php 2 ●●● patch | view | raw | blame | history
server/lib/classes/db_mysql.inc.php 9 ●●●●● patch | view | raw | blame | history
server/mods-available/dns_module.inc.php 6 ●●●● patch | view | raw | blame | history
server/mods-available/web_module.inc.php 6 ●●●● patch | view | raw | blame | history
server/plugins-available/apache2_plugin.inc.php 32 ●●●●● patch | view | raw | blame | history
server/plugins-available/nginx_plugin.inc.php 90 ●●●●● patch | view | raw | blame | history
server/server.php 3 ●●●● patch | view | raw | blame | history
install/dist/lib/fedora.lib.php
@@ -163,7 +163,23 @@
        if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
        $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m';
        if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
        if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
        //* These postconf commands will be executed on installation and update
        $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']);
        $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config']));
        unset($server_ini_rec);
        //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update
        $rbl_list = '';
        if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
            $rbl_hosts = explode(",",str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list']));
            foreach ($rbl_hosts as $key => $value) {
                $rbl_list .= ", reject_rbl_client ". $value;
            }
        }
        unset($rbl_hosts);
        unset($server_ini_array);
        //* These postconf commands will be executed on installation and update
        $postconf_placeholders = array('{config_dir}' => $config_dir,
install/dist/lib/opensuse.lib.php
@@ -179,6 +179,22 @@
        if($cf['vmail_mailbox_base'] != '' && strlen($cf['vmail_mailbox_base']) >= 10 && $this->is_update === false) exec('chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base']);
        
        //* These postconf commands will be executed on installation and update
        $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']);
        $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config']));
        unset($server_ini_rec);
        //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update
        $rbl_list = '';
        if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
            $rbl_hosts = explode(",",str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list']));
            foreach ($rbl_hosts as $key => $value) {
                $rbl_list .= ", reject_rbl_client ". $value;
            }
        }
        unset($rbl_hosts);
        unset($server_ini_array);
        //* These postconf commands will be executed on installation and update
        $postconf_placeholders = array('{config_dir}' => $config_dir,
                                       '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
                                       '{vmail_userid}' => $cf['vmail_userid'],
install/install.php
@@ -571,7 +571,8 @@
    }*/
    
    //** Configure ISPConfig :-)
    if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),'y')) == 'y') {
    $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y';
    if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),$install_ispconfig_interface_default)) == 'y') {
        swriteln('Installing ISPConfig');
        
        //** We want to check if the server is a module or cgi based php enabled server
install/lib/installer_base.lib.php
@@ -400,7 +400,7 @@
                $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
            }
            $query = "GRANT SELECT, UPDATE(`status`) ON ".$value['db'].".`sys_datalog` TO '".$value['user']."'@'".$host."' ";
            $query = "GRANT SELECT, UPDATE(`status`, `error`) ON ".$value['db'].".`sys_datalog` TO '".$value['user']."'@'".$host."' ";
            if ($verbose){
                echo $query ."\n";
            }
@@ -2094,8 +2094,8 @@
        }
        $root_cron_jobs = array(
                "* * * * * ".$install_dir."/server/server.sh > /dev/null 2>> ".$conf['ispconfig_log_dir']."/cron.log",
                "30 00 * * * ".$install_dir."/server/cron_daily.sh > /dev/null 2>> ".$conf['ispconfig_log_dir']."/cron.log"
                "* * * * * ".$install_dir."/server/server.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done",
                "30 00 * * * ".$install_dir."/server/cron_daily.sh 2>&1 > /dev/null | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done"
        );
        if ($conf['nginx']['installed'] == true) {
install/lib/mysql.lib.php
@@ -35,7 +35,7 @@
    var $dbUser = "";          // database authorized user
    var $dbPass = "";          // user's password
    var $dbCharset = "";      // what charset comes and goes to mysql: utf8 / latin1
    var $linkId = 0;          // last result of mysql_connect()
    var $linkId = false;          // last result of mysql_connect()
    var $queryId = 0;          // last result of mysql_query()
    var $record    = array();      // last record fetched
    var $autoCommit = 1;      // Autocommit Transactions
@@ -61,8 +61,8 @@
    // error handler
    function updateError($location)
    {
        $this->errorNumber = mysql_errno();
        $this->errorMessage = mysql_error();
        $this->errorNumber = mysqli_errno($this->linkId);
        $this->errorMessage = mysqli_error($this->linkId);
        $this->errorLocation = $location;
        if($this->errorNumber && $this->show_error_messages)
        {
@@ -73,16 +73,16 @@
    function connect()
    {
        if($this->linkId == 0)
        if(!$this->linkId)
        {
            $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
            $this->linkId = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPass);
            if(!$this->linkId)
            {
                $this->updateError('DB::connect()<br />mysql_connect');
                $this->updateError('DB::connect()<br />mysqli_connect');
                return false;
            }
            $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId);
            $this->queryId = @mysqli_query($this->linkId, 'SET NAMES '.$this->dbCharset);
        }
        return true;
    }
@@ -94,14 +94,14 @@
            return false;
        }
        if($this->dbName != '') {
            if(!mysql_select_db($this->dbName, $this->linkId))
            if(!mysqli_select_db($this->linkId, $this->dbName))
            {
                $this->updateError('DB::connect()<br />mysql_select_db');
                $this->updateError('DB::connect()<br />mysqli_select_db');
                return false;
            }
        }
        $this->queryId = @mysql_query($queryString, $this->linkId);
        $this->updateError('DB::query('.$queryString.')<br />mysql_query');
        $this->queryId = @mysqli_query($this->linkId, $queryString);
        $this->updateError('DB::query('.$queryString.')<br />mysqli_query');
        if(!$this->queryId)
        {
            return false;
@@ -138,8 +138,8 @@
    // returns the next record in an array
    function nextRecord()
    {
        $this->record = mysql_fetch_assoc($this->queryId);
        $this->updateError('DB::nextRecord()<br />mysql_fetch_array');
        $this->record = mysqli_fetch_assoc($this->queryId);
        $this->updateError('DB::nextRecord()<br />mysqli_fetch_array');
        if(!$this->record || !is_array($this->record))
        {
            return false;
@@ -151,18 +151,18 @@
    // returns number of rows returned by the last select query
    function numRows()
    {
        return mysql_num_rows($this->queryId);
        return mysqli_num_rows($this->queryId);
    }
    
    function affectedRows()
    {
        return mysql_affected_rows($this->linkId);
        return mysqli_affected_rows($this->linkId);
    }
    
    // returns mySQL insert id
    function insertID()
    {
        return mysql_insert_id($this->linkId);
        return mysqli_insert_id($this->linkId);
    }
    
    // Check der variablen
@@ -175,7 +175,7 @@
    // Check der variablen
    function quote($formfield)
    {
        return mysql_real_escape_string($formfield);
        return mysqli_real_escape_string($this->linkId, $formfield);
    }
    
    // Check der variablen
@@ -359,11 +359,22 @@
        if($database_name == ''){
            $database_name = $this->dbName;
        }
        $result = mysql_query("SHOW TABLES FROM `$database_name`");
        $tables = $this->queryAllRecords("SHOW TABLES FROM `$database_name`");
        $tb_names = array();
        if(is_array($tables) && !empty($tables)){
            for($i = 0; $i < sizeof($tables); $i++){
                $tb_names[$i] = $tables[$i]['Tables_in_'.$database_name];
            }
        }
        /*
        $result = mysqli_query("SHOW TABLES FROM `$database_name`");
        $tb_names = array();
        for ($i = 0; $i < mysql_num_rows($result); $i++) {
        for ($i = 0; $i < mysqli_num_rows($result); $i++) {
            $tb_names[$i] = mysql_tablename($result, $i);
        }
        */
        return $tb_names;       
   }
   
@@ -438,35 +449,7 @@
    } else {
        return false;
    }
    //$this->createTable('tester',$columns);
    /*
    $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
    $fields = mysql_num_fields ($result);
    $i = 0;
    $table = mysql_field_table ($result, $i);
    while ($i < $fields) {
        $name  = mysql_field_name  ($result, $i);
        $type  = mysql_field_type  ($result, $i);
        $len   = mysql_field_len   ($result, $i);
        $flags = mysql_field_flags ($result, $i);
        print_r($flags);
        $columns = array(name => $name,
                    type =>     "",
                    defaultValue =>  "",
                    isnull =>   1,
                    option =>   "");
        $returnvar[] = $columns;
        $i++;
    }
    */
   }
   
   function mapType($metaType,$typeValue) {
install/sql/incremental/upd_0055.sql
@@ -1,2 +1,3 @@
ALTER TABLE `web_backup` CHANGE `backup_type` `backup_type` enum('web','mongodb','mysql') NOT NULL DEFAULT 'web';
ALTER TABLE `web_database_user` ADD `database_password_mongo` varchar(32) DEFAULT NULL AFTER `database_password`;
ALTER TABLE `sys_datalog` ADD `error` MEDIUMTEXT NULL DEFAULT NULL;
install/sql/incremental/upd_0056.sql
New file
@@ -0,0 +1,12 @@
CREATE TABLE `client_template_assigned` (
  `assigned_template_id` bigint(20) NOT NULL auto_increment,
  `client_id` bigint(11) NOT NULL DEFAULT '0',
  `client_template_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`assigned_template_id`),
  KEY `client_id` (`client_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ALTER TABLE `client` ADD `gender` enum('','m','f') NOT NULL DEFAULT '' AFTER `company_id`,
  ADD `locked` enum('n','y') NOT NULL DEFAULT 'n' AFTER `created_at`,
  ADD `canceled` enum('n','y') NOT NULL DEFAULT 'n' AFTER `locked`,
  ADD `tmp_data` mediumblob AFTER `canceled` ;
install/sql/ispconfig3.sql
@@ -145,6 +145,7 @@
  `sys_perm_other` varchar(5) DEFAULT NULL,
  `company_name` varchar(64) DEFAULT NULL,
  `company_id` varchar(30) DEFAULT NULL,
  `gender` enum('','m','f') NOT NULL DEFAULT '',
  `contact_name` varchar(64) DEFAULT NULL,
  `customer_no` varchar(64) DEFAULT NULL,
  `vat_id` varchar(64) DEFAULT NULL,
@@ -225,6 +226,9 @@
  `template_master` int(11) unsigned NOT NULL DEFAULT '0',
  `template_additional` text NOT NULL DEFAULT '',
  `created_at` bigint(20) DEFAULT NULL,
  `locked` enum('n','y') NOT NULL DEFAULT 'n',
  `canceled` enum('n','y') NOT NULL DEFAULT 'n',
  `tmp_data` mediumblob,
  `id_rsa` varchar(2000) NOT NULL DEFAULT '',
  `ssh_rsa` varchar(600) NOT NULL DEFAULT '',
  PRIMARY KEY (`client_id`)
@@ -313,6 +317,19 @@
  PRIMARY KEY  (`template_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table  `client_template_assigned`
--
CREATE TABLE `client_template_assigned` (
  `assigned_template_id` bigint(20) NOT NULL auto_increment,
  `client_id` bigint(11) NOT NULL DEFAULT '0',
  `client_template_id` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`assigned_template_id`),
  KEY `client_id` (`client_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
@@ -1428,6 +1445,7 @@
  `user` varchar(255) NOT NULL default '',
  `data` longtext NOT NULL,
  `status` set('pending','ok','warning','error') NOT NULL default 'ok',
  `error` mediumtext,
  PRIMARY KEY  (`datalog_id`),
  KEY `server_id` (`server_id`,`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
@@ -2179,6 +2197,6 @@
-- Dumping data for table `sys_config`
--
INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.2');
INSERT INTO sys_config VALUES ('1','db','db_version','3.0.5.3');
SET FOREIGN_KEY_CHECKS = 1;
install/tpl/config.inc.php.master
@@ -56,7 +56,7 @@
//** Application
define('ISPC_APP_TITLE', 'ISPConfig');
define('ISPC_APP_VERSION', '3.0.5.2');
define('ISPC_APP_VERSION', '3.0.5.3');
define('DEVSYSTEM', 0);
install/tpl/system.ini.master
@@ -41,3 +41,9 @@
use_loadindicator=y
use_combobox=y
maintenance_mode=n
admin_dashlets_left=
admin_dashlets_right=
reseller_dashlets_left=
reseller_dashlets_right=
client_dashlets_left=
client_dashlets_right=
interface/lib/classes/aps_guicontroller.inc.php
@@ -1,846 +1,846 @@
<?php
/*
Copyright (c) 2012, ISPConfig UG
Contributors: web wack creations,  http://www.web-wack.at
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of ISPConfig nor the names of its contributors
      may be used to endorse or promote products derived from this software without
      specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
require_once('aps_base.inc.php');
class ApsGUIController extends ApsBase
{
    /**
    * Constructor
    *
    * @param $app the application instance (db handle)
    */
    public function __construct($app)
    {
        parent::__construct($app);
    }
    /**
     * Reads in a package metadata file and registers it's namespaces
     *
     * @param $filename the file to read
     * @return $sxe a SimpleXMLElement handle
     */
    private function readInMetaFile($filename)
    {
        $metadata = file_get_contents($filename);
        $metadata = str_replace("xmlns=", "ns=", $metadata);
        $sxe = new SimpleXMLElement($metadata);
        $namespaces = $sxe->getDocNamespaces(true);
        foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url);
        return $sxe;
    }
    /**
     * Applies a RegEx pattern onto a location path in order to secure it against
     * code injections and invalid input
     *
     * @param $location_unfiltered the file path to secure
     * @return $location
     */
    private function secureLocation($location_unfiltered)
    {
        // Filter invalid slashes from string
        $location = preg_replace(array('#/+#', '#\.+#', '#\0+#', '#\\\\+#'),
                                 array('/', '', '', '/'),
                                 $location_unfiltered);
        // Remove a beginning or trailing slash
        if(substr($location, -1) == '/') $location = substr($location, 0, strlen($location) - 1);
        if(substr($location, 0, 1) == '/') $location = substr($location, 1);
        return $location;
    }
    /**
     * Gets the CustomerID (ClientID) which belongs to a specific domain
     *
     * @param $domain the domain
     * @return $customerid
     */
    private function getCustomerIDFromDomain($domain)
    {
        global $app;
        $customerid = 0;
        $customerdata = $app->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain
            WHERE web_domain.sys_groupid = sys_group.groupid
            AND web_domain.domain = '".$app->db->quote($domain)."';");
        if(!empty($customerdata)) $customerid = $customerdata['client_id'];
        return $customerid;
    }
    /**
     * Returns the server_id for an already installed instance. Is actually
     * just a little helper method to avoid redundant code
     *
     * @param $instanceid the instance to process
     * @return $webserver_id the server_id
     */
    private function getInstanceDataForDatalog($instanceid)
    {
        global $app;
        $webserver_id = '';
        $websrv = $app->db->queryOneRecord("SELECT server_id FROM web_domain
            WHERE domain = (SELECT value FROM aps_instances_settings
                WHERE name = 'main_domain' AND instance_id = ".$app->db->quote($instanceid).");");
        // If $websrv is empty, an error has occured. Domain no longer existing? Settings table damaged?
        // Anyhow, remove this instance record because it's not useful at all
        if(empty($websrv))
        {
            $app->db->query("DELETE FROM aps_instances WHERE id = ".$app->db->quote($instanceid).";");
            $app->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$app->db->quote($instanceid).";");
        }
        else $webserver_id = $websrv['server_id'];
        return $webserver_id;
    }
    /**
     * Finds out if there is a newer package version for
     * a given (possibly valid) package ID
     *
     * @param $id the ID to check
     * @return $newer_pkg_id the newer package ID
     */
    public function getNewestPackageID($id)
    {
        global $app;
        if(preg_match('/^[0-9]+$/', $id) != 1) return 0;
        $result = $app->db->queryOneRecord("SELECT id, name,
            CONCAT(version, '-', CAST(`release` AS CHAR)) AS current_version
            FROM aps_packages
            WHERE name = (SELECT name FROM aps_packages WHERE id = ".$app->db->quote($id).")
            ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC");
        if(!empty($result) && ($id != $result['id'])) return $result['id'];
        return 0;
    }
    /**
     * Validates a given package ID
     *
     * @param $id the ID to check
     * @param $is_admin a flag to allow locked IDs too (for admin calls)
     * @return boolean
     */
    public function isValidPackageID($id, $is_admin = false)
    {
        global $app;
         if(preg_match('/^[0-9]+$/', $id) != 1) return false;
         $sql_ext = (!$is_admin) ?
            'package_status = '.PACKAGE_ENABLED.' AND' :
            '(package_status = '.PACKAGE_ENABLED.' OR package_status = '.PACKAGE_LOCKED.') AND';
         $result = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$app->db->quote($id).";");
         if(!$result) return false;
         return true;
    }
    /**
     * Validates a given instance ID
     *
     * @param $id the ID to check
     * @param $client_id the calling client ID
     * @param $is_admin a flag to ignore the client ID check for admins
     * @return boolean
     */
    public function isValidInstanceID($id, $client_id, $is_admin = false)
    {
        global $app;
         if(preg_match('/^[0-9]+$/', $id) != 1) return false;
         // Only filter if not admin
         $sql_ext = (!$is_admin) ? 'customer_id = '.$app->db->quote($client_id).' AND' : '';
         $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$app->db->quote($id).';');
         if(!$result) return false;
         return true;
    }
    /**
     * Creates a new database record for the package instance and
     * an install task
     *
     * @param $settings the settings to enter into the DB
     * @param $packageid the PackageID
     */
    public function createPackageInstance($settings, $packageid)
    {
        global $app;
        $app->uses('tools_sites');
        $webserver_id = 0;
        $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$app->db->quote($settings['main_domain'])."';");
        if(!empty($websrv)) $webserver_id = $websrv['server_id'];
        $customerid = $this->getCustomerIDFromDomain($settings['main_domain']);
        if(empty($settings) || empty($webserver_id)) return false;
        //* Get server config of the web server
        $app->uses("getconf");
        $web_config = $app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web');
        //* Set PHP mode to php-fcgi and enable suexec in website on apache servers / set PHP mode to PHP-FPM on nginx servers
        if($web_config['server_type'] == 'apache') {
            if(($websrv['php'] != 'fast-cgi' || $websrv['suexec'] != 'y') && $websrv['php'] != 'php-fpm') {
                $app->db->datalogUpdate('web_domain', "php = 'fast-cgi', suexec = 'y'", 'domain_id', $websrv['domain_id']);
            }
        } else {
            // nginx
            if($websrv['php'] != 'php-fpm' && $websrv['php'] != 'fast-cgi') {
                $app->db->datalogUpdate('web_domain', "php = 'php-fpm'", 'domain_id', $websrv['domain_id']);
            }
        }
        //* Create the MySQL database for the application
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';');
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        $sxe = $this->readInMetaFile($metafile);
        $db_id = parent::getXPathValue($sxe, '//db:id');
        if (!empty($db_id)) {
            $global_config = $app->getconf->get_global_config('sites');
            $tmp = array();
            $tmp['parent_domain_id'] = $websrv['domain_id'];
            $tmp['sys_groupid'] = $websrv['sys_groupid'];
            $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp);
            $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp);
            unset($tmp);
            // get information if the webserver is a db server, too
            $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id  = ".$websrv['server_id']);
            if($web_server['db_server'] == 1) {
                // create database on "localhost" (webserver)
                $mysql_db_server_id = $websrv['server_id'];
                $mysql_db_host = 'localhost';
                $mysql_db_remote_access = 'n';
                $mysql_db_remote_ips = '';
            } else {
                //* get the default database server of the client
                $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$websrv['sys_groupid']);
                if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) {
                    $mysql_db_server_id =  $client['default_dbserver'];
                    $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id),'server');
                    $mysql_db_host = $dbserver_config['ip_address'];
                    $mysql_db_remote_access = 'y';
                    $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']),'server');
                    $mysql_db_remote_ips = $webserver_config['ip_address'];
                } else {
                    /* I left this in place for a fallback that should NEVER! happen.
                     * if we reach this point it means that there is NO default db server for the client
                     * AND the webserver has NO db service enabled.
                     * We have to abort the aps installation here... so I added a return false
                     * although this does not present any error message to the user.
                     */
                    return false;
                    /*$mysql_db_server_id = $websrv['server_id'];
                    $mysql_db_host = 'localhost';
                    $mysql_db_remote_access = 'n';
                    $mysql_db_remote_ips = '';*/
                }
            }
            //* Find a free db name for the app
            for($n = 1; $n <= 1000; $n++) {
                $mysql_db_name = ($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps'));
                $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'");
                if($tmp['number'] == 0) break;
            }
            //* Find a free db username for the app
            for($n = 1; $n <= 1000; $n++) {
                $mysql_db_user = ($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps'));
                $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'");
                if($tmp['number'] == 0) break;
            }
            $mysql_db_password = $settings['main_database_password'];
            //* Create the mysql database user
            $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`)
                      VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', 0, '$mysql_db_user', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('$mysql_db_password'))";
            $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id');
            //* Create the mysql database
            $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`)
                      VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', $mysql_db_server_id, ".$websrv['domain_id'].", 'mysql', '$mysql_db_name', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$websrv['backup_copies'].", 'y', '".$websrv['backup_interval']."')";
            $app->db->datalogInsert('web_database', $insert_data, 'database_id');
            //* Add db details to package settings
            $settings['main_database_host'] = $mysql_db_host;
            $settings['main_database_name'] = $mysql_db_name;
            $settings['main_database_login'] = $mysql_db_user;
        }
        //* Insert new package instance
        $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")";
        $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id');
        //* Insert all package settings
        if(is_array($settings)) {
            foreach($settings as $key => $value) {
                $insert_data = "(server_id, instance_id, name, value) VALUES (".$app->db->quote($webserver_id).",".$app->db->quote($InstanceID).", '".$app->db->quote($key)."', '".$app->db->quote($value)."')";
                $app->db->datalogInsert('aps_instances_settings', $insert_data, 'id');
            }
        }
        //* Set package status to install afetr we inserted the settings
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $InstanceID);
    }
    /**
     * Sets the status of an instance to "should be removed" and creates a
     * datalog entry to give the ISPConfig server a real removal advice
     *
     * @param $instanceid the instance to delete
     */
    public function deleteInstance($instanceid)
    {
        global $app;
        /*
        $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";");
        $webserver_id = $this->getInstanceDataForDatalog($instanceid);
        if($webserver_id == '') return;
        // Create a sys_datalog entry for deletion
        $datalog = array('Instance_id' => $instanceid, 'server_id' => $webserver_id);
        $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog);
        */
        $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value =  aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
        $tmp = $app->db->queryOneRecord($sql);
        if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
        $database_user = $tmp['database_user_id'];
        $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'");
        if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user);
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid);
    }
    /**
     * Sets the status of an instance to "installation planned" and creates a
     * datalog entry to re-install the package. The existing package is simply overwritten.
     *
     * @param $instanceid the instance to delete
     */
    public function reinstallInstance($instanceid)
    {
        global $app;
        /*
        $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";");
        $webserver_id = $this->getInstanceDataForDatalog($instanceid);
        if($webserver_id == '') return;
        // Create a sys_datalog entry for re-installation
        $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id);
        $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog);
        */
        $sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value =  aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
        $tmp = $app->db->queryOneRecord($sql);
        if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid);
    }
    /**
     * Read the settings to be filled when installing
     *
     * @param $id the internal ID of the package
     * @return array
     */
    public function getPackageSettings($id)
    {
        global $app;
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
        // Load in meta file if existing and register its namespaces
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        if(!file_exists($metafile))
            return array('error' => 'The metafile for '.$settings['Name'].' couldn\'t be found');
        $sxe = $this->readInMetaFile($metafile);
        $groupsettings = parent::getXPathValue($sxe, '//settings/group/setting', true);
        if(empty($groupsettings)) return array();
        $settings = array();
        foreach($groupsettings as $setting)
        {
            $setting_id = strval($setting['id']);
            if($setting['type'] == 'string' || $setting['type'] == 'email' || $setting['type'] == 'integer'
            || $setting['type'] == 'float' || $setting['type'] == 'domain-name')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => $setting['type'],
                                    'SettingInputType' => 'string',
                                    'SettingDefaultValue' => strval($setting['default-value']),
                                    'SettingRegex' => $setting['regex'],
                                    'SettingMinLength' => $setting['min-length'],
                                    'SettingMaxLength' => $setting['max-length']);
            }
            else if($setting['type'] == 'password')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => 'password',
                                    'SettingInputType' => 'password',
                                    'SettingDefaultValue' => '',
                                    'SettingRegex' => $setting['regex'],
                                    'SettingMinLength' => $setting['min-length'],
                                    'SettingMaxLength' => $setting['max-length']);
            }
            else if($setting['type'] == 'boolean')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => 'boolean',
                                    'SettingInputType' => 'checkbox',
                                    'SettingDefaultValue' => strval($setting['default-value']));
            }
            else if($setting['type'] == 'enum')
            {
              $choices = array();
              foreach($setting->choice as $choice)
              {
                $choices[] = array('EnumID' => strval($choice['id']),
                                   'EnumName' => $choice->name);
              }
              $settings[] = array('SettingID' => $setting_id,
                                  'SettingName' => $setting->name,
                                  'SettingDescription' => $setting->description,
                                  'SettingType' => 'enum',
                                  'SettingInputType' => 'select',
                                  'SettingDefaultValue' => strval($setting['default-value']),
                                  'SettingChoices' => $choices);
            }
        }
        return $settings;
    }
    /**
     * Validates the user input according to the settings array and
     * delivers errors if occurring
     *
     * @param $input the user $_POST array
     * @param $pkg_details the package details
     * @param $settings the package settings array
     * @return array in this structure:
     *               array(2) {
     *                  ["input"]=> ...
     *                  ["errors"]=> ...
     *               }
     */
    public function validateInstallerInput($postinput, $pkg_details, $domains, $settings = array())
    {
        global $app;
        $ret = array();
        $input = array();
        $error = array();
        // Main domain (obligatory)
        if(isset($postinput['main_domain']))
        {
            if(!in_array($postinput['main_domain'], $domains)) $error[] = $app->lng('error_main_domain');
            else $input['main_domain'] = $postinput['main_domain'];
        }
        else $error[] = $app->lng('error_main_domain');
        // Main location (not obligatory but must be supplied)
        if(isset($postinput['main_location']))
        {
            $temp_errstr = '';
            // It can be empty but if the user did write something, check it
            $userinput = false;
            if(strlen($postinput['main_location']) > 0) $userinput = true;
            // Filter invalid input slashes (twice!)
            $main_location = $this->secureLocation($postinput['main_location']);
            $main_location = $this->secureLocation($main_location);
            // Only allow digits, words, / and -
            $main_location = preg_replace("/[^\d\w\/\-]/i", "", $main_location);
            if($userinput && (strlen($main_location) == 0)) $temp_errstr = $app->lng('error_inv_main_location');
            // Find out document_root and make sure no apps are installed twice to one location
            if(in_array($postinput['main_domain'], $domains))
            {
                $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain
                    WHERE domain = '".$app->db->quote($postinput['main_domain'])."';");
                $new_path = $docroot['document_root'];
                if(substr($new_path, -1) != '/') $new_path .= '/';
                $new_path .= $main_location;
                // Get the $customerid which belongs to the selected domain
                $customerid = $this->getCustomerIDFromDomain($postinput['main_domain']);
                // First get all domains used for an install, then their loop them
                // and get the corresponding document roots as well as the defined
                // locations. If an existing doc_root + location matches with the
                // new one -> error
                $instance_domains = $app->db->queryAllRecords("SELECT instance_id, s.value AS domain
                    FROM aps_instances AS i, aps_instances_settings AS s
                    WHERE i.id = s.instance_id AND s.name = 'main_domain'
                        AND i.customer_id = '".$app->db->quote($customerid)."';");
                for($i = 0; $i < count($instance_domains); $i++)
                {
                    $used_path = '';
                    $doc_root = $app->db->queryOneRecord("SELECT document_root FROM web_domain
                        WHERE domain = '".$app->db->quote($instance_domains[$i]['domain'])."';");
                    // Probably the domain settings were changed later, so make sure the doc_root
                    // is not empty for further validation
                    if(!empty($doc_root))
                    {
                        $used_path = $doc_root['document_root'];
                        if(substr($used_path, -1) != '/') $used_path .= '/';
                        $location_for_domain = $app->db->queryOneRecord("SELECT value
                            FROM aps_instances_settings WHERE name = 'main_location'
                            AND instance_id = '".$app->db->quote($instance_domains[$i]['instance_id'])."';");
                        // The location might be empty but the DB return must not be false!
                        if($location_for_domain) $used_path .= $location_for_domain['value'];
                        if($new_path == $used_path)
                        {
                            $temp_errstr = $app->lng('error_used_location');
                            break;
                        }
                    }
                }
            }
            else $temp_errstr = $app->lng('error_main_domain');
            if($temp_errstr == '') $input['main_location'] = htmlspecialchars($main_location);
            else $error[] = $temp_errstr;
        }
        else $error[] = $app->lng('error_no_main_location');
        // License (the checkbox must be set)
        if(isset($pkg_details['License need agree'])
        && $pkg_details['License need agree'] == 'true')
        {
            if(isset($postinput['license']) && $postinput['license'] == 'on') $input['license'] = 'true';
            else $error[] = $app->lng('error_license_agreement');
        }
        // Database
        if(isset($pkg_details['Requirements Database'])
        && $pkg_details['Requirements Database'] != '')
        {
            if(isset($postinput['main_database_password']))
            {
                if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw');
                else if(strlen($postinput['main_database_password']) > 8)
                    $input['main_database_password'] = htmlspecialchars($postinput['main_database_password']);
                else $error[] = $app->lng('error_short_database_pw');
            }
            else $error[] = $app->lng('error_no_database_pw');
        }
        // Validate the package settings
        foreach($settings as $setting)
        {
            $temp_errstr = '';
            $setting_id = strval($setting['SettingID']);
            // We assume that every setting must be set
            if((isset($postinput[$setting_id]) && ($postinput[$setting_id] != ''))
            || ($setting['SettingType'] == 'boolean'))
            {
                if($setting['SettingType'] == 'string' || $setting['SettingType'] == 'password')
                {
                    if($app->functions->intval($setting['SettingMinLength'], true) != 0
                    && strlen($postinput[$setting_id]) < $app->functions->intval($setting['SettingMinLength'], true))
                        $temp_errstr = sprintf($app->lng('error_short_value_for'), $setting['setting_name']);
                    if($app->functions->intval($setting['SettingMaxLength'], true) != 0
                    && strlen($postinput[$setting_id]) > $app->functions->intval($setting['SettingMaxLength'], true))
                        $temp_errstr = sprintf($app->lng('error_long_value_for'), $setting['setting_name']);
                    if(isset($setting['SettingRegex'])
                    && !preg_match("/".$setting['SettingRegex']."/", $postinput[$setting_id]))
                        $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'email')
                {
                    if(filter_var(strtolower($postinput[$setting_id]), FILTER_VALIDATE_EMAIL) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_email_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'domain-name')
                {
                    if(!preg_match("^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$",
                        $postinput[$setting_id]))
                    $temp_errstr = sprintf($app->lng('error_inv_domain_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'integer')
                {
                    if(filter_var($postinput[$setting_id], FILTER_VALIDATE_INT) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_integer_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'float')
                {
                    if(filter_var($postinput[$setting_id], FILTER_VALIDATE_FLOAT) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_float_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'boolean')
                {
                    // If we have a boolean value set, it must be either true or false
                    if(!isset($postinput[$setting_id])) $postinput[$setting_id] = 'false';
                    else if(isset($postinput[$setting_id]) && $postinput[$setting_id] != 'true')
                        $postinput[$setting_id] = 'true';
                }
                else if($setting['SettingType'] == 'enum')
                {
                    $found = false;
                    for($i = 0; $i < count($setting['SettingChoices']); $i++)
                    {
                        if($setting['SettingChoices'][$i]['EnumID'] == $postinput[$setting_id])
                            $found = true;
                    }
                    if(!$found) $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['SettingName']);
                }
                if($temp_errstr == '') $input[$setting_id] = $postinput[$setting_id];
                else $error[] = $temp_errstr;
            }
            else $error[] = sprintf($app->lng('error_no_value_for'), $setting['SettingName']);
        }
        $ret['input'] = $input;
        $ret['error'] = array_unique($error);
        return $ret;
    }
    /**
     * Read the metadata of a package and returns some content
     *
     * @param $id the internal ID of the package
     * @return array
     */
    public function getPackageDetails($id)
    {
        global $app;
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
        // Load in meta file if existing and register its namespaces
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        if(!file_exists($metafile))
            return array('error' => 'The metafile for '.$pkg['name'].' couldn\'t be found');
        $metadata = file_get_contents($metafile);
        $metadata = str_replace("xmlns=", "ns=", $metadata);
        $sxe = new SimpleXMLElement($metadata);
        $namespaces = $sxe->getDocNamespaces(true);
        foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url);
        $pkg['Summary'] = htmlspecialchars(parent::getXPathValue($sxe, '//summary'));
        $pkg['Homepage'] = parent::getXPathValue($sxe, '//homepage');
        $pkg['Description'] = nl2br(htmlspecialchars(trim(parent::getXPathValue($sxe, '//description'))));
        $pkg['Config script'] = strtoupper(parent::getXPathValue($sxe, '//configuration-script-language'));
        $installed_size = parent::getXPathValue($sxe, '//installed-size');
        $pkg['Installed Size'] = (!empty($installed_size)) ? parent::convertSize((int)$installed_size) : '';
        // License
        $pkg['License need agree'] = parent::getXPathValue($sxe, '//license/@must-accept');
        $pkg['License name'] = parent::getXPathValue($sxe, '//license/text/name'); // might be empty
        $pkg['License type'] = 'file'; // default type
        $pkg['License content'] = ''; // default license filename on local system
        $license_url = parent::getXPathValue($sxe, '//license/text/url');
        if(!empty($license_url))
        {
            $pkg['License type'] = 'url';
            $pkg['License content'] = htmlspecialchars($license_url);
        }
        else
        {
            $lic = @file_get_contents($this->interface_pkg_dir.'/'.$pkg['path'].'/LICENSE');
            $pkg['License content'] = htmlentities($lic, ENT_QUOTES, 'ISO-8859-1');
        }
        // Languages
        $languages = parent::getXPathValue($sxe, '//languages/language', true);
        $pkg['Languages'] = (is_array($languages)) ? implode(' ', $languages) : '';
        // Icon
        $icon = parent::getXPathValue($sxe, '//icon/@path');
        if(!empty($icon))
        {
            // Using parse_url() to filter malformed URLs
            $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'.
                    basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$icon);
        // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path
        $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path);
            $pkg['Icon'] = $path;
        }
        else $pkg['Icon'] = '';
        // Screenshots
        $screenshots = parent::getXPathValue($sxe, '//screenshot', true);
        if(!empty($screenshots))
        {
            foreach($screenshots as $screen)
            {
                // Using parse_url() to filter malformed URLs
                $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'.
                        basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$screen['path']);
        // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path
        $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path);
                $pkg['Screenshots'][] = array('ScreenPath' => $path,
                                              'ScreenDescription' => htmlspecialchars(trim((string)$screen->description)));
            }
        }
        else $pkg['Screenshots'] = ''; // if no screenshots are available, set the variable though
        // Changelog
        $changelog = parent::getXPathValue($sxe, '//changelog/version', true);
        if(!empty($changelog))
        {
            foreach($changelog as $change)
            {
                $entries = array();
                foreach($change->entry as $entry) $entries[] = htmlspecialchars(trim((string)$entry));
                $pkg['Changelog'][] = array('ChangelogVersion' => (string)$change['version'],
                                            'ChangelogDescription' => implode('<br />', $entries));
            }
        }
        else $pkg['Changelog'] = '';
        // PHP extensions
        $php_extensions = parent::getXPathValue($sxe, '//php:extension', true);
        $php_ext = '';
        if(!empty($php_extensions))
        {
            foreach($php_extensions as $extension)
            {
                if(strtolower($extension) == 'php') continue;
                $php_ext .= $extension.' ';
            }
        }
        $pkg['Requirements PHP extensions'] = trim($php_ext);
        // PHP bool options
        $pkg['Requirements PHP settings'] = '';
        $php_bool_options = array('allow-url-fopen', 'file-uploads', 'magic-quotes-gpc',
                                  'register-globals', 'safe-mode', 'short-open-tag');
        foreach($php_bool_options as $option)
        {
            $value = parent::getXPathValue($sxe, '//php:'.$option);
            if(!empty($value))
            {
                $option = str_replace('-', '_', $option);
                $value = str_replace(array('false', 'true'), array('off', 'on'), $value);
                $pkg['Requirements PHP settings'][] = array('PHPSettingName' => $option,
                                                            'PHPSettingValue' => $value);
            }
        }
        // PHP integer value settings
        $memory_limit = parent::getXPathValue($sxe, '//php:memory-limit');
        if(!empty($memory_limit))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'memory_limit',
                                                        'PHPSettingValue' => parent::convertSize((int)$memory_limit));
        $max_exec_time = parent::getXPathValue($sxe, '//php:max-execution-time');
        if(!empty($max_exec_time))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'max-execution-time',
                                                        'PHPSettingValue' => $max_exec_time);
        $post_max_size = parent::getXPathValue($sxe, '//php:post-max-size');
        if(!empty($post_max_size))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'post_max_size',
                                                        'PHPSettingValue' => parent::convertSize((int)$post_max_size));
        // Get supported PHP versions
        $pkg['Requirements Supported PHP versions'] = '';
        $php_min_version = parent::getXPathValue($sxe, '//php:version/@min');
        $php_max_not_including = parent::getXPathValue($sxe, '//php:version/@max-not-including');
        if(!empty($php_min_version) && !empty($php_max_not_including))
            $pkg['Requirements Supported PHP versions'] = $php_min_version.' - '.$php_max_not_including;
        else if(!empty($php_min_version))
            $pkg['Requirements Supported PHP versions'] = '> '.$php_min_version;
        else if(!empty($php_max_not_including))
            $pkg['Requirements Supported PHP versions'] = '< '.$php_min_version;
        // Database
        $db_id = parent::getXPathValue($sxe, '//db:id');
        $db_server_type = parent::getXPathValue($sxe, '//db:server-type');
        $db_min_version = parent::getXPathValue($sxe, '//db:server-min-version');
        if(!empty($db_id))
        {
            $db_server_type = str_replace('postgresql', 'PostgreSQL', $db_server_type);
            $db_server_type = str_replace('microsoft:sqlserver', 'MSSQL', $db_server_type);
            $db_server_type = str_replace('mysql', 'MySQL', $db_server_type);
            $pkg['Requirements Database'] = $db_server_type;
            if(!empty($db_min_version)) $pkg['Requirements Database'] .= ' > '.$db_min_version;
        }
        else $pkg['Requirements Database'] = '';
        return $pkg;
    }
}
?>
<?php
/*
Copyright (c) 2012, ISPConfig UG
Contributors: web wack creations,  http://www.web-wack.at
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of ISPConfig nor the names of its contributors
      may be used to endorse or promote products derived from this software without
      specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
require_once('aps_base.inc.php');
class ApsGUIController extends ApsBase
{
    /**
    * Constructor
    *
    * @param $app the application instance (db handle)
    */
    public function __construct($app)
    {
        parent::__construct($app);
    }
    /**
     * Reads in a package metadata file and registers it's namespaces
     *
     * @param $filename the file to read
     * @return $sxe a SimpleXMLElement handle
     */
    private function readInMetaFile($filename)
    {
        $metadata = file_get_contents($filename);
        $metadata = str_replace("xmlns=", "ns=", $metadata);
        $sxe = new SimpleXMLElement($metadata);
        $namespaces = $sxe->getDocNamespaces(true);
        foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url);
        return $sxe;
    }
    /**
     * Applies a RegEx pattern onto a location path in order to secure it against
     * code injections and invalid input
     *
     * @param $location_unfiltered the file path to secure
     * @return $location
     */
    private function secureLocation($location_unfiltered)
    {
        // Filter invalid slashes from string
        $location = preg_replace(array('#/+#', '#\.+#', '#\0+#', '#\\\\+#'),
                                 array('/', '', '', '/'),
                                 $location_unfiltered);
        // Remove a beginning or trailing slash
        if(substr($location, -1) == '/') $location = substr($location, 0, strlen($location) - 1);
        if(substr($location, 0, 1) == '/') $location = substr($location, 1);
        return $location;
    }
    /**
     * Gets the CustomerID (ClientID) which belongs to a specific domain
     *
     * @param $domain the domain
     * @return $customerid
     */
    private function getCustomerIDFromDomain($domain)
    {
        global $app;
        $customerid = 0;
        $customerdata = $app->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain
            WHERE web_domain.sys_groupid = sys_group.groupid
            AND web_domain.domain = '".$app->db->quote($domain)."';");
        if(!empty($customerdata)) $customerid = $customerdata['client_id'];
        return $customerid;
    }
    /**
     * Returns the server_id for an already installed instance. Is actually
     * just a little helper method to avoid redundant code
     *
     * @param $instanceid the instance to process
     * @return $webserver_id the server_id
     */
    private function getInstanceDataForDatalog($instanceid)
    {
        global $app;
        $webserver_id = '';
        $websrv = $app->db->queryOneRecord("SELECT server_id FROM web_domain
            WHERE domain = (SELECT value FROM aps_instances_settings
                WHERE name = 'main_domain' AND instance_id = ".$app->db->quote($instanceid).");");
        // If $websrv is empty, an error has occured. Domain no longer existing? Settings table damaged?
        // Anyhow, remove this instance record because it's not useful at all
        if(empty($websrv))
        {
            $app->db->query("DELETE FROM aps_instances WHERE id = ".$app->db->quote($instanceid).";");
            $app->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$app->db->quote($instanceid).";");
        }
        else $webserver_id = $websrv['server_id'];
        return $webserver_id;
    }
    /**
     * Finds out if there is a newer package version for
     * a given (possibly valid) package ID
     *
     * @param $id the ID to check
     * @return $newer_pkg_id the newer package ID
     */
    public function getNewestPackageID($id)
    {
        global $app;
        if(preg_match('/^[0-9]+$/', $id) != 1) return 0;
        $result = $app->db->queryOneRecord("SELECT id, name,
            CONCAT(version, '-', CAST(`release` AS CHAR)) AS current_version
            FROM aps_packages
            WHERE name = (SELECT name FROM aps_packages WHERE id = ".$app->db->quote($id).")
            ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC");
        if(!empty($result) && ($id != $result['id'])) return $result['id'];
        return 0;
    }
    /**
     * Validates a given package ID
     *
     * @param $id the ID to check
     * @param $is_admin a flag to allow locked IDs too (for admin calls)
     * @return boolean
     */
    public function isValidPackageID($id, $is_admin = false)
    {
        global $app;
         if(preg_match('/^[0-9]+$/', $id) != 1) return false;
         $sql_ext = (!$is_admin) ?
            'package_status = '.PACKAGE_ENABLED.' AND' :
            '(package_status = '.PACKAGE_ENABLED.' OR package_status = '.PACKAGE_LOCKED.') AND';
         $result = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$app->db->quote($id).";");
         if(!$result) return false;
         return true;
    }
    /**
     * Validates a given instance ID
     *
     * @param $id the ID to check
     * @param $client_id the calling client ID
     * @param $is_admin a flag to ignore the client ID check for admins
     * @return boolean
     */
    public function isValidInstanceID($id, $client_id, $is_admin = false)
    {
        global $app;
         if(preg_match('/^[0-9]+$/', $id) != 1) return false;
         // Only filter if not admin
         $sql_ext = (!$is_admin) ? 'customer_id = '.$app->db->quote($client_id).' AND' : '';
         $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$app->db->quote($id).';');
         if(!$result) return false;
         return true;
    }
    /**
     * Creates a new database record for the package instance and
     * an install task
     *
     * @param $settings the settings to enter into the DB
     * @param $packageid the PackageID
     */
    public function createPackageInstance($settings, $packageid)
    {
        global $app;
        $app->uses('tools_sites');
        $webserver_id = 0;
        $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$app->db->quote($settings['main_domain'])."';");
        if(!empty($websrv)) $webserver_id = $websrv['server_id'];
        $customerid = $this->getCustomerIDFromDomain($settings['main_domain']);
        if(empty($settings) || empty($webserver_id)) return false;
        //* Get server config of the web server
        $app->uses("getconf");
        $web_config = $app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web');
        //* Set PHP mode to php-fcgi and enable suexec in website on apache servers / set PHP mode to PHP-FPM on nginx servers
        if($web_config['server_type'] == 'apache') {
            if(($websrv['php'] != 'fast-cgi' || $websrv['suexec'] != 'y') && $websrv['php'] != 'php-fpm') {
                $app->db->datalogUpdate('web_domain', "php = 'fast-cgi', suexec = 'y'", 'domain_id', $websrv['domain_id']);
            }
        } else {
            // nginx
            if($websrv['php'] != 'php-fpm' && $websrv['php'] != 'fast-cgi') {
                $app->db->datalogUpdate('web_domain', "php = 'php-fpm'", 'domain_id', $websrv['domain_id']);
            }
        }
        //* Create the MySQL database for the application
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';');
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        $sxe = $this->readInMetaFile($metafile);
        $db_id = parent::getXPathValue($sxe, '//db:id');
        if (!empty($db_id)) {
            $global_config = $app->getconf->get_global_config('sites');
            $tmp = array();
            $tmp['parent_domain_id'] = $websrv['domain_id'];
            $tmp['sys_groupid'] = $websrv['sys_groupid'];
            $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp);
            $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp);
            unset($tmp);
            // get information if the webserver is a db server, too
            $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id  = ".$websrv['server_id']);
            if($web_server['db_server'] == 1) {
                // create database on "localhost" (webserver)
                $mysql_db_server_id = $websrv['server_id'];
                $mysql_db_host = 'localhost';
                $mysql_db_remote_access = 'n';
                $mysql_db_remote_ips = '';
            } else {
                //* get the default database server of the client
                $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".$websrv['sys_groupid']);
                if(is_array($client) && $client['default_dbserver'] > 0 && $client['default_dbserver'] != $websrv['server_id']) {
                    $mysql_db_server_id =  $client['default_dbserver'];
                    $dbserver_config = $web_config = $app->getconf->get_server_config($app->functions->intval($mysql_db_server_id),'server');
                    $mysql_db_host = $dbserver_config['ip_address'];
                    $mysql_db_remote_access = 'y';
                    $webserver_config = $app->getconf->get_server_config($app->functions->intval($websrv['server_id']),'server');
                    $mysql_db_remote_ips = $webserver_config['ip_address'];
                } else {
                    /* I left this in place for a fallback that should NEVER! happen.
                     * if we reach this point it means that there is NO default db server for the client
                     * AND the webserver has NO db service enabled.
                     * We have to abort the aps installation here... so I added a return false
                     * although this does not present any error message to the user.
                     */
                    return false;
                    /*$mysql_db_server_id = $websrv['server_id'];
                    $mysql_db_host = 'localhost';
                    $mysql_db_remote_access = 'n';
                    $mysql_db_remote_ips = '';*/
                }
            }
            //* Find a free db name for the app
            for($n = 1; $n <= 1000; $n++) {
                $mysql_db_name = ($dbname_prefix != '' ? $dbname_prefix.'aps'.$n : uniqid('aps'));
                $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = '".$app->db->quote($mysql_db_name)."'");
                if($tmp['number'] == 0) break;
            }
            //* Find a free db username for the app
            for($n = 1; $n <= 1000; $n++) {
                $mysql_db_user = ($dbuser_prefix != '' ? $dbuser_prefix.'aps'.$n : uniqid('aps'));
                $tmp = $app->db->queryOneRecord("SELECT count(database_user_id) as number FROM web_database_user WHERE database_user = '".$app->db->quote($mysql_db_user)."'");
                if($tmp['number'] == 0) break;
            }
            $mysql_db_password = $settings['main_database_password'];
            //* Create the mysql database user
            $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `database_user`, `database_user_prefix`, `database_password`)
                      VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', 0, '$mysql_db_user', '".$app->db->quote($dbuser_prefix) . "', PASSWORD('$mysql_db_password'))";
            $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id');
            //* Create the mysql database
            $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `parent_domain_id`, `type`, `database_name`, `database_name_prefix`, `database_user_id`, `database_ro_user_id`, `database_charset`, `remote_access`, `remote_ips`, `backup_copies`, `active`, `backup_interval`)
                      VALUES( ".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', $mysql_db_server_id, ".$websrv['domain_id'].", 'mysql', '$mysql_db_name', '" . $app->db->quote($dbname_prefix) . "', '$mysql_db_user_id', 0, '', '$mysql_db_remote_access', '$mysql_db_remote_ips', ".$websrv['backup_copies'].", 'y', '".$websrv['backup_interval']."')";
            $app->db->datalogInsert('web_database', $insert_data, 'database_id');
            //* Add db details to package settings
            $settings['main_database_host'] = $mysql_db_host;
            $settings['main_database_name'] = $mysql_db_name;
            $settings['main_database_login'] = $mysql_db_user;
        }
        //* Insert new package instance
        $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")";
        $InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id');
        //* Insert all package settings
        if(is_array($settings)) {
            foreach($settings as $key => $value) {
                $insert_data = "(server_id, instance_id, name, value) VALUES (".$app->db->quote($webserver_id).",".$app->db->quote($InstanceID).", '".$app->db->quote($key)."', '".$app->db->quote($value)."')";
                $app->db->datalogInsert('aps_instances_settings', $insert_data, 'id');
            }
        }
        //* Set package status to install afetr we inserted the settings
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $InstanceID);
    }
    /**
     * Sets the status of an instance to "should be removed" and creates a
     * datalog entry to give the ISPConfig server a real removal advice
     *
     * @param $instanceid the instance to delete
     */
    public function deleteInstance($instanceid)
    {
        global $app;
        /*
        $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";");
        $webserver_id = $this->getInstanceDataForDatalog($instanceid);
        if($webserver_id == '') return;
        // Create a sys_datalog entry for deletion
        $datalog = array('Instance_id' => $instanceid, 'server_id' => $webserver_id);
        $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog);
        */
        $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
        $tmp = $app->db->queryOneRecord($sql);
        if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
        $database_user = $tmp['database_user_id'];
        $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'");
        if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user);
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid);
    }
    /**
     * Sets the status of an instance to "installation planned" and creates a
     * datalog entry to re-install the package. The existing package is simply overwritten.
     *
     * @param $instanceid the instance to delete
     */
    public function reinstallInstance($instanceid)
    {
        global $app;
        /*
        $app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";");
        $webserver_id = $this->getInstanceDataForDatalog($instanceid);
        if($webserver_id == '') return;
        // Create a sys_datalog entry for re-installation
        $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id);
        $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog);
        */
        $sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value =  aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
        $tmp = $app->db->queryOneRecord($sql);
        if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
        $app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid);
    }
    /**
     * Read the settings to be filled when installing
     *
     * @param $id the internal ID of the package
     * @return array
     */
    public function getPackageSettings($id)
    {
        global $app;
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
        // Load in meta file if existing and register its namespaces
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        if(!file_exists($metafile))
            return array('error' => 'The metafile for '.$settings['Name'].' couldn\'t be found');
        $sxe = $this->readInMetaFile($metafile);
        $groupsettings = parent::getXPathValue($sxe, '//settings/group/setting', true);
        if(empty($groupsettings)) return array();
        $settings = array();
        foreach($groupsettings as $setting)
        {
            $setting_id = strval($setting['id']);
            if($setting['type'] == 'string' || $setting['type'] == 'email' || $setting['type'] == 'integer'
            || $setting['type'] == 'float' || $setting['type'] == 'domain-name')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => $setting['type'],
                                    'SettingInputType' => 'string',
                                    'SettingDefaultValue' => strval($setting['default-value']),
                                    'SettingRegex' => $setting['regex'],
                                    'SettingMinLength' => $setting['min-length'],
                                    'SettingMaxLength' => $setting['max-length']);
            }
            else if($setting['type'] == 'password')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => 'password',
                                    'SettingInputType' => 'password',
                                    'SettingDefaultValue' => '',
                                    'SettingRegex' => $setting['regex'],
                                    'SettingMinLength' => $setting['min-length'],
                                    'SettingMaxLength' => $setting['max-length']);
            }
            else if($setting['type'] == 'boolean')
            {
                $settings[] = array('SettingID' => $setting_id,
                                    'SettingName' => $setting->name,
                                    'SettingDescription' => $setting->description,
                                    'SettingType' => 'boolean',
                                    'SettingInputType' => 'checkbox',
                                    'SettingDefaultValue' => strval($setting['default-value']));
            }
            else if($setting['type'] == 'enum')
            {
              $choices = array();
              foreach($setting->choice as $choice)
              {
                $choices[] = array('EnumID' => strval($choice['id']),
                                   'EnumName' => $choice->name);
              }
              $settings[] = array('SettingID' => $setting_id,
                                  'SettingName' => $setting->name,
                                  'SettingDescription' => $setting->description,
                                  'SettingType' => 'enum',
                                  'SettingInputType' => 'select',
                                  'SettingDefaultValue' => strval($setting['default-value']),
                                  'SettingChoices' => $choices);
            }
        }
        return $settings;
    }
    /**
     * Validates the user input according to the settings array and
     * delivers errors if occurring
     *
     * @param $input the user $_POST array
     * @param $pkg_details the package details
     * @param $settings the package settings array
     * @return array in this structure:
     *               array(2) {
     *                  ["input"]=> ...
     *                  ["errors"]=> ...
     *               }
     */
    public function validateInstallerInput($postinput, $pkg_details, $domains, $settings = array())
    {
        global $app;
        $ret = array();
        $input = array();
        $error = array();
        // Main domain (obligatory)
        if(isset($postinput['main_domain']))
        {
            if(!in_array($postinput['main_domain'], $domains)) $error[] = $app->lng('error_main_domain');
            else $input['main_domain'] = $postinput['main_domain'];
        }
        else $error[] = $app->lng('error_main_domain');
        // Main location (not obligatory but must be supplied)
        if(isset($postinput['main_location']))
        {
            $temp_errstr = '';
            // It can be empty but if the user did write something, check it
            $userinput = false;
            if(strlen($postinput['main_location']) > 0) $userinput = true;
            // Filter invalid input slashes (twice!)
            $main_location = $this->secureLocation($postinput['main_location']);
            $main_location = $this->secureLocation($main_location);
            // Only allow digits, words, / and -
            $main_location = preg_replace("/[^\d\w\/\-]/i", "", $main_location);
            if($userinput && (strlen($main_location) == 0)) $temp_errstr = $app->lng('error_inv_main_location');
            // Find out document_root and make sure no apps are installed twice to one location
            if(in_array($postinput['main_domain'], $domains))
            {
                $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain
                    WHERE domain = '".$app->db->quote($postinput['main_domain'])."';");
                $new_path = $docroot['document_root'];
                if(substr($new_path, -1) != '/') $new_path .= '/';
                $new_path .= $main_location;
                // Get the $customerid which belongs to the selected domain
                $customerid = $this->getCustomerIDFromDomain($postinput['main_domain']);
                // First get all domains used for an install, then their loop them
                // and get the corresponding document roots as well as the defined
                // locations. If an existing doc_root + location matches with the
                // new one -> error
                $instance_domains = $app->db->queryAllRecords("SELECT instance_id, s.value AS domain
                    FROM aps_instances AS i, aps_instances_settings AS s
                    WHERE i.id = s.instance_id AND s.name = 'main_domain'
                        AND i.customer_id = '".$app->db->quote($customerid)."';");
                for($i = 0; $i < count($instance_domains); $i++)
                {
                    $used_path = '';
                    $doc_root = $app->db->queryOneRecord("SELECT document_root FROM web_domain
                        WHERE domain = '".$app->db->quote($instance_domains[$i]['domain'])."';");
                    // Probably the domain settings were changed later, so make sure the doc_root
                    // is not empty for further validation
                    if(!empty($doc_root))
                    {
                        $used_path = $doc_root['document_root'];
                        if(substr($used_path, -1) != '/') $used_path .= '/';
                        $location_for_domain = $app->db->queryOneRecord("SELECT value
                            FROM aps_instances_settings WHERE name = 'main_location'
                            AND instance_id = '".$app->db->quote($instance_domains[$i]['instance_id'])."';");
                        // The location might be empty but the DB return must not be false!
                        if($location_for_domain) $used_path .= $location_for_domain['value'];
                        if($new_path == $used_path)
                        {
                            $temp_errstr = $app->lng('error_used_location');
                            break;
                        }
                    }
                }
            }
            else $temp_errstr = $app->lng('error_main_domain');
            if($temp_errstr == '') $input['main_location'] = htmlspecialchars($main_location);
            else $error[] = $temp_errstr;
        }
        else $error[] = $app->lng('error_no_main_location');
        // License (the checkbox must be set)
        if(isset($pkg_details['License need agree'])
        && $pkg_details['License need agree'] == 'true')
        {
            if(isset($postinput['license']) && $postinput['license'] == 'on') $input['license'] = 'true';
            else $error[] = $app->lng('error_license_agreement');
        }
        // Database
        if(isset($pkg_details['Requirements Database'])
        && $pkg_details['Requirements Database'] != '')
        {
            if(isset($postinput['main_database_password']))
            {
                if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw');
                else if(strlen($postinput['main_database_password']) > 8)
                    $input['main_database_password'] = htmlspecialchars($postinput['main_database_password']);
                else $error[] = $app->lng('error_short_database_pw');
            }
            else $error[] = $app->lng('error_no_database_pw');
        }
        // Validate the package settings
        foreach($settings as $setting)
        {
            $temp_errstr = '';
            $setting_id = strval($setting['SettingID']);
            // We assume that every setting must be set
            if((isset($postinput[$setting_id]) && ($postinput[$setting_id] != ''))
            || ($setting['SettingType'] == 'boolean'))
            {
                if($setting['SettingType'] == 'string' || $setting['SettingType'] == 'password')
                {
                    if($app->functions->intval($setting['SettingMinLength'], true) != 0
                    && strlen($postinput[$setting_id]) < $app->functions->intval($setting['SettingMinLength'], true))
                        $temp_errstr = sprintf($app->lng('error_short_value_for'), $setting['setting_name']);
                    if($app->functions->intval($setting['SettingMaxLength'], true) != 0
                    && strlen($postinput[$setting_id]) > $app->functions->intval($setting['SettingMaxLength'], true))
                        $temp_errstr = sprintf($app->lng('error_long_value_for'), $setting['setting_name']);
                    if(isset($setting['SettingRegex'])
                    && !preg_match("/".$setting['SettingRegex']."/", $postinput[$setting_id]))
                        $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'email')
                {
                    if(filter_var(strtolower($postinput[$setting_id]), FILTER_VALIDATE_EMAIL) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_email_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'domain-name')
                {
                    if(!preg_match("^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$",
                        $postinput[$setting_id]))
                    $temp_errstr = sprintf($app->lng('error_inv_domain_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'integer')
                {
                    if(filter_var($postinput[$setting_id], FILTER_VALIDATE_INT) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_integer_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'float')
                {
                    if(filter_var($postinput[$setting_id], FILTER_VALIDATE_FLOAT) === false)
                        $temp_errstr = sprintf($app->lng('error_inv_float_for'), $setting['setting_name']);
                }
                else if($setting['SettingType'] == 'boolean')
                {
                    // If we have a boolean value set, it must be either true or false
                    if(!isset($postinput[$setting_id])) $postinput[$setting_id] = 'false';
                    else if(isset($postinput[$setting_id]) && $postinput[$setting_id] != 'true')
                        $postinput[$setting_id] = 'true';
                }
                else if($setting['SettingType'] == 'enum')
                {
                    $found = false;
                    for($i = 0; $i < count($setting['SettingChoices']); $i++)
                    {
                        if($setting['SettingChoices'][$i]['EnumID'] == $postinput[$setting_id])
                            $found = true;
                    }
                    if(!$found) $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['SettingName']);
                }
                if($temp_errstr == '') $input[$setting_id] = $postinput[$setting_id];
                else $error[] = $temp_errstr;
            }
            else $error[] = sprintf($app->lng('error_no_value_for'), $setting['SettingName']);
        }
        $ret['input'] = $input;
        $ret['error'] = array_unique($error);
        return $ret;
    }
    /**
     * Read the metadata of a package and returns some content
     *
     * @param $id the internal ID of the package
     * @return array
     */
    public function getPackageDetails($id)
    {
        global $app;
        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
        // Load in meta file if existing and register its namespaces
        $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
        if(!file_exists($metafile))
            return array('error' => 'The metafile for '.$pkg['name'].' couldn\'t be found');
        $metadata = file_get_contents($metafile);
        $metadata = str_replace("xmlns=", "ns=", $metadata);
        $sxe = new SimpleXMLElement($metadata);
        $namespaces = $sxe->getDocNamespaces(true);
        foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url);
        $pkg['Summary'] = htmlspecialchars(parent::getXPathValue($sxe, '//summary'));
        $pkg['Homepage'] = parent::getXPathValue($sxe, '//homepage');
        $pkg['Description'] = nl2br(htmlspecialchars(trim(parent::getXPathValue($sxe, '//description'))));
        $pkg['Config script'] = strtoupper(parent::getXPathValue($sxe, '//configuration-script-language'));
        $installed_size = parent::getXPathValue($sxe, '//installed-size');
        $pkg['Installed Size'] = (!empty($installed_size)) ? parent::convertSize((int)$installed_size) : '';
        // License
        $pkg['License need agree'] = parent::getXPathValue($sxe, '//license/@must-accept');
        $pkg['License name'] = parent::getXPathValue($sxe, '//license/text/name'); // might be empty
        $pkg['License type'] = 'file'; // default type
        $pkg['License content'] = ''; // default license filename on local system
        $license_url = parent::getXPathValue($sxe, '//license/text/url');
        if(!empty($license_url))
        {
            $pkg['License type'] = 'url';
            $pkg['License content'] = htmlspecialchars($license_url);
        }
        else
        {
            $lic = @file_get_contents($this->interface_pkg_dir.'/'.$pkg['path'].'/LICENSE');
            $pkg['License content'] = htmlentities($lic, ENT_QUOTES, 'ISO-8859-1');
        }
        // Languages
        $languages = parent::getXPathValue($sxe, '//languages/language', true);
        $pkg['Languages'] = (is_array($languages)) ? implode(' ', $languages) : '';
        // Icon
        $icon = parent::getXPathValue($sxe, '//icon/@path');
        if(!empty($icon))
        {
            // Using parse_url() to filter malformed URLs
            $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'.
                    basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$icon);
        // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path
        $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path);
            $pkg['Icon'] = $path;
        }
        else $pkg['Icon'] = '';
        // Screenshots
        $screenshots = parent::getXPathValue($sxe, '//screenshot', true);
        if(!empty($screenshots))
        {
            foreach($screenshots as $screen)
            {
                // Using parse_url() to filter malformed URLs
                $path = dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)).'/'.
                        basename($this->interface_pkg_dir).'/'.$pkg['path'].'/'.basename((string)$screen['path']);
        // nginx: if $_SERVER['PHP_SELF'] is doubled, remove /sites/aps_packagedetails_show.php from beginning of path
        $path = preg_replace('@^/sites/aps_packagedetails_show.php(.*)@', '$1', $path);
                $pkg['Screenshots'][] = array('ScreenPath' => $path,
                                              'ScreenDescription' => htmlspecialchars(trim((string)$screen->description)));
            }
        }
        else $pkg['Screenshots'] = ''; // if no screenshots are available, set the variable though
        // Changelog
        $changelog = parent::getXPathValue($sxe, '//changelog/version', true);
        if(!empty($changelog))
        {
            foreach($changelog as $change)
            {
                $entries = array();
                foreach($change->entry as $entry) $entries[] = htmlspecialchars(trim((string)$entry));
                $pkg['Changelog'][] = array('ChangelogVersion' => (string)$change['version'],
                                            'ChangelogDescription' => implode('<br />', $entries));
            }
        }
        else $pkg['Changelog'] = '';
        // PHP extensions
        $php_extensions = parent::getXPathValue($sxe, '//php:extension', true);
        $php_ext = '';
        if(!empty($php_extensions))
        {
            foreach($php_extensions as $extension)
            {
                if(strtolower($extension) == 'php') continue;
                $php_ext .= $extension.' ';
            }
        }
        $pkg['Requirements PHP extensions'] = trim($php_ext);
        // PHP bool options
        $pkg['Requirements PHP settings'] = '';
        $php_bool_options = array('allow-url-fopen', 'file-uploads', 'magic-quotes-gpc',
                                  'register-globals', 'safe-mode', 'short-open-tag');
        foreach($php_bool_options as $option)
        {
            $value = parent::getXPathValue($sxe, '//php:'.$option);
            if(!empty($value))
            {
                $option = str_replace('-', '_', $option);
                $value = str_replace(array('false', 'true'), array('off', 'on'), $value);
                $pkg['Requirements PHP settings'][] = array('PHPSettingName' => $option,
                                                            'PHPSettingValue' => $value);
            }
        }
        // PHP integer value settings
        $memory_limit = parent::getXPathValue($sxe, '//php:memory-limit');
        if(!empty($memory_limit))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'memory_limit',
                                                        'PHPSettingValue' => parent::convertSize((int)$memory_limit));
        $max_exec_time = parent::getXPathValue($sxe, '//php:max-execution-time');
        if(!empty($max_exec_time))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'max-execution-time',
                                                        'PHPSettingValue' => $max_exec_time);
        $post_max_size = parent::getXPathValue($sxe, '//php:post-max-size');
        if(!empty($post_max_size))
            $pkg['Requirements PHP settings'][] = array('PHPSettingName' => 'post_max_size',
                                                        'PHPSettingValue' => parent::convertSize((int)$post_max_size));
        // Get supported PHP versions
        $pkg['Requirements Supported PHP versions'] = '';
        $php_min_version = parent::getXPathValue($sxe, '//php:version/@min');
        $php_max_not_including = parent::getXPathValue($sxe, '//php:version/@max-not-including');
        if(!empty($php_min_version) && !empty($php_max_not_including))
            $pkg['Requirements Supported PHP versions'] = $php_min_version.' - '.$php_max_not_including;
        else if(!empty($php_min_version))
            $pkg['Requirements Supported PHP versions'] = '> '.$php_min_version;
        else if(!empty($php_max_not_including))
            $pkg['Requirements Supported PHP versions'] = '< '.$php_min_version;
        // Database
        $db_id = parent::getXPathValue($sxe, '//db:id');
        $db_server_type = parent::getXPathValue($sxe, '//db:server-type');
        $db_min_version = parent::getXPathValue($sxe, '//db:server-min-version');
        if(!empty($db_id))
        {
            $db_server_type = str_replace('postgresql', 'PostgreSQL', $db_server_type);
            $db_server_type = str_replace('microsoft:sqlserver', 'MSSQL', $db_server_type);
            $db_server_type = str_replace('mysql', 'MySQL', $db_server_type);
            $pkg['Requirements Database'] = $db_server_type;
            if(!empty($db_min_version)) $pkg['Requirements Database'] .= ' > '.$db_min_version;
        }
        else $pkg['Requirements Database'] = '';
        return $pkg;
    }
}
?>
interface/lib/classes/client_templates.inc.php
@@ -9,7 +9,94 @@
 
class client_templates {
    function apply_client_templates($clientId) {
    /**
     *  - check for old-style templates and change to new style
     *  - update assigned templates
     */
    function update_client_templates($clientId, $templates = array()) {
        global $app, $conf;
        if(!is_array($templates)) return false;
        $new_tpl = array();
        $used_assigned = array();
        $needed_types = array();
        $old_style = true;
        foreach($templates as $item) {
            $item = trim($item);
            if($item == '') continue;
            $tpl_id = 0;
            $assigned_id = 0;
            if(strpos($item, ':') === false) {
                $tpl_id = $item;
            } else {
                $old_style = false; // has new-style assigns
                list($assigned_id, $tpl_id) = explode(':', $item, 2);
                if(substr($assigned_id, 0, 1) === 'n') $assigned_id = 0; // newly inserted items
            }
            if(array_key_exists($tpl_id, $needed_types) == false) $needed_types[$tpl_id] = 0;
            $needed_types[$tpl_id]++;
            if($assigned_id > 0) {
                $used_assigned[] = $assigned_id; // for comparison with database
            } else {
                $new_tpl[] = $tpl_id;
            }
        }
        if($old_style == true) {
            // we have to take care of this in an other way
            $in_db = $app->db->queryAllRecords('SELECT `assigned_template_id`, `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $clientId);
            if(is_array($in_db) && count($in_db) > 0) {
                foreach($in_db as $item) {
                    if(array_key_exists($item['client_template_id'], $needed_types) == false) $needed_types[$item['client_template_id']] = 0;
                    $needed_types[$item['client_template_id']]--;
                }
            }
            foreach($needed_types as $tpl_id => $count) {
                if($count > 0) {
                    // add new template to client (includes those from old-style without assigned_template_id)
                    for($i = $count; $i > 0; $i--) {
                        $app->db->query('INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (' . $clientId . ', ' . $tpl_id . ')');
                    }
                } elseif($count < 0) {
                    // remove old ones
                    for($i = $count; $i < 0; $i++) {
                        $app->db->query('DELETE FROM `client_template_assigned` WHERE client_id = ' . $clientId . ' AND client_template_id = ' . $tpl_id . ' LIMIT 1');
                    }
                }
            }
        } else {
            // we have to take care of this in an other way
            $in_db = $app->db->queryAllRecords('SELECT `assigned_template_id`, `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $clientId);
            if(is_array($in_db) && count($in_db) > 0) {
                // check which templates were removed from this client
                foreach($in_db as $item) {
                    if(in_array($item['assigned_template_id'], $used_assigned) == false) {
                        // delete this one
                        $app->db->query('DELETE FROM `client_template_assigned` WHERE `assigned_template_id` = ' . $item['assigned_template_id']);
                    }
                }
            }
            if(count($new_tpl) > 0) {
                foreach($new_tpl as $item) {
                    // add new template to client (includes those from old-style without assigned_template_id)
                    $app->db->query('INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (' . $clientId . ', ' . $item . ')');
                }
            }
        }
        unset($new_tpl);
        unset($in_db);
        unset($templates);
        unset($used_assigned);
        return true;
    }
    function apply_client_templates($clientId) {
        global $app;
        
        include('../client/form/client.tform.php');
@@ -20,8 +107,14 @@
        $sql = "SELECT template_master, template_additional FROM client WHERE client_id = " . $app->functions->intval($clientId);
        $record = $app->db->queryOneRecord($sql);
        $masterTemplateId = $record['template_master'];
        $additionalTemplateStr = $record['template_additional'];
        if($record['template_additional'] != '') {
            // we have to call the update_client_templates function
            $templates = explode('/', $record['template_additional']);
            $this->update_client_templates($clientId, $templates);
            $app->db->query('UPDATE `client` SET `template_additional` = \'\' WHERE `client_id` = ' . $app->functions->intval($clientId));
        }
        /*
         * if the master-Template is custom there is NO changing
         */
@@ -40,82 +133,82 @@
         * if != -1)
         */
        $addTpl = explode('/', $additionalTemplateStr);
        foreach ($addTpl as $item){
            if (trim($item) != ''){
                $sql = "SELECT * FROM client_template WHERE template_id = " . $app->functions->intval($item);
                $addLimits = $app->db->queryOneRecord($sql);
                $app->log('Template processing subtemplate ' . $item . ' for client ' . $clientId, LOGLEVEL_DEBUG);
                /* maybe the template is deleted in the meantime */
                if (is_array($addLimits)){
                    foreach($addLimits as $k => $v){
                        /* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */
                        if (strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){
                            $app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG);
        $addTpls = $app->db->queryAllRecords('SELECT `client_template_id` FROM `client_template_assigned` WHERE `client_id` = ' . $app->functions->intval($clientId));
        foreach ($addTpls as $addTpl){
            $item = $addTpl['client_template_id'];
            $sql = "SELECT * FROM client_template WHERE template_id = " . $app->functions->intval($item);
            $addLimits = $app->db->queryOneRecord($sql);
            $app->log('Template processing subtemplate ' . $item . ' for client ' . $clientId, LOGLEVEL_DEBUG);
            /* maybe the template is deleted in the meantime */
            if (is_array($addLimits)){
                foreach($addLimits as $k => $v){
                    /* we can remove this condition, but it is easier to debug with it (don't add ids and other non-limit values) */
                    if (strpos($k, 'limit') !== false or $k == 'ssh_chroot' or $k == 'web_php_options' or $k == 'force_suexec'){
                        $app->log('Template processing key ' . $k . ' for client ' . $clientId, LOGLEVEL_DEBUG);
                            /* process the numerical limits */
                            if (is_numeric($v)){
                                /* switch for special cases */
                                switch ($k){
                                case 'limit_cron_frequency':
                                    if ($v < $limits[$k]) $limits[$k] = $v;
                                    /* silent adjustment of the minimum cron frequency to 1 minute */
                                    /* maybe this control test should be done via validator definition in tform.php file, but I don't know how */
                                    if ($limits[$k] < 1) $limits[$k] = 1;
                                break;
                        /* process the numerical limits */
                        if (is_numeric($v)){
                            /* switch for special cases */
                            switch ($k){
                            case 'limit_cron_frequency':
                                if ($v < $limits[$k]) $limits[$k] = $v;
                                /* silent adjustment of the minimum cron frequency to 1 minute */
                                /* maybe this control test should be done via validator definition in tform.php file, but I don't know how */
                                if ($limits[$k] < 1) $limits[$k] = 1;
                            break;
                                default:
                                    if ($limits[$k] > -1){
                                        if ($v == -1){
                                            $limits[$k] = -1;
                                        }
                                        else {
                                            $limits[$k] += $v;
                                        }
                            default:
                                if ($limits[$k] > -1){
                                    if ($v == -1){
                                        $limits[$k] = -1;
                                    }
                                    else {
                                        $limits[$k] += $v;
                                    }
                                }
                            }
                            /* process the string limits (CHECKBOXARRAY, SELECT etc.) */
                            elseif (is_string($v)){
                                switch ($form["tabs"]["limits"]["fields"][$k]['formtype']){
                                case 'CHECKBOXARRAY':
                                    if (!isset($limits[$k])){
                                        $limits[$k] = array();
                                    }
                                    $limits_values = $limits[$k];
                                    if (is_string($limits[$k])){
                                        $limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits[$k]);
                                    }
                                    $additional_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$v);
                                    $app->log('Template processing key ' . $k . ' type CHECKBOXARRAY, lim / add: ' . implode(',', $limits_values) . ' / ' . implode(',', $additional_values) . ' for client ' . $clientId, LOGLEVEL_DEBUG);
                                    /* unification of limits_values (master template) and additional_values (additional template) */
                                    $limits_unified = array();
                                    foreach($form["tabs"]["limits"]["fields"][$k]["value"] as $key => $val){
                                        if (in_array($key,$limits_values) || in_array($key,$additional_values)) $limits_unified[] = $key;
                                    }
                                    $limits[$k] = implode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits_unified);
                                break;
                                case 'CHECKBOX':
                                    if($k == 'force_suexec') {
                                        // 'n' is less limited than y
                                        if (!isset($limits[$k])){
                                            $limits[$k] = 'y';
                                        }
                                        if($limits[$k] == 'n' || $v == 'n') $limits[$k] = 'n';
                                    } else {
                                        // 'y' is less limited than n
                                        if (!isset($limits[$k])){
                                            $limits[$k] = 'n';
                                        }
                                        if($limits[$k] == 'y' || $v == 'y') $limits[$k] = 'y';
                                    }
                                break;
                                case 'SELECT':
                                    $limit_values = array_keys($form["tabs"]["limits"]["fields"][$k]["value"]);
                                    /* choose the lower index of the two SELECT items */
                                    $limits[$k] = $limit_values[min(array_search($limits[$k], $limit_values), array_search($v, $limit_values))];
                                break;
                        }
                        /* process the string limits (CHECKBOXARRAY, SELECT etc.) */
                        elseif (is_string($v)){
                            switch ($form["tabs"]["limits"]["fields"][$k]['formtype']){
                            case 'CHECKBOXARRAY':
                                if (!isset($limits[$k])){
                                    $limits[$k] = array();
                                }
                                $limits_values = $limits[$k];
                                if (is_string($limits[$k])){
                                    $limits_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits[$k]);
                                }
                                $additional_values = explode($form["tabs"]["limits"]["fields"][$k]["separator"],$v);
                                $app->log('Template processing key ' . $k . ' type CHECKBOXARRAY, lim / add: ' . implode(',', $limits_values) . ' / ' . implode(',', $additional_values) . ' for client ' . $clientId, LOGLEVEL_DEBUG);
                                /* unification of limits_values (master template) and additional_values (additional template) */
                                $limits_unified = array();
                                foreach($form["tabs"]["limits"]["fields"][$k]["value"] as $key => $val){
                                    if (in_array($key,$limits_values) || in_array($key,$additional_values)) $limits_unified[] = $key;
                                }
                                $limits[$k] = implode($form["tabs"]["limits"]["fields"][$k]["separator"],$limits_unified);
                            break;
                            case 'CHECKBOX':
                                if($k == 'force_suexec') {
                                    // 'n' is less limited than y
                                    if (!isset($limits[$k])){
                                        $limits[$k] = 'y';
                                    }
                                    if($limits[$k] == 'n' || $v == 'n') $limits[$k] = 'n';
                                } else {
                                    // 'y' is less limited than n
                                    if (!isset($limits[$k])){
                                        $limits[$k] = 'n';
                                    }
                                    if($limits[$k] == 'y' || $v == 'y') $limits[$k] = 'y';
                                }
                            break;
                            case 'SELECT':
                                $limit_values = array_keys($form["tabs"]["limits"]["fields"][$k]["value"]);
                                /* choose the lower index of the two SELECT items */
                                $limits[$k] = $limit_values[min(array_search($limits[$k], $limit_values), array_search($v, $limit_values))];
                            break;
                            }
                        }
                    }
interface/lib/classes/listform.inc.php
@@ -193,11 +193,15 @@
    public function getPagingSQL($sql_where = '1') 
    {
        global $app, $conf;
        //* Add Global Limit from selectbox
        if(!empty($_POST['search_limit']) AND $app->functions->intval($_POST['search_limit'])){
        //* Add Global Limit from selectbox
        if(!empty($_POST['search_limit']) AND $app->functions->intval($_POST['search_limit']) > 0){
            $_SESSION['search']['limit'] = $app->functions->intval($_POST['search_limit']);
        }
        if(preg_match('{^[0-9]$}',$_SESSION['search']['limit'])){
            $_SESSION['search']['limit'] = 15;
        }
        //* Get Config variables
        $list_name          = $this->listDef['name'];
interface/lib/classes/plugin_backuplist.inc.php
@@ -55,6 +55,12 @@
                if(isset($_GET['backup_action'])) {
                    $backup_id = $app->functions->intval($_GET['backup_id']);
                    
                    //* check if the user is  owner of the parent domain
                    $domain_backup = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_backup WHERE backup_id = ".$backup_id);
                    if(!$app->tform->checkOwnerPermisssions($this->dataRecord["parent_domain_id"])){
                        $app->error($app->tform->lng('no_domain_perm'));
                    }
                    if($_GET['backup_action'] == 'download' && $backup_id > 0) {
                        $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = 'backup_download' AND action_param = '$backup_id'";
                        $tmp = $app->db->queryOneRecord($sql);
interface/lib/classes/remoting.inc.php
@@ -1103,7 +1103,40 @@
        }
        $app->uses('remoting_lib');
        $app->remoting_lib->loadFormDef('../client/form/client.tform.php');
        return $app->remoting_lib->getDataRecord($client_id);
        $data = $app->remoting_lib->getDataRecord($client_id);
        // we need to get the new-style templates for backwards-compatibility - maybe we remove this in a later version
        if(is_array($data) && count($data) > 0) {
            if(isset($data['client_id'])) {
                // this is a single record
                if($data['template_additional'] == '') {
                    $tpls = $app->db->queryAllRecords('SELECT CONCAT(`assigned_template_id`, \':\', `client_template_id`) as `item` FROM `client_template_assigned` WHERE `client_id` = ' . $data['client_id']);
                    $tpl_arr = array();
                    if($tpls) {
                        foreach($tpls as $tpl) $tpl_arr[] = $tpl['item'];
                    }
                    $data['template_additional'] = implode('/', $tpl_arr);
                    unset($tpl_arr);
                    unset($tpls);
                }
            } elseif(isset($data[0]['client_id'])) {
                // multiple client records
                foreach($data as $index => $client) {
                    if($client['template_additional'] == '') {
                        $tpls = $app->db->queryAllRecords('SELECT CONCAT(`assigned_template_id`, \':\', `client_template_id`) as `item` FROM `client_template_assigned` WHERE `client_id` = ' . $client['client_id']);
                        $tpl_arr = array();
                        if($tpls) {
                            foreach($tpls as $tpl) $tpl_arr[] = $tpl['item'];
                        }
                        $data[$index]['template_additional'] = implode('/', $tpl_arr); // dont use the $client array here - changes would not be returned to soap
                    }
                    unset($tpl_arr);
                    unset($tpls);
                }
            }
        }
        return $data;
    }
    
    public function client_get_id($session_id, $sys_userid)
@@ -1169,6 +1202,33 @@
                    $this->server->fault('permission_denied','You do not have the permissions to access this function.');
                    return false;
            }
            $app->uses('remoting_lib');
            $app->remoting_lib->loadFormDef('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php');
            $old_rec = $app->remoting_lib->getDataRecord($client_id);
            // we need the previuos templates assigned here
            $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id);
            if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) {
                // check previous type of storing templates
                $tpls = explode('/', $old_rec['template_additional']);
                $this->oldTemplatesAssigned = array();
                foreach($tpls as $item) {
                    $item = trim($item);
                    if(!$item) continue;
                    $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $client_id);
                }
                unset($tpls);
            }
            if(isset($params['template_additional'])) {
                $app->uses('client_templates');
                $templates = explode('/', $params['template_additional']);
                $params['template_additional'] = '';
                $app->client_templates->update_client_templates($client_id, $templates);
                unset($templates);
            }
            if(!isset($params['parent_client_id']) || $params['parent_client_id'] == 0) $params['parent_client_id'] = $reseller_id;
            $affected_rows = $this->updateQuery('../client/form/' . (isset($params['limit_client']) && $params['limit_client'] > 0 ? 'reseller' : 'client') . '.tform.php', $reseller_id, $client_id, $params, 'client:' . ($reseller_id ? 'reseller' : 'client') . ':on_after_update');
            
@@ -1176,7 +1236,120 @@
            
            return $affected_rows;
    }
    public function client_template_additional_get($session_id, $client_id) {
        global $app;
        if(!$this->checkPerm($session_id, 'client_get')) {
            $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
            return false;
        }
        if(@is_numeric($client_id)) {
            $sql = "SELECT * FROM `client_template_assigned` WHERE `client_id` = ".$client_id;
            return $app->db->queryOneRecord($sql);
        } else {
            $this->server->fault('The ID must be an integer.');
            return array();
        }
    }
    private function _set_client_formdata($client_id) {
        global $app;
        $this->id = $client_id;
        $this->dataRecord = $app->db->queryOneRecord('SELECT * FROM `client` WHERE `client_id` = ' . $client_id);
        $this->oldDataRecord = $this->dataRecord;
        $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $client_id);
        if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) {
            // check previous type of storing templates
            $tpls = explode('/', $this->oldDataRecord['template_additional']);
            $this->oldTemplatesAssigned = array();
            foreach($tpls as $item) {
                $item = trim($item);
                if(!$item) continue;
                $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $client_id);
            }
            unset($tpls);
        }
    }
    public function client_template_additional_add($session_id, $client_id, $template_id) {
        global $app;
        if(!$this->checkPerm($session_id, 'client_update')) {
            $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
            return false;
        }
        if(@is_numeric($client_id) && @is_numeric($template_id)) {
            // check if client exists
            $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id);
            if(!$check) {
                $this->server->fault('Invalid client');
                return false;
            }
            // check if template exists
            $check = $app->db->queryOneRecord('SELECT `template_id` FROM `client_template` WHERE `template_id` = ' . $template_id);
            if(!$check) {
                $this->server->fault('Invalid template');
                return false;
            }
            // for the update event we have to cheat a bit
            $this->_set_client_formdata($client_id);
            $sql = "INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (" . $client_id . ", " . $template_id . ")";
            $app->db->query($sql);
            $insert_id = $app->db->insertID();
            $app->plugin->raiseEvent('client:client:on_after_update',$this);
            return $insert_id;
        } else {
            $this->server->fault('The IDs must be of type integer.');
            return false;
        }
    }
    public function client_template_additional_delete($session_id, $client_id, $assigned_template_id) {
        global $app;
        if(!$this->checkPerm($session_id, 'client_update')) {
            $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
            return false;
        }
        if(@is_numeric($client_id) && @is_numeric($template_id)) {
            // check if client exists
            $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id);
            if(!$check) {
                $this->server->fault('Invalid client');
                return false;
            }
            // check if template exists
            $check = $app->db->queryOneRecord('SELECT `assigned_template_id` FROM `client_template_assigned` WHERE `assigned_template_id` = ' . $assigned_template_id);
            if(!$check) {
                $this->server->fault('Invalid template');
                return false;
            }
            // for the update event we have to cheat a bit
            $this->_set_client_formdata($client_id);
            $sql = "DELETE FROM `client_template_assigned` WHERE `assigned_template_id` = " . $template_id . " AND `client_id` = " . $client_id;
            $app->db->query($sql);
            $affected_rows = $app->db->affectedRows();
            $app->plugin->raiseEvent('client:client:on_after_update',$this);
            return $affected_rows;
        } else {
            $this->server->fault('The IDs must be of type integer.');
            return false;
        }
    }
    public function client_delete($session_id,$client_id)
    {
interface/lib/classes/remoting_lib.inc.php
@@ -133,6 +133,8 @@
                }
            }
            unset($form);
            $this->dateformat = $app->lng('conf_format_dateshort');
                
            return true;
        }
interface/lib/classes/tform.inc.php
@@ -552,9 +552,10 @@
                                                $new_record[$key] = $out;
                                        break;
                                case 'PASSWORD':
                                        $new_record[$key] = '';
                                break;
                                case 'PASSWORD':
                                        //$new_record[$key] = '';
                                        $new_record[$key] = htmlspecialchars($field['default']);
                                break;
                                case 'CHECKBOX':
                                        // $checked = (empty($field["default"]))?'':' CHECKED';
@@ -1257,7 +1258,7 @@
        function getDataRecord($primary_id) {
            global $app;
            $escape = '`';
            $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id;
            $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id." AND ".$this->getAuthSQL('r',$this->formDef['db_table']);
            return $app->db->queryOneRecord($sql);
        }
@@ -1267,7 +1268,7 @@
                $app->db->datalogSave($this->formDef['db_table'], $action, $this->formDef['db_table_idx'], $primary_id, $record_old, $record_new);
                return true;
<<<<<<< .mine
                /*
                // Add backticks for incomplete table names.
                if(stristr($this->formDef['db_table'],'.')) {
@@ -1331,7 +1332,7 @@
                return true;
                */
        }
=======>>>>>>> .theirs        }
        function getAuthSQL($perm, $table = '') {
                if($_SESSION["s"]["user"]["typ"] == 'admin') {
interface/lib/classes/tree.inc.php
@@ -147,14 +147,14 @@
    
    function deltree($tree_id) {
        // lösche Einträge recursiv
        $this->_deltree_recurse(&$this->obj[$this->root_id],$tree_id, 0);
        $this->_deltree_recurse($this->obj[$this->root_id],$tree_id, 0);
    }
    
    /*
        Hilfsfunktion für deltree
    */
    
    function _deltree_recurse($myobj,$tree_id,$delete) {
    function _deltree_recurse(&$myobj,$tree_id,$delete) {
        if(is_array($myobj->childs)) {
            foreach($myobj->childs as $val) {
                
@@ -164,7 +164,7 @@
                }
                
                // recurse durch Objekte
                $this->_deltree_recurse(&$val,$tree_id,$delete);
                $this->_deltree_recurse($val,$tree_id,$delete);
                
                // lösche Eintrag
                if($delete == 1) {
interface/lib/lang/ar.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/bg.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/br.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/cz.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_web_folder_user'] = 'Aktualizace nastavení uživatele pro adresáře chráněné heslem';
$wb['datalog_status_d_web_folder_user'] = 'Odstranění uživatele pro adresáře chráněné heslem';
$wb['login_as_txt'] = 'Přihlaste se jako';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/de.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_web_folder_user'] = 'Verzeichnisschutz Benutzer ändern';
$wb['datalog_status_d_web_folder_user'] = 'Verzeichnisschutz Benutzer löschen';
$wb['login_as_txt'] = 'Anmelden als';
$wb['no_domain_perm'] = 'Sie haben keine Berechtigung für diese Domain.';
$wb['no_destination_perm'] = 'Sie haben keine Berechtigung für dieses Ziel.';
?>
interface/lib/lang/el.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/en.lng
@@ -133,4 +133,6 @@
$wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
$wb['login_as_txt'] = 'Log in as';
$wb["no_domain_perm"] = 'You have no permission for this domain.';
$wb["no_destination_perm"] = 'You have no permission for this destination.';
?>
interface/lib/lang/es.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
$wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/fi.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/fr.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_web_folder_user'] = 'Update folder protection user';
$wb['datalog_status_d_web_folder_user'] = 'Delete folder protection user';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/hr.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/hu.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/id.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/it.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/ja.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/nl.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/pl.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_web_folder_user'] = 'Edytuj konto zabezpieczonego folderu';
$wb['datalog_status_d_web_folder_user'] = 'Usuń konto zabezpieczonego folderu';
$wb['login_as_txt'] = 'Zaloguj jako';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/pt.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/ro.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/ru.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/se.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/sk.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/lib/lang/tr.lng
@@ -131,4 +131,6 @@
$wb['datalog_status_u_spamfilter_users'] = 'Update spam filter settings';
$wb['datalog_status_d_spamfilter_users'] = 'Delete spam filter settings';
$wb['login_as_txt'] = 'Log in as';
$wb['no_domain_perm'] = 'You have no permission for this domain.';
$wb['no_destination_perm'] = 'You have no permission for this destination.';
?>
interface/web/admin/form/system_config.tform.php
@@ -433,6 +433,42 @@
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
        'admin_dashlets_left' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        'admin_dashlets_right' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        'reseller_dashlets_left' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        'reseller_dashlets_right' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        'client_dashlets_left' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
        'client_dashlets_right' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => ''
        ),
    ##################################
    # ENDE Datatable fields
    ##################################
interface/web/admin/language_edit.php
@@ -85,7 +85,7 @@
$keyword_list = array();
if(isset($wb) && is_array($wb)) {
    foreach($wb as $key => $val) {
        $keyword_list[] = array('key' => $key, 'val' => $val);
        $keyword_list[] = array('key' => $key, 'val' => htmlentities($val));
    }
    $app->tpl->setLoop('records', $keyword_list);
interface/web/admin/lib/lang/ar_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ar_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/ar_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/ar_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'User (optional)';
$wb['repo_password_txt'] = 'Password (optional)';
$wb['active_txt'] = 'Active';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/ar_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/bg_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/bg_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/bg_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Обновяване на пакетите ';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/bg_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Потребител (не е задължително)';
$wb['repo_password_txt'] = 'Парола (не е задължително)';
$wb['active_txt'] = 'Активен';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/bg_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/br_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/br_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/br_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/br_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Usuário (opcional)';
$wb['repo_password_txt'] = 'Senha (opcional)';
$wb['active_txt'] = 'Ativo';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/br_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/cz_remote_action.lng
@@ -2,9 +2,9 @@
$wb['select_server_txt'] = 'Zvolit server';
$wb['btn_do_txt'] = 'Provést akci';
$wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.';
$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
$wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru';
$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.<br><br><strong>POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !</strong>';
$wb['action_scheduled'] = 'Akce je naplánována na provedení';
$wb['select_all_server'] = 'Všechny servery';
$wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci';
interface/web/admin/lib/lang/cz_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení adminovi';
$wb['overtraffic_notify_client_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení klientovi';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/cz_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/cz_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Aktualizace seznamu balíků';
$wb['package_id_txt'] = 'místní App-ID';
$wb['no_packages_txt'] = 'Žádné balíčky nejsou k dispozici';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/cz_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Uživatel (volitelné)';
$wb['repo_password_txt'] = 'Heslo (volitelné)';
$wb['active_txt'] = 'Aktivní';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/cz_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show Autoresponder tab in Mailbox detail';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show Mail Filter tab in Mailbox detail';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show Custom Rules tab in Mailbox detail';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/de_system_config.lng
@@ -52,4 +52,11 @@
$wb['reseller_can_use_options_txt'] = 'Reseller können den Optionen Reiter bei Webseiten verwenden';
$wb['phpmyadmin_url_note_txt'] = 'Platzhalter:';
$wb['webmail_url_note_txt'] = 'Platzhalter:';
$wb['available_dashlets_note_txt'] = 'Verfügbare Dashlets:';
$wb['admin_dashlets_left_txt'] = 'Admin-Dashlets links';
$wb['admin_dashlets_right_txt'] = 'Admin-Dashlets rechts';
$wb['reseller_dashlets_left_txt'] = 'Reseller-Dashlets links';
$wb['reseller_dashlets_right_txt'] = 'Reseller-Dashlets rechts';
$wb['client_dashlets_left_txt'] = 'Kunden-Dashlets links';
$wb['client_dashlets_right_txt'] = 'Kunden-Dashlets rechts';
?>
interface/web/admin/lib/lang/el_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/el_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/el_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Ενημέρωση λίστας πακκέτων';
$wb['package_id_txt'] = 'τοπικό App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/el_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Χρήστης (Προαιρετικό)';
$wb['repo_password_txt'] = 'Συνθηματικό (Προαιρετικό)';
$wb['active_txt'] = 'Ενεργό';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/el_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/en_system_config.lng
@@ -55,4 +55,11 @@
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
$wb['available_dashlets_note_txt'] = 'Available Dashlets:';
$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets';
$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets';
$wb['reseller_dashlets_left_txt'] = 'Left Reseller Dashlets';
$wb['reseller_dashlets_right_txt'] = 'Right Reseller Dashlets';
$wb['client_dashlets_left_txt'] = 'Left Client Dashlets';
$wb['client_dashlets_right_txt'] = 'Right Client Dashlets';
?>
interface/web/admin/lib/lang/es_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/es_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/es_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/es_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Usuario (opcional)';
$wb['repo_password_txt'] = 'Contraseña (opcional)';
$wb['active_txt'] = 'Activar';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/es_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/fi_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/fi_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/fi_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/fi_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Käyttäjätunnus (valinnainen)';
$wb['repo_password_txt'] = 'Salasana (valinnnainen)';
$wb['active_txt'] = 'Käytössä';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/fi_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/fr_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/fr_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/fr_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Mettre à jour la liste des paquets';
$wb['package_id_txt'] = 'App-ID locale';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/fr_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Utilisateur (optionnel)';
$wb['repo_password_txt'] = 'Mot de passe (optionnel)';
$wb['active_txt'] = 'Actif';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/fr_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/hr_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/hr_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/hr_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Obnovi listu paketa';
$wb['package_id_txt'] = 'lokalni App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/hr_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Korisničko ime (opcionalno)';
$wb['repo_password_txt'] = 'Šifra (opcionalno)';
$wb['active_txt'] = 'Aktivno';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/hr_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/hu_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/hu_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/hu_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Csomaglista frissítése';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/hu_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Felhasználó (opcionális)';
$wb['repo_password_txt'] = 'Jelszó (opcionális)';
$wb['active_txt'] = 'Aktív';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/hu_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/id_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/id_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/id_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Mutakhirkan daftar paket';
$wb['package_id_txt'] = 'App-ID lokal';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/id_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Pengguna (opsional)';
$wb['repo_password_txt'] = 'Sandi (opsional)';
$wb['active_txt'] = 'Aktif';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/id_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/it_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/it_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/it_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/it_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Utente (facoltativo)';
$wb['repo_password_txt'] = 'Password (facoltativa)';
$wb['active_txt'] = 'Attivo';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/it_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ja_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ja_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/ja_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/ja_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'ユーザー(必要があれば)';
$wb['repo_password_txt'] = 'パスワード(必要があれば)';
$wb['active_txt'] = '有効';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/ja_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/nl_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/nl_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/nl_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update pakketlijst';
$wb['package_id_txt'] = 'locaal App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/nl_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'User (optionieel)';
$wb['repo_password_txt'] = 'Password (optionieel)';
$wb['active_txt'] = 'Actief';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/nl_system_config.lng
@@ -52,4 +52,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/pl_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Prześlij informacje o przekroczeniu transferu do admina';
$wb['overtraffic_notify_client_txt'] = 'Prześlij informacje o przekroczeniu transferu do klienta';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/pl_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/pl_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Aktualizuj listę pakietów';
$wb['package_id_txt'] = 'lokalny App-ID';
$wb['no_packages_txt'] = 'Brak dostępnych pakietów';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/pl_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Użytkownik (Opcjonalnie)';
$wb['repo_password_txt'] = 'Hasło (Opcjonalnie)';
$wb['active_txt'] = 'Aktywny';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/pl_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Pokaż zakładkę autorespondera w szczegółach konta email.';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Pokaż zakładkę filtra email w szczegółach konta email.';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Pokaż zakładkę własnych filtrów email w szczegółach konta email.';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/pt_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/pt_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/pt_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/pt_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Utilizador (opcional)';
$wb['repo_password_txt'] = 'Senha (opcional)';
$wb['active_txt'] = 'Activo';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/pt_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ro_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ro_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/ro_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/ro_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'User (optional)';
$wb['repo_password_txt'] = 'Password (optional)';
$wb['active_txt'] = 'Active';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/ro_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ru_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/ru_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/ru_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/ru_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Логин (опционально)';
$wb['repo_password_txt'] = 'Пароль (опционально)';
$wb['active_txt'] = 'Активен?';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/ru_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/se_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/se_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/se_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/se_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'User (optional)';
$wb['repo_password_txt'] = 'Password (optional)';
$wb['active_txt'] = 'Active';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/se_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/sk_server_config.lng
@@ -171,4 +171,21 @@
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/sk_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/sk_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/sk_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Uživateľ (voliteľný)';
$wb['repo_password_txt'] = 'Heslo (voliteľné)';
$wb['active_txt'] = 'Aktivovať';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/sk_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/tr_server_config.lng
@@ -170,4 +170,22 @@
$wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)';
$wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin';
$wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client';
$wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.';
$wb['overquota_notify_admin_txt'] = 'Send quota warnings to admin';
$wb['overquota_notify_client_txt'] = 'Send quota warnings to client';
$wb['overquota_notify_onok_txt'] = 'Send quota ok message to client';
$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days';
$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages';
$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level';
$wb['no_notifications_txt'] = 'No Notifications';
$wb['monit_url_txt'] = 'Monit URL';
$wb['monit_user_txt'] = 'Monit User';
$wb['monit_password_txt'] = 'Monit Password';
$wb['monit_url_error_regex'] = 'Invalid Monit URL';
$wb['monit_url_note_txt'] = 'Placeholder:';
$wb['munin_url_txt'] = 'Munin URL';
$wb['munin_user_txt'] = 'Munin User';
$wb['munin_password_txt'] = 'Munin Password';
$wb['munin_url_error_regex'] = 'Invalid Munin URL';
$wb['munin_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/lib/lang/tr_software_package.lng
New file
@@ -0,0 +1,6 @@
<?php
$wb["package_title_txt"] = 'Package Title';
$wb["package_key_txt"] = 'Package Key';
$wb["Software Package"] = 'Software Package';
$wb['Modify software package details'] = 'Modify software package details';
?>
interface/web/admin/lib/lang/tr_software_package_list.lng
@@ -8,4 +8,6 @@
$wb['repoupdate_txt'] = 'Update package list';
$wb['package_id_txt'] = 'local App-ID';
$wb['no_packages_txt'] = 'No packages available';
$wb['edit_txt'] = 'Edit';
$wb['delete_txt'] = 'Delete';
?>
interface/web/admin/lib/lang/tr_software_repo.lng
@@ -4,4 +4,5 @@
$wb['repo_username_txt'] = 'Kullanıcı (isteğe bağlı)';
$wb['repo_password_txt'] = 'Şifre (isteğe bağlı)';
$wb['active_txt'] = 'Aktif';
$wb['Software Repository which may contain addons or updates'] = 'Software Repository which may contain addons or updates';
?>
interface/web/admin/lib/lang/tr_system_config.lng
@@ -49,4 +49,7 @@
$wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details';
$wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details';
$wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details';
$wb['webmail_url_error_regex'] = 'Invalid webmail URL';
$wb['phpmyadmin_url_note_txt'] = 'Placeholder:';
$wb['webmail_url_note_txt'] = 'Placeholder:';
?>
interface/web/admin/system_config_edit.php
@@ -78,6 +78,24 @@
        $app->tpl->setVar($record);
    }
    
    function onShowEnd() {
        global $app, $conf;
        // available dashlets
        $available_dashlets_txt = '';
        $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets');
        while ($file = @readdir ($handle)) {
            if ($file != '.' && $file != '..' && !is_dir($file)) {
                $available_dashlets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.substr($file,0,-4).']<pre class="addPlaceholderContent" style="display:none;">['.substr($file,0,-4).'],</pre></a> ';
            }
        }
        if($available_dashlets_txt == '') $available_dashlets_txt = '------';
        $app->tpl->setVar("available_dashlets_txt",$available_dashlets_txt);
        parent::onShowEnd();
    }
    function onSubmit() {
        global $app;
        
@@ -135,8 +153,9 @@
        $server_config_array[$section] = $new_config;
        $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
        
        $sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1";
        if($conf['demo_mode'] != true) $app->db->query($sql);
        //$sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1";
        //if($conf['demo_mode'] != true) $app->db->query($sql);
        if($conf['demo_mode'] != true) $app->db->datalogUpdate('sys_ini', "config = '".$app->db->quote($server_config_str)."'", 'sysini_id', 1);
        /*
         * If we should use the domain-module, we have to insert all existing domains into the table
interface/web/admin/templates/system_config_misc_edit.htm
@@ -21,6 +21,30 @@
                <label for="monitor_key">{tmpl_var name='monitor_key_txt'}</label>
                <input name="monitor_key" id="monitor_key" value="{tmpl_var name='monitor_key'}" size="" maxlength="" type="text" class="textInput" />
            </div>
            <div class="ctrlHolder">
                <label for="admin_dashlets_left">{tmpl_var name='admin_dashlets_left_txt'}</label>
                <input name="admin_dashlets_left" id="admin_dashlets_left" value="{tmpl_var name='admin_dashlets_left'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <label for="admin_dashlets_right">{tmpl_var name='admin_dashlets_right_txt'}</label>
                <input name="admin_dashlets_right" id="admin_dashlets_right" value="{tmpl_var name='admin_dashlets_right'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <label for="reseller_dashlets_left">{tmpl_var name='reseller_dashlets_left_txt'}</label>
                <input name="reseller_dashlets_left" id="reseller_dashlets_left" value="{tmpl_var name='reseller_dashlets_left'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <label for="reseller_dashlets_right">{tmpl_var name='reseller_dashlets_right_txt'}</label>
                <input name="reseller_dashlets_right" id="reseller_dashlets_right" value="{tmpl_var name='reseller_dashlets_right'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <label for="client_dashlets_left">{tmpl_var name='client_dashlets_left_txt'}</label>
                <input name="client_dashlets_left" id="client_dashlets_left" value="{tmpl_var name='client_dashlets_left'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <label for="client_dashlets_right">{tmpl_var name='client_dashlets_right_txt'}</label>
                <input name="client_dashlets_right" id="client_dashlets_right" value="{tmpl_var name='client_dashlets_right'}" size="" maxlength="" type="text" class="textInput" />&nbsp;{tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='tab_change_discard_txt'}</p>
                <div class="multiField">
interface/web/client/client_edit.php
@@ -49,8 +49,8 @@
$app->load('tform_actions');
class page_action extends tform_actions {
    var $_template_additional = array();
    function onShowNew() {
        global $app, $conf;
        
@@ -92,8 +92,28 @@
                }
            }
        }
        parent::onSubmit();
        if($this->id != 0) {
            $this->oldTemplatesAssigned = $app->db->queryAllRecords('SELECT * FROM `client_template_assigned` WHERE `client_id` = ' . $this->id);
            if(!is_array($this->oldTemplatesAssigned) || count($this->oldTemplatesAssigned) < 1) {
                // check previous type of storing templates
                $tpls = explode('/', $this->oldDataRecord['template_additional']);
                $this->oldTemplatesAssigned = array();
                foreach($tpls as $item) {
                    $item = trim($item);
                    if(!$item) continue;
                    $this->oldTemplatesAssigned[] = array('assigned_template_id' => 0, 'client_template_id' => $item, 'client_id' => $this->id);
                }
                unset($tpls);
            }
        } else {
            $this->oldTemplatesAssigned = array();
        }
        $this->_template_additional = explode('/', $this->dataRecord['template_additional']);
        $this->dataRecord['template_additional'] = '';
        parent::onSubmit();
    }
    function onShowEnd() {
@@ -110,16 +130,44 @@
        }
        $app->tpl->setVar('tpl_add_select',$option);
        $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
        $result = $app->db->queryOneRecord($sql);
        $tplAdd = explode("/", $result['template_additional']);
        $text = '';
        foreach($tplAdd as $item){
            if (trim($item) != ''){
                if ($text != '') $text .= '';
                $text .= '<li>' . $tpl[$item]. '</li>';
            }
        }
        // check for new-style records
        $result = $app->db->queryAllRecords('SELECT assigned_template_id, client_template_id FROM client_template_assigned WHERE client_id = ' . $this->id);
        if($result && count($result) > 0) {
            // new style
            $items = array();
            $text = '';
            foreach($result as $item){
                if (trim($item['client_template_id']) != ''){
                    if ($text != '') $text .= '';
                    $text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']];
                    $text .= '<a href="#" class="button icons16 icoDelete"></a>';
                                        $tmp = new stdClass();
                    $tmp->id = $item['assigned_template_id'];
                    $tmp->data = '';
                    $app->plugin->raiseEvent('get_client_template_details', $tmp);
                    if($tmp->data != '') $text .= '<br /><em>' . $tmp->data . '</em>';
                    $text .= '</li>';
                    $items[] = $item['assigned_template_id'] . ':' . $item['client_template_id'];
                }
            }
            $tmprec = $app->tform->getHTML(array('template_additional' => implode('/', $items)), $this->active_tab, 'EDIT');
            $app->tpl->setVar('template_additional', $tmprec['template_additional']);
            unset($tmprec);
        } else {
            // old style
            $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
            $result = $app->db->queryOneRecord($sql);
            $tplAdd = explode("/", $result['template_additional']);
            $text = '';
            foreach($tplAdd as $item){
                if (trim($item) != ''){
                    if ($text != '') $text .= '';
                    $text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
                }
            }
        }
        $app->tpl->setVar('template_additional_list', $text);
        $app->tpl->setVar('app_module','client');
@@ -127,7 +175,7 @@
        parent::onShowEnd();
    }
    /*
     This function is called automatically right after
     the data was successful inserted in the database.
@@ -180,6 +228,10 @@
        $sql = "UPDATE client SET default_mailserver = $default_mailserver, default_webserver = $default_webserver, default_dnsserver = $default_dnsserver, default_slave_dnsserver = $default_dnsserver, default_dbserver = $default_dbserver WHERE client_id = ".$this->id;
        $app->db->query($sql);
        
        if(isset($this->dataRecord['template_master'])) {
            $app->uses('client_templates');
            $app->client_templates->update_client_templates($this->id, $this->_template_additional);
        }
        parent::onAfterInsert();
    }
@@ -218,6 +270,99 @@
            $app->db->query($sql);
        }
        
        if(!isset($this->dataRecord['locked'])) $this->dataRecord['locked'] = 'n';
        if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["locked"] != $this->oldDataRecord['locked']) {
            /** lock all the things like web, mail etc. - easy to extend */
            // get tmp_data of client
            $client_data = $app->db->queryOneRecord('SELECT `tmp_data` FROM `client` WHERE `client_id` = ' . $this->id);
            if($client_data['tmp_data'] == '') $tmp_data = array();
            else $tmp_data = unserialize($client_data['tmp_data']);
            if(!is_array($tmp_data)) $tmp_data = array();
            // database tables with their primary key columns
            $to_disable = array('cron' => 'id',
                                'ftp_user' => 'ftp_user_id',
                                'mail_domain' => 'domain_id',
                                'mail_forwarding' => 'forwarding_id',
                                'mail_get' => 'mailget_id',
                                'openvz_vm' => 'vm_id',
                                'shell_user' => 'shell_user_id',
                                'webdav_user' => 'webdav_user_id',
                                'web_database' => 'database_id',
                                'web_domain' => 'domain_id',
                                'web_folder' => 'web_folder_id',
                                'web_folder_user' => 'web_folder_user_id'
                               );
            $udata = $app->db->queryOneRecord('SELECT `userid` FROM `sys_user` WHERE `client_id` = ' . $this->id);
            $gdata = $app->db->queryOneRecord('SELECT `groupid` FROM `sys_group` WHERE `client_id` = ' . $this->id);
            $sys_groupid = $gdata['groupid'];
            $sys_userid = $udata['userid'];
            $entries = array();
            if($this->dataRecord['locked'] == 'y') {
                $prev_active = array();
                $prev_sysuser = array();
                foreach($to_disable as $current => $keycolumn) {
                    $prev_active[$current] = array();
                    $prev_sysuser[$current] = array();
                    $entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id`, `sys_userid`, `active` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid);
                    foreach($entries as $item) {
                        if($item['active'] != 'y') $prev_active[$current][$item['id']]['active'] = 'n';
                        if($item['sys_userid'] != $sys_userid) $prev_sysuser[$current][$item['id']]['active'] = $item['sys_userid'];
                        // we don't have to store these if y, as everything without previous state gets enabled later
                        $app->db->datalogUpdate($current, array('active' => 'n', 'sys_userid' => $_SESSION["s"]["user"]["userid"]), $keycolumn, $item['id']);
                    }
                }
                $tmp_data['prev_active'] = $prev_active;
                $tmp_data['prev_sys_userid'] = $prev_sysuser;
                $app->db->query("UPDATE `client` SET `tmp_data` = '" . $app->db->quote(serialize($tmp_data)) . "' WHERE `client_id` = " . $this->id);
                unset($prev_active);
                unset($prev_sysuser);
            } elseif($this->dataRecord['locked'] == 'n') {
                foreach($to_disable as $current => $keycolumn) {
                    $entries = $app->db->queryAllRecords('SELECT `' . $keycolumn . '` as `id` FROM `' . $current . '` WHERE `sys_groupid` = ' . $sys_groupid);
                    foreach($entries as $item) {
                        $set_active = 'y';
                        $set_sysuser = $sys_userid;
                        if(array_key_exists('prev_active', $tmp_data) == true
                            && array_key_exists($current, $tmp_data['prev_active']) == true
                            && array_key_exists($item['id'], $tmp_data['prev_active'][$current]) == true
                            && $tmp_data['prev_active'][$current][$item['id']] == 'n') $set_active = 'n';
                        if(array_key_exists('prev_sysuser', $tmp_data) == true
                            && array_key_exists($current, $tmp_data['prev_sysuser']) == true
                            && array_key_exists($item['id'], $tmp_data['prev_sysuser'][$current]) == true
                            && $tmp_data['prev_sysuser'][$current][$item['id']] != $sys_userid) $set_sysuser = $tmp_data['prev_sysuser'][$current][$item['id']];
                        $app->db->datalogUpdate($current, array('active' => $set_active, 'sys_userid' => $set_sysuser), $keycolumn, $item['id']);
                    }
                }
                if(array_key_exists('prev_active', $tmp_data)) unset($tmp_data['prev_active']);
                $app->db->query("UPDATE `client` SET `tmp_data` = '" . $app->db->quote(serialize($tmp_data)) . "' WHERE `client_id` = " . $this->id);
            }
            unset($tmp_data);
            unset($entries);
            unset($to_disable);
        }
        if(!isset($this->dataRecord['canceled'])) $this->dataRecord['canceled'] = 'n';
        if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && $this->dataRecord["canceled"] != $this->oldDataRecord['canceled']) {
            if($this->dataRecord['canceled'] == 'y') {
                $sql = "UPDATE sys_user SET active = '0' WHERE client_id = " . $this->id;
                $app->db->query($sql);
            } elseif($this->dataRecord['canceled'] == 'n') {
                $sql = "UPDATE sys_user SET active = '1' WHERE client_id = " . $this->id;
                $app->db->query($sql);
            }
        }
        // language changed
        if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) {
            $language = $app->db->quote($this->dataRecord["language"]);
@@ -236,6 +381,11 @@
            $app->db->query($sql);
        }
        
        if(isset($this->dataRecord['template_master'])) {
            $app->uses('client_templates');
            $app->client_templates->update_client_templates($this->id, $this->_template_additional);
        }
        parent::onAfterUpdate();
    }
}
interface/web/client/client_template_del.php
@@ -53,6 +53,13 @@
    function onBeforeDelete() {
        global $app;
        
        // check new style
        $rec = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client_template_assigned WHERE client_template_id = ".$this->id);
        if($rec['number'] > 0) {
            $app->error($app->tform->lng('template_del_aborted_txt'));
        }
        // check old style
        $rec = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE template_master = ".$this->id." OR template_additional like '%/".$this->id."/%'");
        if($rec['number'] > 0) {
            $app->error($app->tform->lng('template_del_aborted_txt'));
interface/web/client/client_template_edit.php
@@ -81,7 +81,7 @@
        if ($this->dataRecord["template_type"] == 'm'){
            $sql = "SELECT client_id FROM client WHERE template_master = " . $this->id;
        } else {
            $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "'";
            $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "' UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = " . $this->id;
        }
        $clients = $app->db->queryAllRecords($sql);
        if (is_array($clients)){
interface/web/client/form/client.tform.php
@@ -100,6 +100,12 @@
            'cols'        => '',
            'searchable' => 2
        ),
        'gender' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'SELECT',
            'default'    => '',
            'value'        => array('' => '', 'm' => 'gender_m_txt', 'f' => 'gender_f_txt')
        ),
        'contact_name' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
@@ -454,6 +460,18 @@
            'cols'        => '',
            'searchable' => 2
        ),
        'locked' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
        'canceled' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
    ##################################
    # END Datatable fields
    ##################################
interface/web/client/form/reseller.tform.php
@@ -100,6 +100,12 @@
            'cols'        => '',
            'searchable' => 2
        ),
        'gender' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'SELECT',
            'default'    => '',
            'value'        => array('' => '', 'm' => 'gender_m_txt', 'f' => 'gender_f_txt')
        ),
        'contact_name' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
@@ -451,6 +457,18 @@
            'cols'        => '',
            'searchable' => 2
        ),
        'locked' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
        'canceled' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
            'default'    => 'n',
            'value'        => array(0 => 'n',1 => 'y')
        ),
    ##################################
    # END Datatable fields
    ##################################
interface/web/client/lib/lang/ar_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ar_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/ar_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Client-Templates';
$wb['template_type_txt'] = 'Type';
$wb['template_name_txt'] = 'Template name';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/ar_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/bg_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/bg_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Изтрии клиента';
$wb['btn_cancel_txt'] = 'Отказ, без изтриване на клиента';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/bg_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Client-Templates';
$wb['template_type_txt'] = 'Type';
$wb['template_name_txt'] = 'Template name';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/bg_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/br_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/br_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Atenção: está ação ira remover todos os objetos associados ao cliente!';
$wb['btn_save_txt'] = 'Remover o cliente';
$wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/br_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Gabarito de Cliente ';
$wb['template_type_txt'] = 'Tipo';
$wb['template_name_txt'] = 'Nome do Gabarito';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/br_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/cz_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/cz_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Tato akce smaže následující počet záznamů přidružených s tímto klientem';
$wb['btn_save_txt'] = 'Smazat klienta';
$wb['btn_cancel_txt'] = 'Zrušit bez smazání klienta';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/cz_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Klientské šablony';
$wb['template_type_txt'] = 'Typ';
$wb['template_name_txt'] = 'Název šablony';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/cz_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/de_client.lng
@@ -144,4 +144,9 @@
$wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen';
$wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.';
$wb['default_slave_dnsserver_txt'] = 'Standard Secondary DNS Server';
$wb['locked_txt'] = 'Gesperrt (deaktiviert alle Webs, etc.)';
$wb['canceled_txt'] = 'Gek&uuml;ndigt (verhindert Kundenlogin)';
$wb['gender_txt'] = 'Anrede';
$wb['gender_m_txt'] = 'Herr';
$wb['gender_f_txt'] = 'Frau';
?>
interface/web/client/lib/lang/de_reseller.lng
@@ -143,4 +143,9 @@
$wb['limit_aps_txt'] = 'Max. Anzahl an APS-Instanzen';
$wb['limit_aps_error_notint'] = 'Das APS Instanzen Limit muss eine Zahl sein.';
$wb['default_slave_dnsserver_txt'] = 'Standard Secondary DNS Server';
$wb['locked_txt'] = 'Gesperrt';
$wb['canceled_txt'] = 'Gek&uuml;ndigt';
$wb['gender_m_txt'] = 'Herr';
$wb['gender_f_txt'] = 'Frau';
$wb['gender_txt'] = 'Anrede';
?>
interface/web/client/lib/lang/el_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/el_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Η ενέργεια θα διαγράψει τις παρακάτω εγγραφές που αφορούν τον πελάτη';
$wb['btn_save_txt'] = 'Διαγραφή πελάτη';
$wb['btn_cancel_txt'] = 'Ακύρωση χωρίς διαγραφή πελάτη';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/el_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Πρότυπα Πελάτη';
$wb['template_type_txt'] = 'Τύπος';
$wb['template_name_txt'] = 'Όνομα Προτύπου';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/el_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/en_client.lng
@@ -147,4 +147,9 @@
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server';
$wb['locked_txt'] = 'Locked (disables all webs etc.)';
$wb['canceled_txt'] = 'Canceled (disables client login)';
$wb['gender_txt'] = 'Title';
$wb['gender_m_txt'] = 'Mr.';
$wb['gender_f_txt'] = 'Ms.';
?>
interface/web/client/lib/lang/en_reseller.lng
@@ -145,4 +145,9 @@
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb["default_slave_dnsserver_txt"] = 'Default Secondary DNS Server';
$wb['locked_txt'] = 'Locked';
$wb['canceled_txt'] = 'Canceled';
$wb['gender_m_txt'] = 'Mr.';
$wb['gender_f_txt'] = 'Ms.';
$wb['gender_txt'] = 'Title';
?>
interface/web/client/lib/lang/es_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/es_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Esta acción eliminara los siguientes registros asociados a este cliente';
$wb['btn_save_txt'] = 'Eliminar cliente';
$wb['btn_cancel_txt'] = 'Cancelar sin eliminar cliente';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/es_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Plantillas de clientes';
$wb['template_type_txt'] = 'Tipo';
$wb['template_name_txt'] = 'Nombre';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/es_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/fi_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/fi_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Tämä toiminto alla olevan määrän tämän asiakkaan tietueita';
$wb['btn_save_txt'] = 'Poista käyttäjä';
$wb['btn_cancel_txt'] = 'Keskeytä poistamatta asiakasta';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/fi_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Asiakasmallit';
$wb['template_type_txt'] = 'Tyyppi';
$wb['template_name_txt'] = 'Asiakasmallin nimi';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/fi_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/fr_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/fr_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Cette action va supprimer le nombre d\'enregistrements suivants associés avec le client';
$wb['btn_save_txt'] = 'Effacer le client';
$wb['btn_cancel_txt'] = 'Annuler sans effacer le client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/fr_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Modèles de clients';
$wb['template_type_txt'] = 'Type';
$wb['template_name_txt'] = 'Nom du modèle';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/fr_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/hr_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/hr_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Ukoliko potvrdite izbrisati će se svi zapisi povezani sa ovim klijentom';
$wb['btn_save_txt'] = 'Obriši klijenta';
$wb['btn_cancel_txt'] = 'Prekini i ne briši klijenta';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/hr_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Predlošci za klijente';
$wb['template_type_txt'] = 'Vrsta';
$wb['template_name_txt'] = 'Naziv predloška';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/hr_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/hu_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/hu_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/hu_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Ügyfél-Sablonok';
$wb['template_type_txt'] = 'típus';
$wb['template_name_txt'] = 'Sablon neve';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/hu_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/id_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/id_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Tindakan ini akan menghapus sejumlah record yang terkait dengan klien ini';
$wb['btn_save_txt'] = 'Hapus Klien';
$wb['btn_cancel_txt'] = 'Batalkan Tanpa Menghapus Klien';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/id_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Template Klien';
$wb['template_type_txt'] = 'Tipe';
$wb['template_name_txt'] = 'Nama Template';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/id_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/it_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/it_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Questa operazione cancellerà i seguenti record associati a questo cliente';
$wb['btn_save_txt'] = 'Cancella cliente';
$wb['btn_cancel_txt'] = 'Annulla senza cancellare il cliente';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/it_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Modelli cliente';
$wb['template_type_txt'] = 'Tipo';
$wb['template_name_txt'] = 'Nome modello';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/it_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ja_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ja_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/ja_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'クライアントテンプレート';
$wb['template_type_txt'] = '種別';
$wb['template_name_txt'] = 'テンプレート名';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/ja_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/nl_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/nl_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Deze actie verwijderd het volgende aantal aan records die geassocieerd zijn met deze klant';
$wb['btn_save_txt'] = 'Verwijder de klant';
$wb['btn_cancel_txt'] = 'Annuleren zonder de klant te verwijderen';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/nl_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Client-Templates';
$wb['template_type_txt'] = 'Type';
$wb['template_name_txt'] = 'Template naam';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/nl_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/pl_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'Limity Instalatora APS';
$wb['limit_aps_txt'] = 'Maks. liczba instalacji APS';
$wb['limit_aps_error_notint'] = 'Limit instalacji APS musi być liczbą';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/pl_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Ta akcja usunie następującą liczbę rekordów powiązanych z klientem';
$wb['btn_save_txt'] = 'Usuń klienta';
$wb['btn_cancel_txt'] = 'Anuluj bez usuwania klienta';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/pl_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Szablon klienta';
$wb['template_type_txt'] = 'Typ';
$wb['template_name_txt'] = 'Nazwa szablonu';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/pl_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'Limit instalacji APS';
$wb['limit_aps_txt'] = 'Maks. liczba instancji APS';
$wb['limit_aps_error_notint'] = 'Limit instancji APS musi być liczbą';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/pt_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/pt_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Atenção: está acção ira remover todos os objectos associados ao cliente!';
$wb['btn_save_txt'] = 'Remover o cliente';
$wb['btn_cancel_txt'] = 'Cancelar sem remover o cliente';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/pt_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Templates de Cliente ';
$wb['template_type_txt'] = 'Tipo';
$wb['template_name_txt'] = 'Nome da template';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/pt_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ro_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ro_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/ro_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Template client';
$wb['template_type_txt'] = 'Tp';
$wb['template_name_txt'] = 'Nume Template';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/ro_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ru_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/ru_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Это действие удалит следующее число записей сопоставленных с этим клиентом';
$wb['btn_save_txt'] = 'Удалить клиента';
$wb['btn_cancel_txt'] = 'Отменить без удаления';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/ru_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Шаблоны клиентов';
$wb['template_type_txt'] = 'Тип';
$wb['template_name_txt'] = 'Имя шаблона';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/ru_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/se_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/se_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/se_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Client-Templates';
$wb['template_type_txt'] = 'Type';
$wb['template_name_txt'] = 'Template name';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/se_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/sk_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/sk_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'This action will delete the following number of records associated with this client';
$wb['btn_save_txt'] = 'Delete the client';
$wb['btn_cancel_txt'] = 'Cancel without deleting the client';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/sk_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Klient-Šablóny';
$wb['template_type_txt'] = 'Typ';
$wb['template_name_txt'] = 'Meno šablóny';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/sk_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/tr_client.lng
@@ -143,4 +143,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/lib/lang/tr_client_del.lng
@@ -3,4 +3,5 @@
$wb['delete_explanation'] = 'Bu işlem ilgili müşteri ile alakalı bütün kayıtları silecektir.';
$wb['btn_save_txt'] = 'Müşteriyi sil';
$wb['btn_cancel_txt'] = 'İptal et';
$wb['confirm_client_delete_txt'] = 'Are you sure you want to delete this client?';
?>
interface/web/client/lib/lang/tr_client_template_list.lng
@@ -2,4 +2,5 @@
$wb['list_head_txt'] = 'Müşteri-Şablon';
$wb['template_type_txt'] = 'Çeşit';
$wb['template_name_txt'] = 'Şablon adı';
$wb['template_id_txt'] = 'Template ID';
?>
interface/web/client/lib/lang/tr_reseller.lng
@@ -142,4 +142,5 @@
$wb['aps_limits_txt'] = 'APS Installer Limits';
$wb['limit_aps_txt'] = 'Max. number of APS instances';
$wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.';
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
?>
interface/web/client/reseller_edit.php
@@ -113,16 +113,30 @@
        }
        $app->tpl->setVar('tpl_add_select',$option);
        $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
        $result = $app->db->queryOneRecord($sql);
        $tplAdd = explode("/", $result['template_additional']);
        $text = '';
        foreach($tplAdd as $item){
            if (trim($item) != ''){
                if ($text != '') $text .= '<br />';
                $text .= $tpl[$item];
            }
        }
        // check for new-style records
        $result = $app->db->queryAllRecords('SELECT assigned_template_id, client_template_id FROM client_template_assigned WHERE client_id = ' . $this->id);
        if($result && count($result) > 0) {
            // new style
            $text = '';
            foreach($result as $item){
                if (trim($item['client_template_id']) != ''){
                    if ($text != '') $text .= '';
                    $text .= '<li rel="' . $item['assigned_template_id'] . '">' . $tpl[$item['client_template_id']]. '<a href="#" class="button icons16 icoDelete"></a></li>';
                }
            }
        } else {
            // old style
            $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id;
            $result = $app->db->queryOneRecord($sql);
            $tplAdd = explode("/", $result['template_additional']);
            $text = '';
            foreach($tplAdd as $item){
                if (trim($item) != ''){
                    if ($text != '') $text .= '';
                    $text .= '<li>' . $tpl[$item]. '<a href="#" class="button icons16 icoDelete"></a></li>';
                }
            }
        }
        $app->tpl->setVar('template_additional_list', $text);
interface/web/client/templates/client_edit_address.htm
@@ -10,6 +10,12 @@
                <input name="company_name" id="company_name" value="{tmpl_var name='company_name'}" size="30" maxlength="255" type="text" class="textInput" />
            </div>
            <div class="ctrlHolder">
                <label for="gender">{tmpl_var name='gender_txt'}</label>
                <select name="gender" id="gender" class="selectInput">
                    {tmpl_var name='gender'}
                </select>
            </div>
            <div class="ctrlHolder">
                <label for="contact_name">{tmpl_var name='contact_name_txt'}*</label>
                <input name="contact_name" id="contact_name" value="{tmpl_var name='contact_name'}" size="30" maxlength="255" type="text" class="textInput" />
            </div>
@@ -134,6 +140,18 @@
                <label for="notes">{tmpl_var name='notes_txt'}</label>
                <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='locked_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='locked'}
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='canceled_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='canceled'}
                </div>
            </div>
            {tmpl_var name='required_fields_txt'}
        </fieldset>
interface/web/client/templates/client_edit_limits.htm
@@ -8,7 +8,6 @@
            <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend>
                <div class="buttons topbuttons">
                    <button class="positive iconstxt icoAdd" type="button" value="{tmpl_var name='add_additional_template_txt'}" onclick="addAdditionalTemplate();"><span>{tmpl_var name='add_additional_template_txt'}</span></button>
                    <button class="negative iconstxt icoDelete" type="button" value="{tmpl_var name='delete_additional_template_txt'}" onclick="delAdditionalTemplate();"><span>{tmpl_var name='delete_additional_template_txt'}</span></button>
                </div>
            </fieldset>
        </div>
@@ -309,6 +308,11 @@
    return ($('#template_master').val() == '0' ? true : false);
}
jQuery('#template_additional_list').find('li > a').click(function(e) {
    e.preventDefault();
    delAdditionalTemplate($(this).parent().attr('rel'));
});
jQuery('div.panel_client')
        .find('div.pnl_formsarea')
        .find('fieldset')
interface/web/client/templates/reseller_edit_address.htm
@@ -10,6 +10,12 @@
                <input name="company_name" id="company_name" value="{tmpl_var name='company_name'}" size="30" maxlength="255" type="text" class="textInput" />
            </div>
            <div class="ctrlHolder">
                <label for="gender">{tmpl_var name='gender_txt'}</label>
                <select name="gender" id="gender" class="selectInput">
                    {tmpl_var name='gender'}
                </select>
            </div>
            <div class="ctrlHolder">
                <label for="contact_name">{tmpl_var name='contact_name_txt'}*</label>
                <input name="contact_name" id="contact_name" value="{tmpl_var name='contact_name'}" size="30" maxlength="255" type="text" class="textInput" />
            </div>
@@ -134,6 +140,18 @@
                <label for="notes">{tmpl_var name='notes_txt'}</label>
                <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='locked_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='locked'}
                </div>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='canceled_txt'}</p>
                <div class="multiField">
                    {tmpl_var name='canceled'}
                </div>
            </div>
            {tmpl_var name='required_fields_txt'}
        </fieldset>
interface/web/dashboard/dashboard.php
@@ -157,8 +157,36 @@
/* Which dashlets in which column */
/******************************************************************************/
$leftcol_dashlets = array('modules','invoices','quota','mailquota');
$rightcol_dashlets = array('limits');
$default_leftcol_dashlets = array('modules','invoices','quota','mailquota');
$default_rightcol_dashlets = array('limits');
$app->uses('getconf');
$dashlets_config = $app->getconf->get_global_config('misc');
//* Client: If the logged in user is not admin and has no sub clients (no reseller)
if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
    $role = 'client';
//* Reseller: If the logged in user is not admin and has sub clients (is a reseller)
} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
    $role = 'reseller';
//* Admin: If the logged in user is admin
} else {
    $role = 'admin';
}
$dashlets_config[$role.'_dashlets_left'] = trim($dashlets_config[$role.'_dashlets_left']);
$dashlets_config[$role.'_dashlets_right'] = trim($dashlets_config[$role.'_dashlets_right']);
if($dashlets_config[$role.'_dashlets_left'] != ''){
    preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_left'], $matches);
    $leftcol_dashlets = $matches[1];
} else {
    $leftcol_dashlets = $default_leftcol_dashlets;
}
if($dashlets_config[$role.'_dashlets_right'] != ''){
    preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_right'], $matches);
    $rightcol_dashlets = $matches[1];
} else {
    $rightcol_dashlets = $default_rightcol_dashlets;
}
/******************************************************************************/
interface/web/dashboard/dashlets/templates/mailquota.htm
@@ -1,6 +1,6 @@
<div style="float: left;">
    <h2>{tmpl_var name='mailquota_txt'}</h2>
    <div style="width:320px;">
    <div style="width:350px;">
    <table class="list">
        <thead>
        <tr>
interface/web/dashboard/dashlets/templates/quota.htm
@@ -1,6 +1,6 @@
<div style="float: left;">
    <h2>{tmpl_var name='quota_txt'}</h2>
    <div style="width:320px;">
    <div style="width:350px;">
    <table class="list">
        <thead>
        <tr>
interface/web/dashboard/lib/lang/ar_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/ar_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/bg_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/bg_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/br_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/cz_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/cz_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng
@@ -1,8 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox-Speicherplatz';
$wb["email_txt"] = 'E-Mail-Adresse';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Verwendet';
$wb["quota_txt"] = 'Verfügbar';
$wb["no_email_accounts_txt"] = 'Kein E-Mail-Konto gefunden.';
?>
$wb['mailquota_txt'] = 'Mailbox-Speicherplatz';
$wb['email_txt'] = 'E-Mail-Adresse';
$wb['name_txt'] = 'Name';
$wb['used_txt'] = 'Verwendet';
$wb['quota_txt'] = 'Verfügbar';
$wb['no_email_accounts_txt'] = 'Kein E-Mail-Konto gefunden.';
?>
interface/web/dashboard/lib/lang/de_dashlet_quota.lng
@@ -1,8 +1,8 @@
<?php
$wb["quota_txt"] = 'Webseiten-Speicherplatz';
$wb["domain_txt"] = 'Domain / Webseite';
$wb["used_txt"] = 'Verwendet';
$wb["hard_txt"] = 'Hard Limit';
$wb["soft_txt"] = 'Soft Limit';
$wb["no_sites_txt"] = 'Keine Webseite gefunden.';
?>
$wb['quota_txt'] = 'Webseiten-Speicherplatz';
$wb['domain_txt'] = 'Domain / Webseite';
$wb['used_txt'] = 'Verwendet';
$wb['hard_txt'] = 'Hard Limit';
$wb['soft_txt'] = 'Soft Limit';
$wb['no_sites_txt'] = 'Keine Webseite gefunden.';
?>
interface/web/dashboard/lib/lang/el_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/el_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/es_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/es_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/fi_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/fi_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/fr_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/fr_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/hr_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/hr_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/hu_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/hu_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/id_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/id_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/it_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/it_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/ja_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/ja_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/nl_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/nl_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/pl_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/pl_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/pt_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/pt_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/ro_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/ro_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/ru_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/ru_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/se_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/se_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/sk_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/sk_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["mailquota_txt"] = 'Mailbox Quota';
$wb["email_txt"] = 'Email Address';
$wb["name_txt"] = 'Name';
$wb["used_txt"] = 'Used Space';
$wb["quota_txt"] = 'Quota';
$wb["no_email_accounts_txt"] = 'No email accounts found.';
?>
interface/web/dashboard/lib/lang/tr_dashlet_quota.lng
New file
@@ -0,0 +1,8 @@
<?php
$wb["quota_txt"] = 'Website Harddisk Quota';
$wb["domain_txt"] = 'Domain / Website';
$wb["used_txt"] = 'Used space';
$wb["hard_txt"] = 'Hard limit';
$wb["soft_txt"] = 'Soft limit';
$wb["no_sites_txt"] = 'No web sites found.';
?>
interface/web/dashboard/templates/dashboard.htm
@@ -41,7 +41,7 @@
            </tmpl_if>
        </tmpl_loop>
    </div>
    <div style="float:left; width:350px;">
    <div style="float:left; width:350px;padding-left:15px;">
        <tmpl_loop name='rightcol'>
            {tmpl_var name='content'}
            <tmpl_if name='content'>
interface/web/dns/lib/lang/tr_dns_mx.lng
@@ -13,4 +13,5 @@
$wb['name_error_regex'] = 'Hostname yanlış formatta.';
$wb['data_error_empty'] = 'Mail sunucusu hostname boş';
$wb['data_error_regex'] = 'Mail sunucusu hostname geçersiz formatta';
$wb['duplicate_mx_record_txt'] = 'Duplicate MX record.';
?>
interface/web/help/lib/lang/ar_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Message';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/ar_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Sender';
$wb['subject_txt'] = 'Subject';
$wb['add_new_record_txt'] = 'Create new support message';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/bg_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Съобщение';
$wb['tstamp_txt'] = 'Дата';
$wb['reply_txt'] = 'Отговори';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/bg_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Подател';
$wb['subject_txt'] = 'Тема';
$wb['add_new_record_txt'] = 'Ново съобщение';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/br_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Mensagem';
$wb['tstamp_txt'] = 'Dados';
$wb['reply_txt'] = 'Responder';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/br_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'De';
$wb['subject_txt'] = 'Assunto';
$wb['add_new_record_txt'] = 'Crie uma nova mensagem de suporte';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/cz_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Zpráva';
$wb['tstamp_txt'] = 'Časové razítko';
$wb['reply_txt'] = 'Odpovědět';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/cz_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Odesílatel';
$wb['subject_txt'] = 'Předmět';
$wb['add_new_record_txt'] = 'Vytvořit zprávu pro podporu';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/el_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Μήνυμα';
$wb['tstamp_txt'] = 'Ημερομηνία/Ώρα';
$wb['reply_txt'] = 'Απάντηση';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/el_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Αποστολέας';
$wb['subject_txt'] = 'Θέμα';
$wb['add_new_record_txt'] = 'Νέο μήνυμα υποστήριξης';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/es_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Mensaje';
$wb['tstamp_txt'] = 'Marca de tiempo';
$wb['reply_txt'] = 'Responder';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/es_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Remitente';
$wb['subject_txt'] = 'Asunto';
$wb['add_new_record_txt'] = 'Crear nuevo mensaje de soporte';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/fi_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Tukipyyntö';
$wb['tstamp_txt'] = 'Päiväys';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/fi_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Tukipyynnön lähettäjä';
$wb['subject_txt'] = 'Tukipyynnön aihe';
$wb['add_new_record_txt'] = 'Lähetä uusi tukipyyntö';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/fr_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Message';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Répondre';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/fr_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Expéditeur';
$wb['subject_txt'] = 'Sujet';
$wb['add_new_record_txt'] = 'Créer un nouveau message de support';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/hr_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Poruka';
$wb['tstamp_txt'] = 'Vrijeme';
$wb['reply_txt'] = 'Odgovori';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/hr_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Pošiljatelj';
$wb['subject_txt'] = 'Naslov poruke';
$wb['add_new_record_txt'] = 'Pošalji novu poruku';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/hu_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Üzenet';
$wb['tstamp_txt'] = 'Időbélyeg';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/hu_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Feladó';
$wb['subject_txt'] = 'Tárgy';
$wb['add_new_record_txt'] = 'Új support üzenet';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/id_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Pesan';
$wb['tstamp_txt'] = 'Tanda Waktu';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/id_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Pengirim';
$wb['subject_txt'] = 'Judul';
$wb['add_new_record_txt'] = 'Buat Pesan Dukungan Baru';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/it_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Messaggio';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/it_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Mittente';
$wb['subject_txt'] = 'Oggetto';
$wb['add_new_record_txt'] = 'Crea nuovo messaggio di supporto';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/ja_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = '本文';
$wb['tstamp_txt'] = '送信日時';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/ja_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = '送信者';
$wb['subject_txt'] = '件名';
$wb['add_new_record_txt'] = 'サポートメッセージを作成する';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/nl_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Bericht';
$wb['tstamp_txt'] = 'Tijdstip';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/nl_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Afzender';
$wb['subject_txt'] = 'Onderwerp';
$wb['add_new_record_txt'] = 'Maak een nieuw support bericht';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/pl_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Wiadomość';
$wb['tstamp_txt'] = 'Kalendarz';
$wb['reply_txt'] = 'Odpowiedź';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/pl_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Nadawca';
$wb['subject_txt'] = 'Temat';
$wb['add_new_record_txt'] = 'Wyślij wiadomość';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/pt_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Mensagem';
$wb['tstamp_txt'] = 'Data';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/pt_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'De';
$wb['subject_txt'] = 'Assunto';
$wb['add_new_record_txt'] = 'Crie uma nova mensagem de suporte';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/ro_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Mesaj';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/ro_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Expeditor';
$wb['subject_txt'] = 'Subiect';
$wb['add_new_record_txt'] = 'Creatie mesaj nou catre support';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/ru_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Сообщение';
$wb['tstamp_txt'] = 'Штамп времени';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/ru_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'От';
$wb['subject_txt'] = 'Тема';
$wb['add_new_record_txt'] = 'Создайте новое сообщение службы поддержки';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/se_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Message';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/se_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Sender';
$wb['subject_txt'] = 'Subject';
$wb['add_new_record_txt'] = 'Create new support message';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/sk_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Správa';
$wb['tstamp_txt'] = 'Časová pečiatka';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/sk_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Odosielateľ';
$wb['subject_txt'] = 'Predmet';
$wb['add_new_record_txt'] = 'Vytvoriť novú správu pre podporu';
$wb['date_txt'] = 'Date';
?>
interface/web/help/lib/lang/tr_support_message.lng
@@ -5,4 +5,11 @@
$wb['message_txt'] = 'Message';
$wb['tstamp_txt'] = 'Timestamp';
$wb['reply_txt'] = 'Reply';
$wb['date_txt'] = 'Date';
$wb['support_request_subject_txt'] = 'Support Request';
$wb['support_request_txt'] = 'You have got a support request. Please don\'t reply to this email, but process the support request inside ISPConfig.';
$wb['answer_to_support_request_txt'] = 'You have got a reply to your support request. Please don\'t reply to this email, but process the message inside ISPConfig.';
$wb['answer_to_support_request_sent_txt'] = 'Your reply to the support request has been sent. Please don\'t reply to this email.';
$wb['support_request_sent_txt'] = 'Your support request has been sent. Please don\'t reply to this email.';
$wb['recipient_or_sender_email_address_not_valid_txt'] = 'The message could not be sent because the recipient and/or the sender email address is not valid.';
?>
interface/web/help/lib/lang/tr_support_message_list.lng
@@ -3,4 +3,5 @@
$wb['sender_id_txt'] = 'Gönderici';
$wb['subject_txt'] = 'Konu';
$wb['add_new_record_txt'] = 'Yeni destek mesajı oluştur';
$wb['date_txt'] = 'Date';
?>
interface/web/js/scrigo.js.php
@@ -642,40 +642,65 @@
    return false;
}
var new_tpl_add_id = 0;
function addAdditionalTemplate(){
    var tpl_add = document.getElementById('template_additional').value;
      var tpl_list = document.getElementById('template_additional_list').innerHTML;
      var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
      var addTplId = addTemplate[0];
      var addTplText = addTemplate[1];
    var tpl_add = jQuery('#template_additional').val();
    var addTemplate = jQuery('#tpl_add_select').val().split('|',2);
    var addTplId = addTemplate[0];
    var addTplText = addTemplate[1];
    if(addTplId > 0) {
      var newVal = tpl_add + '/' + addTplId + '/';
      newVal = newVal.replace('//', '/');
      var newList = tpl_list + '<br>' + addTplText;
      newList = newList.replace('<br><br>', '<br>');
      document.getElementById('template_additional').value = newVal;
      document.getElementById('template_additional_list').innerHTML = newList;
      alert('additional template ' + addTplText + ' added to customer');
        var newVal = tpl_add.split('/');
        new_tpl_add_id += 1;
        var delbtn = jQuery('<a href="#"></a>').attr('class', 'button icons16 icoDelete').click(function(e) {
            e.preventDefault();
            delAdditionalTemplate($(this).parent().attr('rel'));
        });
        newVal[newVal.length] = 'n' + new_tpl_add_id + ':' + addTplId;
        jQuery('<li>' + addTplText + '</li>').attr('rel', 'n' + new_tpl_add_id).append(delbtn).appendTo('#template_additional_list ul');
        jQuery('#template_additional').val(newVal.join('/'));
        alert('additional template ' + addTplText + ' added to customer');
    } else {
      alert('no additional template selcted');
        alert('no additional template selcted');
    }
}
function delAdditionalTemplate(){
    var tpl_add = document.getElementById('template_additional').value;
    if(tpl_add != '') {
        var tpl_list = document.getElementById('template_additional_list').innerHTML;
function delAdditionalTemplate(tpl_id){
    var tpl_add = jQuery('#template_additional').val();
    if(tpl_id) {
        // new style
        var $el = jQuery('#template_additional_list ul').find('li[rel="' + tpl_id + '"]').eq(0); // only the first
        var addTplText = $el.text();
        $el.remove();
        var oldVal = tpl_add.split('/');
        var newVal = new Array();
        for(var i = 0; i < oldVal.length; i++) {
            var tmp = oldVal[i].split(':', 2);
            if(tmp.length == 2 && tmp[0] == tpl_id) continue;
            newVal[newVal.length] = oldVal[i];
        }
        jQuery('#template_additional').val(newVal.join('/'));
        alert('additional template ' + addTplText + ' deleted from customer');
    } else if(tpl_add != '') {
        // old style
        var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
        var addTplId = addTemplate[0];
        var addTplText = addTemplate[1];
        jQuery('#template_additional_list ul').find('li:not([rel])').each(function() {
            var text = jQuery(this).text();
            if(text == addTplText) {
                jQuery(this).remove();
                return false;
            }
            return this;
        });
        var newVal = tpl_add;
        newVal = newVal.replace(addTplId, '');
        var repl = new RegExp('(^|\/)' + addTplId + '(\/|$)');
        newVal = newVal.replace(repl, '');
        newVal = newVal.replace('//', '/');
        var newList = tpl_list.replace(addTplText, '');
        newList = newList.replace('<br><br>', '<br>');
        document.getElementById('template_additional').value = newVal;
        document.getElementById('template_additional_list').innerHTML = newList;
        jQuery('#template_additional').val(newVal);
        alert('additional template ' + addTplText + ' deleted from customer');
  } else {
      alert('no additional template selcted');
interface/web/login/lib/lang/ar.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/bg.lng
@@ -21,4 +21,5 @@
$wb['email_txt'] = 'Email';
$wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/br.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/cz.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Znovu odeslat heslo';
$wb['email_txt'] = 'E-mail';
$wb['theme_not_compatible'] = 'Zvolené téma není kompatibilní s aktuální verzí ISPConfig. Zkontrolujte prosím, zda není nová verze tématu.<br />Výchozí motiv byl aktivován automaticky.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/el.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/es.lng
@@ -21,4 +21,5 @@
$wb['email_txt'] = 'Email';
$wb['error_maintenance_mode'] = 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/fi.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/fr.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/hr.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/hu.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/id.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/it.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/ja.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/nl.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/pl.lng
@@ -21,4 +21,5 @@
$wb['email_txt'] = 'E-mail';
$wb['error_maintenance_mode'] = 'Ta instalacja ISPConfig jest aktualnie w trakcje modernizacji. Wracamy niebawem - proszę o cierpliwość.';
$wb['theme_not_compatible'] = 'Wybrany temat nie jest kompatybilny z aktualną wersją ISPConfig. Proszę wybrać nową wersję tematu.<br />Został aktywowany automatycznie domyślny temat.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/pt.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/ro.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/ru.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/se.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/sk.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/login/lib/lang/tr.lng
@@ -21,4 +21,5 @@
$wb['pw_button_txt'] = 'Resend password';
$wb['email_txt'] = 'Email';
$wb['theme_not_compatible'] = 'The chosen theme is not compatible with the current ISPConfig version. Please check for a new version of the theme.<br />The default theme as been activated automatically.';
$wb['back_txt'] = 'Back';
?>
interface/web/mail/lib/lang/ar_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/ar_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/bg_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/bg_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Име';
$wb['email_txt'] = 'Емайл адрес';
$wb['used_txt'] = 'Използвано място';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/br_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Correio (Padrão)';
$wb['fullname_txt'] = 'Nome';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/br_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/cz_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (vzor)';
$wb['fullname_txt'] = 'Název';
$wb['local_txt'] = 'Lokální';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/cz_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Jméno';
$wb['email_txt'] = 'E-mailová adresa';
$wb['used_txt'] = 'Využité místo';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/de_mail_get.lng
@@ -14,5 +14,5 @@
$wb['destination_error_isemail'] = 'Kein Ziel gewählt.';
$wb['source_server_error_regex'] = 'POP3/IMAP Server ist kein gültiger Domainname.';
$wb['source_read_all_txt'] = 'Alle E-Mails abrufen (inkl. bereits gelesene E-Mails)';
$wb['error_delete_read_all_combination'] = 'Unzulässige Kombination von Optionen. Sie können ';
$wb['error_delete_read_all_combination'] = 'Unzulässige Kombination von Optionen. Sie können "E-Mails nach Empfang löschen" = nein nicht zusammen mit "Alle E-Mails abrufen (inkl. bereits gelesene E-Mails)" = ja benutzen.';
?>
interface/web/mail/lib/lang/el_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Μοτίβο)';
$wb['fullname_txt'] = 'Όνομα';
$wb['local_txt'] = 'Τοπικός';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/el_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Όνομα';
$wb['email_txt'] = 'Διεύθυνση Email';
$wb['used_txt'] = 'Χώρος σε χρήση';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/es_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Correo';
$wb['fullname_txt'] = 'Nombre';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/es_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Nombre';
$wb['email_txt'] = 'Correo';
$wb['used_txt'] = 'Usado';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/fi_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Sähköpostiosoite (RegExp)';
$wb['fullname_txt'] = 'Koko nimi';
$wb['local_txt'] = 'Paikallinen';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/fi_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/fr_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Schéma)';
$wb['fullname_txt'] = 'Nom';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/fr_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Nom';
$wb['email_txt'] = 'Adresse email';
$wb['used_txt'] = 'Espace utilisé';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/hr_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/hr_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/hu_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Minta)';
$wb['fullname_txt'] = 'Név';
$wb['local_txt'] = 'Helyi';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/hu_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/id_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pola)';
$wb['fullname_txt'] = 'Nama';
$wb['local_txt'] = 'Lokal';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/id_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/it_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/it_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/ja_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'メールアドレス(パターン)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/ja_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/nl_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'E-mail (Patroon)';
$wb['fullname_txt'] = 'Naam';
$wb['local_txt'] = 'Locaal';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/nl_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/pl_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'E-mail (wzór)';
$wb['fullname_txt'] = 'Nazwa';
$wb['local_txt'] = 'Lokalne';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/pl_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Nazwa';
$wb['email_txt'] = 'Adres e-mail';
$wb['used_txt'] = 'Użycie dysku';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/pt_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Correio (Padrão)';
$wb['fullname_txt'] = 'Nome';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/pt_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/ro_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Nume';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/ro_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/ru_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Шаблон)';
$wb['fullname_txt'] = 'Имя';
$wb['local_txt'] = 'Локальный';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/ru_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/se_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Pattern)';
$wb['fullname_txt'] = 'Name';
$wb['local_txt'] = 'Local';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/se_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/sk_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'E-mail (vzor)';
$wb['fullname_txt'] = 'Meno';
$wb['local_txt'] = 'Miestny';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/sk_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/lib/lang/tr_spamfilter_users.lng
@@ -5,4 +5,6 @@
$wb['email_txt'] = 'Email (Desen)';
$wb['fullname_txt'] = 'İsim';
$wb['local_txt'] = 'Yerel';
$wb['email_error_notempty'] = 'The email address must not be empty.';
$wb['fullname_error_notempty'] = 'The name must not be empty.';
?>
interface/web/mail/lib/lang/tr_user_quota_stats_list.lng
@@ -4,4 +4,5 @@
$wb['name_txt'] = 'Name';
$wb['email_txt'] = 'Email Address';
$wb['used_txt'] = 'Used space';
$wb['percentage_txt'] = 'Used %';
?>
interface/web/mail/mail_alias_edit.php
@@ -98,6 +98,12 @@
        $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($app->functions->idn_encode($_POST["email_domain"]))."' AND ".$app->tform->getAuthSQL('r'));
        if($domain["domain"] != $app->functions->idn_encode($_POST["email_domain"])) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"];
        
        //* Check if destination email belongs to user
        if(isset($_POST["destination"])) {
            $email = $app->db->queryOneRecord("SELECT email FROM mail_user WHERE email = '".$app->db->quote($app->functions->idn_encode($_POST["destination"]))."' AND ".$app->tform->getAuthSQL('r'));
            if($email["email"] != $app->functions->idn_encode($_POST["destination"])) $app->tform->errorMessage .= $app->tform->lng("no_destination_perm");
        }
        // Check the client limits, if user is not the admin
        if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
            // Get the limits of the client
interface/web/mail/mail_get_edit.php
@@ -69,6 +69,12 @@
    function onSubmit() {
        global $app, $conf;
        
        //* Check if destination email belongs to user
        if(isset($_POST["destination"])) {
            $email = $app->db->queryOneRecord("SELECT email FROM mail_user WHERE email = '".$app->db->quote($app->functions->idn_encode($_POST["destination"]))."' AND ".$app->tform->getAuthSQL('r'));
            if($email["email"] != $app->functions->idn_encode($_POST["destination"])) $app->tform->errorMessage .= $app->tform->lng("no_destination_perm");
        }
        // Check the client limits, if user is not the admin
        if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin
            // Get the limits of the client
interface/web/mail/mail_user_edit.php
@@ -166,7 +166,7 @@
            }
            
            // Check the quota and adjust
            if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0) {
            if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0 && $app->functions->intval($this->dataRecord["quota"]) * 1024 * 1024 != $this->oldDataRecord['quota']) {
                $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u'));
                $mailquota = $tmp["mailquota"] / 1024 / 1024;
                $new_mailbox_quota = $app->functions->intval($this->dataRecord["quota"]);
interface/web/monitor/lib/lang/ar.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/bg.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Покажи fail2ban-Log';
$wb['Show IPTables'] = 'Покажи IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Покажи OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/br.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/cz.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Zobrazit Fail2Ban Log';
$wb['Show IPTables'] = 'Zobrazit IPTables pravidla';
$wb['Show OpenVz VE BeanCounter'] = 'Ukázat OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/el.lng
@@ -146,4 +146,10 @@
$wb['Show IPTables'] = 'Εμφάνιση IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['monitor_serverstate_raidresync_txt'] = 'Your RAID is in RESYNC mode';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/es.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Mostrar el registro de Fail2ban';
$wb['Show IPTables'] = 'Mostrar IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Mostrar OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/fi.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/fr.lng
@@ -146,4 +146,10 @@
$wb['monitor_title_beancounter_txt'] = 'Compteur OpenVz VE';
$wb['monitor_updates_nosupport_txt'] = 'Votre distribution nest pas supportée par le moniteur';
$wb['monitor_beancounter_nosupport_txt'] = 'Ce serveur n\'est pas un VE OpenVz et n\'a pas d\'information de compteur';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/hr.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Prikaži Fail2Ban log';
$wb['Show IPTables'] = 'Prikaži IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Prikaži OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/hu.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/id.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/it.lng
@@ -146,4 +146,10 @@
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['monitor_title_iptables_txt'] = 'IPTables Rules';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/ja.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/nl.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/pl.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Pokaż log fail2ban';
$wb['Show IPTables'] = 'Pokaż reguły IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/pt.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/ro.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/ru.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/se.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/sk.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/monitor/lib/lang/tr.lng
@@ -146,4 +146,10 @@
$wb['Show fail2ban-Log'] = 'Show fail2ban-Log';
$wb['Show IPTables'] = 'Show IPTables';
$wb['Show OpenVz VE BeanCounter'] = 'Show OpenVz VE BeanCounter';
$wb['Show Monit'] = 'Show Monit';
$wb['no_monit_url_defined_txt'] = 'No Monit URL defined.';
$wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.';
$wb['Show Munin'] = 'Show Munin';
$wb['no_munin_url_defined_txt'] = 'No Munin URL defined.';
$wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.';
?>
interface/web/sites/ajax_get_json.php
@@ -34,11 +34,12 @@
//* Check permissions for module
$app->auth->check_module_permissions('sites');
$app->uses('getconf');
$app->uses('getconf,tform');
$server_id = $app->functions->intval($_GET["server_id"]);
$web_id = $app->functions->intval($_GET["web_id"]);
$php_type = $_GET["php_type"];
$client_group_id = $app->functions->intval($_GET['client_group_id']);
$type = $_GET["type"];
//if($_SESSION["s"]["user"]["typ"] == 'admin') {
@@ -55,7 +56,7 @@
    
    if($type == 'getserverid'){
        $json = '{"serverid":"';
        $sql = "SELECT server_id FROM web_domain WHERE domain_id = $web_id";
        $sql = "SELECT server_id FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r');
        $server = $app->db->queryOneRecord($sql);
        $json .= $server['server_id'];
        unset($server);
@@ -69,10 +70,26 @@
        $web_config = $app->getconf->get_server_config($server_id, 'web');
        if(!empty($web_config['server_type'])) $server_type = $web_config['server_type'];
        if($server_type == 'nginx' && $php_type == 'fast-cgi') $php_type = 'php-fpm';
        // get client id
        $sql_where = '';
        if($_SESSION["s"]["user"]["typ"] != 'admin'){
            $sql_where = " AND client_id = ".$_SESSION["s"]["user"]["client_id"];
        //* Client: If the logged in user is not admin and has no sub clients (no reseller)
        if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) {
            $sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"] . ")";
        //* Reseller: If the logged in user is not admin and has sub clients (is a reseller)
        } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
            $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $client_group_id");
            //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"];
            $sql_where = " AND (client_id = 0";
            if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']);
            $sql_where .= ")";
        //* Admin: If the logged in user is admin
        } else {
            //$sql_where = '';
            $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $client_group_id");
            //$sql_where = " AND (client_id = 0 OR client_id = ".$_SESSION["s"]["user"]["client_id"];
            $sql_where = " AND (client_id = 0";
            if($app->functions->intval($client['client_id']) > 0) $sql_where .= " OR client_id = ".$app->functions->intval($client['client_id']);
            $sql_where .= ")";
        }
        
        if($php_type == 'php-fpm'){
@@ -99,7 +116,7 @@
    
    if($type == 'getphptype'){
        $json = '{"phptype":"';
        $sql = "SELECT php FROM web_domain WHERE domain_id = $web_id";
        $sql = "SELECT php FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r');
        $php = $app->db->queryOneRecord($sql);
        $json .= $php['php'];
        unset($php);
@@ -108,7 +125,7 @@
    
    if($type == 'getredirecttype'){
        $json = '{"redirecttype":"';
        $sql = "SELECT redirect_type FROM web_domain WHERE domain_id = $web_id";
        $sql = "SELECT redirect_type FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r');
        $redirect = $app->db->queryOneRecord($sql);
        $json .= $redirect['redirect_type'];
        unset($redirect);
@@ -138,7 +155,7 @@
    if($type == 'getdatabaseusers') {
        $json = '{}';
        
        $sql = "SELECT sys_groupid FROM web_domain WHERE domain_id = $web_id";
        $sql = "SELECT sys_groupid FROM web_domain WHERE domain_id = $web_id AND ".$app->tform->getAuthSQL('r');
        $group = $app->db->queryOneRecord($sql);
        if($group) {
            $sql = "SELECT database_user_id, database_user FROM web_database_user WHERE sys_groupid = '" . $group['sys_groupid'] . "'";
interface/web/sites/cron_edit.php
@@ -104,7 +104,8 @@
        }
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        
        // Set fixed values
        $this->dataRecord["server_id"] = $parent_domain["server_id"];
interface/web/sites/database_edit.php
@@ -136,6 +136,9 @@
    function onSubmit() {
        global $app, $conf;
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        if($_SESSION["s"]["user"]["typ"] != 'admin') {
            // Get the limits of the client
            $client_group_id = $_SESSION["s"]["user"]["default_group"];
@@ -186,7 +189,7 @@
    function onBeforeUpdate() {
        global $app, $conf, $interfaceConf;
        //* Site shell not be empty
        //* Site shall not be empty
        if($this->dataRecord['parent_domain_id'] == 0) $app->tform->errorMessage .= $app->tform->lng("database_site_error_empty").'<br />';
        
        //* Get the database name and database user prefix
interface/web/sites/ftp_user_edit.php
@@ -91,7 +91,15 @@
        global $app, $conf;
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        if(isset($this->dataRecord["parent_domain_id"])) {
            $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
            if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        } else {
            $tmp = $app->tform->getDataRecord($this->id);
            $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval($tmp["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
            if(!$parent_domain) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
            unset($tmp);
        }
        
        // Set a few fixed values
        $this->dataRecord["server_id"] = $parent_domain["server_id"];
interface/web/sites/lib/lang/ar_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/ar_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/ar_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/bg_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/bg_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/bg_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/br_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/br_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/br_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/cz_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Opakujte heslo';
$wb['password_mismatch_txt'] = 'Hesla se neshodují.';
$wb['password_match_txt'] = 'Hesla se shodují.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/cz_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/cz_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Opakujte heslo';
$wb['password_mismatch_txt'] = 'Hesla se neshodují.';
$wb['password_match_txt'] = 'Hesla se shodují.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/de_database_admin_list.lng
@@ -8,4 +8,5 @@
$wb['database_name_txt'] = 'Datenbankname';
$wb['add_new_record_txt'] = 'Neue Datenbank hinzufügen';
$wb['sys_groupid_txt'] = 'Kunde';
$wb['parent_domain_id_txt'] = 'Domain';
?>
interface/web/sites/lib/lang/de_database_list.lng
@@ -7,4 +7,5 @@
$wb['database_name_txt'] = 'Datenbankname';
$wb['add_new_record_txt'] = 'Neue Datenbank hinzufügen';
$wb['database_user_txt'] = 'Database user';
$wb['parent_domain_id_txt'] = 'Domain';
?>
interface/web/sites/lib/lang/de_web_domain.lng
@@ -119,4 +119,5 @@
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Unzulässige Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Erlaubte Direktiven:';
$wb['configuration_error_txt'] = "KONFIGURATIONSFEHLER";
?>
interface/web/sites/lib/lang/de_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Passwort wiederholen';
$wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.';
$wb['password_match_txt'] = 'Die Passwörter stimmen überein.';
$wb['no_folder_perm'] = 'Sie haben keine Berechtigung für diesen Ordner.';
?>
interface/web/sites/lib/lang/el_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/el_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/el_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/en_database_admin_list.lng
@@ -8,4 +8,5 @@
$wb["database_name_txt"] = 'Database name';
$wb["add_new_record_txt"] = 'Add new Database';
$wb["sys_groupid_txt"] = 'Client';
$wb["parent_domain_id_txt"] = 'Website';
?>
interface/web/sites/lib/lang/en_database_list.lng
@@ -7,4 +7,5 @@
$wb["database_user_txt"] = 'Database user';
$wb["database_name_txt"] = 'Database name';
$wb["add_new_record_txt"] = 'Add new Database';
?>
$wb["parent_domain_id_txt"] = 'Website';
?>
interface/web/sites/lib/lang/en_web_domain.lng
@@ -119,4 +119,5 @@
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
$wb['configuration_error_txt'] = "CONFIGURATION ERROR";
?>
interface/web/sites/lib/lang/en_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb["no_folder_perm"] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/es_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/es_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/es_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/fi_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/fi_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/fi_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/fr_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/fr_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/fr_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/hr_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/hr_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/hr_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/hu_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/hu_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/hu_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/id_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/id_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/id_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/it_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/it_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/it_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/ja_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/ja_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/ja_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/nl_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/nl_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/nl_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/pl_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Powtórz hasło';
$wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie';
$wb['password_match_txt'] = 'Hasła pasują';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/pl_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Dyrektywy Proxy';
$wb['available_proxy_directive_snippets_txt'] = 'Dostępne zestawy dyrektyw Proxy:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/pl_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Powtórz hasło';
$wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie';
$wb['password_match_txt'] = 'Hasła pasują';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/pt_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/pt_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/pt_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/ro_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/ro_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/ro_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/ru_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/ru_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/ru_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/se_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/se_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/se_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/sk_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/sk_web_domain.lng
@@ -112,4 +112,11 @@
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/sk_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/lib/lang/tr_shell_user.lng
@@ -26,4 +26,6 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['username_must_not_exceed_32_chars_txt'] = 'The username must not exceed 32 characters.';
$wb['username_not_allowed_txt'] = 'The username is not allowed.';
?>
interface/web/sites/lib/lang/tr_web_domain.lng
@@ -111,4 +111,12 @@
$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:';
$wb['proxy_directives_txt'] = 'Proxy Directives';
$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:';
$wb['no_server_error'] = 'No server selected.';
$wb['no_backup_txt'] = 'No backup';
$wb['daily_backup_txt'] = 'Daily';
$wb['weekly_backup_txt'] = 'Weekly';
$wb['monthly_backup_txt'] = 'Monthly';
$wb['rewrite_rules_txt'] = 'Rewrite Rules';
$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
?>
interface/web/sites/lib/lang/tr_web_folder_user.lng
@@ -9,4 +9,5 @@
$wb['repeat_password_txt'] = 'Repeat Password';
$wb['password_mismatch_txt'] = 'The passwords do not match.';
$wb['password_match_txt'] = 'The passwords do match.';
$wb['no_folder_perm'] = 'You have no permission for this folder.';
?>
interface/web/sites/list/database.list.php
@@ -112,6 +112,23 @@
                                                       ),
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "parent_domain_id",
                            'datatype'    => "VARCHAR",
                            'filters'   => array( 0 => array( 'event' => 'SHOW',
                                                              'type' => 'IDNTOUTF8')
                                                ),
                            'formtype'    => "SELECT",
                            'op'        => "=",
                            'prefix'    => "",
                            'suffix'    => "",
                            'datasource'    => array (     'type'    => 'SQL',
                                        'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain",
                                        'keyfield'=> 'domain_id',
                                        'valuefield'=> 'domain'
                                     ),
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "database_user_id",
                            'datatype'    => "INTEGER",
interface/web/sites/shell_user_edit.php
@@ -99,7 +99,17 @@
        global $app, $conf;
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        //$parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        //if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        if(isset($this->dataRecord["parent_domain_id"])) {
            $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
            if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        } else {
            $tmp = $app->tform->getDataRecord($this->id);
            $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval($tmp["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
            if(!$parent_domain) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
            unset($tmp);
        }
        
        // Set a few fixed values
        $this->dataRecord["server_id"] = $parent_domain["server_id"];
interface/web/sites/templates/database_admin_list.htm
@@ -22,6 +22,7 @@
                        <th class="tbl_col_type" scope="col"><tmpl_var name="type_txt"></th>
                        <th class="tbl_col_sys_groupid" scope="col"><tmpl_var name="sys_groupid_txt"></th>
                        <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th>
                        <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th>
                        <th class="tbl_col_database_user_id" scope="col"><tmpl_var name="database_user_txt"></th>
                        <th class="tbl_col_database_name" scope="col"><tmpl_var name="database_name_txt"></th>
                        <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th>
@@ -32,6 +33,7 @@
                        <td class="tbl_col_type"><select name="search_type">{tmpl_var name='search_type'}</select></td>
                        <td class="tbl_col_sys_groupid"><select name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td>
                        <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td>
                        <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td>
                        <td class="tbl_col_database_user"><select name="search_database_user_id">{tmpl_var name='search_database_user_id'}</select></td>
                        <td class="tbl_col_database_name"><input type="text" name="search_database_name" value="{tmpl_var name='search_database_name'}" /></td>
                        <td class="tbl_col_buttons">
@@ -47,6 +49,7 @@
                            <td class="tbl_col_type"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td>
                            <td class="tbl_col_sys_groupid"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td>
                            <td class="tbl_col_server_id"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td>
                            <td class="tbl_col_parent_domain_id"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td>
                            <td class="tbl_col_database_user"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user_id"}</a></td>
                            <td class="tbl_col_database_name"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_name"}</a></td>
                            <td class="tbl_col_buttons">
interface/web/sites/templates/database_list.htm
@@ -38,6 +38,7 @@
                        <th class="tbl_col_remote_access" scope="col"><tmpl_var name="remote_access_txt"></th>
                        <th class="tbl_col_type" scope="col"><tmpl_var name="type_txt"></th>
                        <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th>
                        <th class="tbl_col_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th>
                        <th class="tbl_col_database_user_id" scope="col"><tmpl_var name="database_user_txt"></th>
                        <th class="tbl_col_database_name" scope="col"><tmpl_var name="database_name_txt"></th>
                        <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th>
@@ -47,6 +48,7 @@
                        <td class="tbl_col_remote_access"><select name="search_remote_access">{tmpl_var name='search_remote_access'}</select></td>
                        <td class="tbl_col_type"><select name="search_type">{tmpl_var name='search_type'}</select></td>
                        <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td>
                        <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td>
                        <td class="tbl_col_database_user_id"><select name="search_database_user_id">{tmpl_var name='search_database_user_id'}</select></td>
                        <td class="tbl_col_database_name"><input type="text" name="search_database_name" value="{tmpl_var name='search_database_name'}"/></td>
                        <td class="tbl_col_buttons">
@@ -61,6 +63,7 @@
                            <td class="tbl_col_remote_access"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="remote_access"}</a></td>
                            <td class="tbl_col_type"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td>
                            <td class="tbl_col_server_id"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td>
                            <td class="tbl_col_parent_domain_id"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td>
                            <td class="tbl_col_database_user"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user_id"}</a></td>
                            <td class="tbl_col_database_name"><a href="#" onclick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_name"}</a></td>
                            <td class="tbl_col_buttons">
interface/web/sites/templates/web_domain_advanced.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
interface/web/sites/templates/web_domain_backup.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
interface/web/sites/templates/web_domain_edit.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
@@ -172,6 +181,7 @@
    jQuery('#client_group_id').change(function(){
        clientGroupId = $(this).val();
        reloadWebIP();
        reloadFastcgiPHPVersions();
    });
        
    if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){
@@ -225,7 +235,7 @@
    }
        
    function reloadFastcgiPHPVersions(noFormChange) {
        jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) {
        jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) {
            var options = '<option value="">Default</option>';
            var phpfastcgiselected = '';
            $.each(data, function(key, val) {
interface/web/sites/templates/web_domain_redirect.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
@@ -23,7 +32,7 @@
            </div>
            <div class="ctrlHolder nginx">
                <label for="rewrite_rules">{tmpl_var name='rewrite_rules_txt'}</label>
                <textarea name="rewrite_rules" id="rewrite_rules" rows='10' cols='50' style="width:400px;">{tmpl_var name='rewrite_rules'}</textarea>&nbsp;<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b><br><br>&nbsp;break<br>&nbsp;if<br>&nbsp;return<br>&nbsp;rewrite<br>&nbsp;set
                <textarea name="rewrite_rules" id="rewrite_rules" rows='10' cols='50' style="width:400px;">{tmpl_var name='rewrite_rules'}</textarea>&nbsp;<b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b><br><br>&nbsp;break<br>&nbsp;if<br>&nbsp;return<br>&nbsp;rewrite<br>&nbsp;set<br><br>&nbsp;<a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a>
            </div>
        </fieldset>
interface/web/sites/templates/web_domain_ssl.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
interface/web/sites/templates/web_domain_stats.htm
@@ -1,6 +1,15 @@
<h2><tmpl_var name="list_head_txt"></h2>
<p><tmpl_var name="list_desc_txt"></p>
<tmpl_if name="config_error_msg">
<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
                <div>
                <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
                </div>
</div>
</tmpl_if>
<div class="panel panel_web_domain">
    <div class="pnl_formsarea">
interface/web/sites/web_aliasdomain_edit.php
@@ -143,7 +143,8 @@
        }
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        
        // Set a few fixed values
        $this->dataRecord["type"] = 'alias';
interface/web/sites/web_domain_edit.php
@@ -188,8 +188,11 @@
            $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contactname'].'</option>';
            //$tmp_data_record = $app->tform->getDataRecord($this->id);
            if(is_array($records)) {
                $selected_client_group_id = 0; // needed to get list of PHP versions
                foreach( $records as $rec) {
                    if(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $rec["groupid"];
                    $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
                    if($selected == 'SELECTED') $selected_client_group_id = $rec["groupid"];
                    $client_select .= "<option value='$rec[groupid]' $selected>$rec[contactname]</option>\r\n";
                }
            }
@@ -229,11 +232,14 @@
            $server_type = 'apache';
            if(!empty($web_config['server_type'])) $server_type = $web_config['server_type'];
            if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm';
            $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $selected_client_group_id");
            //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")";
            $sql_where = " AND (client_id = 0 OR client_id = ".intval($selected_client['client_id']).")";
            if($this->dataRecord['php'] == 'php-fpm'){
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")");
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver'])).$sql_where);
            }
            if($this->dataRecord['php'] == 'fast-cgi') {
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")");
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $this->dataRecord['server_id'] : intval($client['default_webserver'])).$sql_where);
            }
            $php_select = "<option value=''>Default</option>";
            if(is_array($php_records) && !empty($php_records)) {
@@ -350,16 +356,36 @@
            $app->tpl->setVar("ipv6_address",$ip_select);
            unset($tmp);
            unset($ips);
            // Fill the client select field
            $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name";
            $clients = $app->db->queryAllRecords($sql);
            $client_select = "<option value='0'></option>";
            //$tmp_data_record = $app->tform->getDataRecord($this->id);
            if(is_array($clients)) {
                $selected_client_group_id = 0; // needed to get list of PHP versions
                foreach($clients as $client) {
                    if(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $client["groupid"];
                    //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
                    $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
                    if($selected == 'SELECTED') $selected_client_group_id = $client["groupid"];
                    $client_select .= "<option value='$client[groupid]' $selected>$client[contactname]</option>\r\n";
                }
            }
            $app->tpl->setVar("client_group_id",$client_select);
            
            //PHP Version Selection (FastCGI)
            $server_type = 'apache';
            if(!empty($web_config['server_type'])) $server_type = $web_config['server_type'];
            if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm';
            $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = $selected_client_group_id");
            //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")";
            $sql_where = " AND (client_id = 0 OR client_id = ".intval($selected_client['client_id']).")";
            if($this->dataRecord['php'] == 'php-fpm'){
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id");
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id".$sql_where);
            }
            if($this->dataRecord['php'] == 'fast-cgi') {
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id");
                $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id".$sql_where);
            }
            $php_select = "<option value=''>Default</option>";
            if(is_array($php_records) && !empty($php_records)) {
@@ -375,20 +401,6 @@
            }
            $app->tpl->setVar("fastcgi_php_version",$php_select);
            unset($php_records);
            // Fill the client select field
            $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name";
            $clients = $app->db->queryAllRecords($sql);
            $client_select = "<option value='0'></option>";
            //$tmp_data_record = $app->tform->getDataRecord($this->id);
            if(is_array($clients)) {
                foreach( $clients as $client) {
                    //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':'';
                    $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':'';
                    $client_select .= "<option value='$client[groupid]' $selected>$client[contactname]</option>\r\n";
                }
            }
            $app->tpl->setVar("client_group_id",$client_select);
            
            foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y'));
            
@@ -493,6 +505,17 @@
                $domain_select .= "<option value=''></option>\r\n";
            }
            $app->tpl->setVar("domain_option",$domain_select);
        }
        // check for configuration errors in sys_datalog
        if($this->id > 0) {
            $datalog = $app->db->queryOneRecord("SELECT sys_datalog.error, sys_log.tstamp FROM sys_datalog, sys_log WHERE sys_datalog.dbtable = 'web_domain' AND sys_datalog.dbidx = 'domain_id:".$this->id."' AND sys_datalog.datalog_id = sys_log.datalog_id AND sys_log.message = CONCAT('Processed datalog_id ',sys_log.datalog_id) ORDER BY sys_datalog.tstamp DESC");
            if(is_array($datalog) && !empty($datalog)){
                if(trim($datalog['error']) != ''){
                    $app->tpl->setVar("config_error_msg",nl2br(htmlentities($datalog['error'])));
                    $app->tpl->setVar("config_error_tstamp",date($app->lng('conf_format_datetime'), $datalog['tstamp']));
                }
            }
        }
        parent::onShowEnd();
@@ -700,6 +723,10 @@
            $rewrite_rule_lines = explode("\n", $rewrite_rules);
            if(is_array($rewrite_rule_lines) && !empty($rewrite_rule_lines)){
                foreach($rewrite_rule_lines as $rewrite_rule_line){
                    // ignore comments
                    if(substr(ltrim($rewrite_rule_line),0,1) == '#') continue;
                    // empty lines
                    if(trim($rewrite_rule_line) == '') continue;
                    // rewrite
                    if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
                    // if
@@ -714,7 +741,6 @@
                    }
                    // break
                    if(preg_match('@^\s*break\s*;\s*$@', $rewrite_rule_line)){
                        $if_level += 1;
                        continue;
                    }
                    // return code [ text ]
@@ -1001,7 +1027,16 @@
            unset($backup_copies);
            unset($backup_interval);
        }
        //* Change vhost subdomain ip/ipv6 if domain ip/ipv6 has changed
        if(isset($this->dataRecord['ip_address']) && ($this->dataRecord['ip_address'] != $this->oldDataRecord['ip_address'] || $this->dataRecord['ipv6_address'] != $this->oldDataRecord['ipv6_address'])) {
            $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".$this->id);
            foreach($records as $rec) {
                $app->db->datalogUpdate('web_domain', "ip_address = '".$web_rec['ip_address']."', ipv6_address = '".$web_rec['ipv6_address']."'", 'domain_id', $rec['domain_id']);
            }
            unset($records);
            unset($rec);
        }
    }
    function onAfterDelete() {
interface/web/sites/web_folder_edit.php
@@ -55,7 +55,8 @@
        global $app, $conf;
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("select server_id FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        
        // Set a few fixed values
        $this->dataRecord["server_id"] = $parent_domain["server_id"];
interface/web/sites/web_folder_user_edit.php
@@ -55,7 +55,8 @@
        global $app, $conf;
        
        // Get the record of the parent domain
        $folder = $app->db->queryOneRecord("select server_id FROM web_folder WHERE web_folder_id = ".$app->functions->intval(@$this->dataRecord["web_folder_id"]));
        $folder = $app->db->queryOneRecord("select * FROM web_folder WHERE web_folder_id = ".$app->functions->intval(@$this->dataRecord["web_folder_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$folder || $folder['web_folder_id'] != @$this->dataRecord['web_folder_id']) $app->tform->errorMessage .= $app->tform->lng("no_folder_perm");
        
        // Set a few fixed values
        $this->dataRecord["server_id"] = $folder["server_id"];
interface/web/sites/web_subdomain_edit.php
@@ -132,7 +132,8 @@
        global $app, $conf;
        
        // Get the record of the parent domain
        $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        
        $app->uses('ini_parser,getconf');
        $settings = $app->getconf->get_global_config('domains');
interface/web/sites/web_vhost_subdomain_edit.php
@@ -368,7 +368,8 @@
            unset($tmp);
        }
        
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        // Set a few fixed values
        $this->dataRecord["type"] = 'vhostsubdomain';
interface/web/sites/webdav_user_edit.php
@@ -98,7 +98,8 @@
        global $app, $conf;
        /* Get the record of the parent domain */
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
        $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r'));
        if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm");
        /*
         * Set a few fixed values
remoting_client/examples/client_add.php
@@ -25,7 +25,7 @@
            'zip' => '21337',
            'city' => 'london',
            'state' => 'bavaria',
            'country' => 'UK',
            'country' => 'GB',
            'telephone' => '123456789',
            'mobile' => '987654321',
            'fax' => '546718293',
remoting_client/examples/client_update.php
@@ -16,17 +16,20 @@
    //* Parameters
    $reseller_id = 1;
    $c_id = 1;
    $client_id = 1;
    //* Get the client record
    $client_record = $client->client_get($session_id, $reseller_id);
    $client_record = $client->client_get($session_id, $client_id);
    //* Change parameters
    $client_record['country'] = 'de';
    $client_record['username'] = 'mguy';
    $client_record['contact_name'] = 'brush';
    
    //* We set the client password to a empty string as we do not want to change it.
    $client_record['password'] = '';
    $affected_rows = $client->client_update($session_id, $c_id, $reseller_id, $client_record);
    echo "Number of records that have been changed in the database: ".$affected_rows."<br>";
server/cron_daily.php
@@ -33,6 +33,7 @@
require(SCRIPT_PATH."/lib/app.inc.php");
set_time_limit(0);
ini_set('error_reporting', E_ALL & ~E_NOTICE);
// make sure server_id is always an int
$conf['server_id'] = intval($conf['server_id']);
@@ -742,10 +743,10 @@
                //* Send traffic notifications
                if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) {
                    $placeholders = array('{domain}' => $rec['domain'],
                                          '{admin_mail}' => $global_config['admin_mail']);
                                          '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'));
                    $recipients = array();
                    //* send email to admin
                    if($global_config['admin_mail'] != '' && $web_config['overtraffic_notify_admin'] == 'y') {
@@ -860,7 +861,7 @@
                // send notification - everything ok again
                if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y')) {
                    $placeholders = array('{domain}' => $rec['domain'],
                                          '{admin_mail}' => $global_config['admin_mail'],
                                          '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
                                          '{used}' => $rec['used'],
                                          '{soft}' => $rec['soft'],
                                          '{hard}' => $rec['hard'],
@@ -897,7 +898,7 @@
                $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = CURDATE()", 'domain_id', $rec['domain_id']);
                $placeholders = array('{domain}' => $rec['domain'],
                                      '{admin_mail}' => $global_config['admin_mail'],
                                      '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
                                      '{used}' => $rec['used'],
                                      '{soft}' => $rec['soft'],
                                      '{hard}' => $rec['hard'],
@@ -990,7 +991,7 @@
                // send notification - everything ok again
                if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) {
                    $placeholders = array('{email}' => $rec['email'],
                              '{admin_mail}' => $global_config['admin_mail'],
                              '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
                              '{used}' => $rec['used'],
                              '{name}' => $rec['name'],
                              '{quota}' => $rec['quota'],
@@ -1027,7 +1028,7 @@
                $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = CURDATE()", 'mailuser_id', $rec['mailuser_id']);
                $placeholders = array('{email}' => $rec['email'],
                          '{admin_mail}' => $global_config['admin_mail'],
                          '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'),
                          '{used}' => $rec['used'],
                          '{name}' => $rec['name'],
                          '{quota}' => $rec['quota'],
@@ -1237,7 +1238,8 @@
                if ($rec['type'] == 'mysql') {
                    $db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql';
                    $command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
                    //$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
                    $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
                    exec($command, $tmp_output, $retval);
                    //* Compress the backup with gzip
server/lib/app.inc.php
@@ -156,7 +156,7 @@
    
                } // if
                
                if($priority >= $conf['admin_notify_priority'] && $conf['admin_mail'] != '') {
                if(isset($conf['admin_notify_priority']) && $priority >= $conf['admin_notify_priority'] && $conf['admin_mail'] != '') {
                    // send notification to admin
                    $mailBody = $log_msg;
                    $mailSubject = substr($log_msg,0,50).'...';
server/lib/classes/db_mysql.inc.php
@@ -373,6 +373,15 @@
      return true;
    }
    //** Deletes a record and saves the changes into the datalog
    public function datalogError($errormsg) {
      global $app;
      if(isset($app->modules->current_datalog_id) && $app->modules->current_datalog_id > 0) $this->query("UPDATE sys_datalog set error = '".$this->quote($errormsg)."' WHERE datalog_id = ".$app->modules->current_datalog_id);
      return true;
    }
    public function freeResult($query) 
server/mods-available/dns_module.inc.php
@@ -130,9 +130,9 @@
        
        $retval = array('output' => '', 'retval' => 0);
        if($action == 'restart') {
            exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']);
            exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']);
        } else {
            exec($conf['init_scripts'] . '/' . $daemon . ' reload', $retval['output'], $retval['retval']);
            exec($conf['init_scripts'] . '/' . $daemon . ' reload 2>&1', $retval['output'], $retval['retval']);
        }
        return $retval;
    }
@@ -179,7 +179,7 @@
        }
        $retval = array('output' => '', 'retval' => 0);
        exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']);
        exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']);
//     unset $tmps;
        return $retval;
server/mods-available/web_module.inc.php
@@ -212,9 +212,9 @@
        $retval = array('output' => '', 'retval' => 0);
        if($action == 'restart') {
            exec($conf['init_scripts'] . '/' . $daemon . ' restart', $retval['output'], $retval['retval']);
            exec($conf['init_scripts'] . '/' . $daemon . ' restart 2>&1', $retval['output'], $retval['retval']);
        } else {
            exec($conf['init_scripts'] . '/' . $daemon . ' reload', $retval['output'], $retval['retval']);
            exec($conf['init_scripts'] . '/' . $daemon . ' reload 2>&1', $retval['output'], $retval['retval']);
        }
        return $retval;
    }
@@ -231,7 +231,7 @@
        if(!$init_script) $init_script = $conf['init_scripts'].'/'.$web_config['php_fpm_init_script'];
        
        $retval = array('output' => '', 'retval' => 0);
        exec($init_script.' '.$action, $retval['output'], $retval['retval']);
        exec($init_script.' '.$action.' 2>&1', $retval['output'], $retval['retval']);
        return $retval;
    }
server/plugins-available/apache2_plugin.inc.php
@@ -1563,7 +1563,7 @@
        if($web_config['check_apache_config'] == 'y') {
            //* Test if apache starts with the new configuration file
            $apache_online_status_before_restart = $this->_checkTcp('localhost',80);
            $app->log('Apache status is: '.$apache_online_status_before_restart,LOGLEVEL_DEBUG);
            $app->log('Apache status is: '.($apache_online_status_before_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG);
            $retval = $app->services->restartService('httpd','restart'); // $retval['retval'] is 0 on success and > 0 on failure
            $app->log('Apache restart return value is: '.$retval['retval'],LOGLEVEL_DEBUG);
@@ -1577,39 +1577,49 @@
                sleep(1);
            }
            //* Check if apache restarted successfully if it was online before
            $app->log('Apache online status after restart is: '.$apache_online_status_after_restart,LOGLEVEL_DEBUG);
            $app->log('Apache online status after restart is: '.($apache_online_status_after_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG);
            if($apache_online_status_before_restart && !$apache_online_status_after_restart || $retval['retval'] > 0) {
                $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN);
                if(is_array($retval['output']) && !empty($retval['output'])){
                    $app->log('Reason for Apache restart failure: '.implode("\n", $retval['output']),LOGLEVEL_WARN);
                    $app->dbmaster->datalogError(implode("\n", $retval['output']));
                } else {
                    // if no output is given, check again
                    $webserver_binary = '';
                    exec('which apache2', $webserver_check_output, $webserver_check_retval);
                    exec('which apache2ctl', $webserver_check_output, $webserver_check_retval);
                    if($webserver_check_retval == 0){
                        $webserver_binary = 'apache2';
                        $webserver_binary = 'apache2ctl';
                    } else {
                        unset($webserver_check_output, $webserver_check_retval);
                        exec('which httpd2', $webserver_check_output, $webserver_check_retval);
                        exec('which apache2', $webserver_check_output, $webserver_check_retval);
                        if($webserver_check_retval == 0){
                            $webserver_binary = 'httpd2';
                            $webserver_binary = 'apache2';
                        } else {
                            unset($webserver_check_output, $webserver_check_retval);
                            exec('which httpd', $webserver_check_output, $webserver_check_retval);
                            exec('which httpd2', $webserver_check_output, $webserver_check_retval);
                            if($webserver_check_retval == 0){
                                $webserver_binary = 'httpd';
                                $webserver_binary = 'httpd2';
                            } else {
                                unset($webserver_check_output, $webserver_check_retval);
                                exec('which apache', $webserver_check_output, $webserver_check_retval);
                                exec('which httpd', $webserver_check_output, $webserver_check_retval);
                                if($webserver_check_retval == 0){
                                    $webserver_binary = 'apache';
                                    $webserver_binary = 'httpd';
                                } else {
                                    unset($webserver_check_output, $webserver_check_retval);
                                    exec('which apache', $webserver_check_output, $webserver_check_retval);
                                    if($webserver_check_retval == 0){
                                        $webserver_binary = 'apache';
                                    }
                                }
                            }
                        }
                    }
                    if($webserver_binary != ''){
                        exec($webserver_binary.' -t 2>&1', $tmp_output, $tmp_retval);
                        if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)) $app->log('Reason for Apache restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN);
                        if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)){
                            $app->log('Reason for Apache restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN);
                            $app->dbmaster->datalogError(implode("\n", $tmp_output));
                        }
                        unset($tmp_output, $tmp_retval);
                    }
                }
server/plugins-available/nginx_plugin.inc.php
@@ -940,6 +940,7 @@
        if($vhost_data['php'] == 'fast-cgi') $vhost_data['php'] = 'php-fpm';
        
        // Custom rewrite rules
        /*
        $final_rewrite_rules = array();
        $custom_rewrite_rules = $data['new']['rewrite_rules'];
        // Make sure we only have Unix linebreaks
@@ -949,6 +950,85 @@
        if(is_array($custom_rewrite_rule_lines) && !empty($custom_rewrite_rule_lines)){
            foreach($custom_rewrite_rule_lines as $custom_rewrite_rule_line){
                $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
            }
        }
        $tpl->setLoop('rewrite_rules', $final_rewrite_rules);
        */
        // Custom rewrite rules
        $final_rewrite_rules = array();
        if(isset($data['new']['rewrite_rules']) && trim($data['new']['rewrite_rules']) != '') {
            $custom_rewrite_rules = trim($data['new']['rewrite_rules']);
            $custom_rewrites_are_valid = true;
            // use this counter to make sure all curly brackets are properly closed
            $if_level = 0;
            // Make sure we only have Unix linebreaks
            $custom_rewrite_rules = str_replace("\r\n", "\n", $custom_rewrite_rules);
            $custom_rewrite_rules = str_replace("\r", "\n", $custom_rewrite_rules);
            $custom_rewrite_rule_lines = explode("\n", $custom_rewrite_rules);
            if(is_array($custom_rewrite_rule_lines) && !empty($custom_rewrite_rule_lines)){
                foreach($custom_rewrite_rule_lines as $custom_rewrite_rule_line){
                    // ignore comments
                    if(substr(ltrim($custom_rewrite_rule_line),0,1) == '#'){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // empty lines
                    if(trim($custom_rewrite_rule_line) == ''){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // rewrite
                    if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // if
                    if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        $if_level += 1;
                        continue;
                    }
                    // if - check for files, directories, etc.
                    if(preg_match('@^\s*if\s+\(\s*\!?-(f|d|e|x)\s+\S+\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        $if_level += 1;
                        continue;
                    }
                    // break
                    if(preg_match('@^\s*break\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // return code [ text ]
                    if(preg_match('@^\s*return\s+\d\d\d.*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // return code URL
                    // return URL
                    if(preg_match('@^\s*return(\s+\d\d\d)?\s+(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*\@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // set
                    if(preg_match('@^\s*set\s+\$\S+\s+\S+\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // closing curly bracket
                    if(trim($custom_rewrite_rule_line) == '}'){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        $if_level -= 1;
                        continue;
                    }
                    $custom_rewrites_are_valid = false;
                    break;
                }
            }
            if(!$custom_rewrites_are_valid || $if_level != 0){
                $final_rewrite_rules = array();
            }
        }
        $tpl->setLoop('rewrite_rules', $final_rewrite_rules);
@@ -1538,7 +1618,7 @@
        if($web_config['check_apache_config'] == 'y') {
            //* Test if nginx starts with the new configuration file
            $nginx_online_status_before_restart = $this->_checkTcp('localhost',80);
            $app->log('nginx status is: '.$nginx_online_status_before_restart,LOGLEVEL_DEBUG);
            $app->log('nginx status is: '.($nginx_online_status_before_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG);
            $retval = $app->services->restartService('httpd','restart'); // $retval['retval'] is 0 on success and > 0 on failure
            $app->log('nginx restart return value is: '.$retval['retval'],LOGLEVEL_DEBUG);
@@ -1548,15 +1628,19 @@
        
            //* Check if nginx restarted successfully if it was online before
            $nginx_online_status_after_restart = $this->_checkTcp('localhost',80);
            $app->log('nginx online status after restart is: '.$nginx_online_status_after_restart,LOGLEVEL_DEBUG);
            $app->log('nginx online status after restart is: '.($nginx_online_status_after_restart === true? 'running' : 'down'),LOGLEVEL_DEBUG);
            if($nginx_online_status_before_restart && !$nginx_online_status_after_restart || $retval['retval'] > 0) { 
                $app->log('nginx did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN);
                if(is_array($retval['output']) && !empty($retval['output'])){
                    $app->log('Reason for nginx restart failure: '.implode("\n", $retval['output']),LOGLEVEL_WARN);
                    $app->dbmaster->datalogError(implode("\n", $retval['output']));
                } else {
                    // if no output is given, check again
                    exec('nginx -t 2>&1', $tmp_output, $tmp_retval);
                    if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)) $app->log('Reason for nginx restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN);
                    if($tmp_retval > 0 && is_array($tmp_output) && !empty($tmp_output)){
                        $app->log('Reason for nginx restart failure: '.implode("\n", $tmp_output),LOGLEVEL_WARN);
                        $app->dbmaster->datalogError(implode("\n", $tmp_output));
                    }
                    unset($tmp_output, $tmp_retval);
                }
                $app->system->copy($vhost_file,$vhost_file.'.err');
server/server.php
@@ -71,7 +71,8 @@
    unset($server_db_record);
    
    // retrieve admin email address for notifications
    $sys_ini = $app->dbmaster->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1");
    //$sys_ini = $app->dbmaster->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1");
    $sys_ini = $app->db->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = 1");
    $conf['sys_ini'] = $app->ini_parser->parse_ini_string(stripslashes($sys_ini['config']));
    $conf['admin_mail'] = $conf['sys_ini']['mail']['admin_mail'];
    unset($sys_ini);