From 532ae591db5b5f020abf60609ded0d2d32b76d86 Mon Sep 17 00:00:00 2001 From: latham <latham@ispconfig3> Date: Fri, 8 Apr 2011 19:50:11 +0000 Subject: [PATCH] Remove DOS line returns lathama --- docs/INSTALL_FEDORA_9.txt | 430 +- docs/INSTALL_OPENSUSE_11.txt | 402 +- docs/INSTALL_OPENSUSE_11_1.txt | 420 +- .../setup_in_openvz/diff_openssl.cnf | 50 +- .../setup_in_openvz/install_server.sh | 122 +- .../recreate_ssh_and_hostname.sh | 36 +- install/autoupdate.php | 628 +-- install/dist/conf/debian40.conf.php | 390 +- install/dist/conf/debian60.conf.php | 390 +- install/install.php | 980 ++-- install/lib/installer_base.lib.php | 3564 ++++++------ install/sql/README.txt | 78 +- install/sql/incremental/upd_0007.sql | 36 +- install/update.php | 716 +-- interface/index.htm | 16 +- interface/lib/classes/auth.inc.php | 256 +- interface/lib/classes/form.inc.php | 948 ++-- interface/lib/classes/functions.inc.php | 220 +- interface/lib/classes/plugin_base.inc.php | 126 +- .../lib/classes/plugin_dbhistory.inc.php | 136 +- interface/lib/classes/remoting.inc.php | 4992 ++++++++--------- interface/lib/classes/session.inc.php | 256 +- interface/lib/classes/tpl_cache.inc.php | 370 +- interface/lib/classes/tpl_error.inc.php | 182 +- interface/lib/classes/validate_dns.inc.php | 572 +- interface/web/admin/form/firewall.tform.php | 222 +- .../web/admin/form/remote_user.tform.php | 318 +- .../web/admin/form/system_config.tform.php | 540 +- interface/web/admin/form/users.tform.php | 910 +-- .../web/admin/lib/lang/en_server_config.lng | 162 +- interface/web/admin/lib/lang/en_users.lng | 56 +- .../web/admin/templates/firewall_edit.htm | 76 +- interface/web/admin/templates/groups_edit.htm | 52 +- .../web/admin/templates/language_add.htm | 64 +- .../web/admin/templates/language_edit.htm | 64 +- .../web/admin/templates/language_list.htm | 94 +- .../templates/remote_action_ispcupdate.htm | 50 +- .../templates/remote_action_osupdate.htm | 50 +- .../templates/server_config_cron_edit.htm | 60 +- .../templates/server_config_fastcgi_edit.htm | 92 +- .../templates/server_config_getmail_edit.htm | 44 +- .../templates/server_config_jailkit_edit.htm | 68 +- .../templates/server_config_vlogger_edit.htm | 44 +- .../admin/templates/server_edit_config.htm | 44 +- .../web/admin/templates/server_ip_edit.htm | 68 +- .../templates/software_package_install.htm | 58 +- .../admin/templates/software_package_list.htm | 92 +- .../admin/templates/software_repo_edit.htm | 80 +- .../admin/templates/software_update_list.htm | 98 +- .../web/admin/templates/users_groups_edit.htm | 60 +- .../web/admin/templates/users_user_edit.htm | 134 +- interface/web/capp.php | 110 +- interface/web/client/form/client.tform.php | 1720 +++--- .../web/client/form/client_template.tform.php | 1048 ++-- interface/web/client/form/reseller.tform.php | 1622 +++--- interface/web/client/lib/admin.conf.php | 2 +- .../client/templates/client_edit_address.htm | 228 +- .../client/templates/client_edit_limits.htm | 404 +- .../templates/client_template_edit_limits.htm | 272 +- .../client_template_edit_template.htm | 56 +- .../client/templates/reseller_edit_limits.htm | 374 +- interface/web/dashboard/dashlets/limits.php | 354 +- interface/web/dashboard/dashlets/modules.php | 108 +- .../web/dashboard/lib/custom_menu.inc.php | 152 +- .../web/dashboard/templates/custom_menu.htm | 14 +- interface/web/designer/lib/admin.conf.php | 6 +- .../web/designer/lib/lang/cz_module_edit.lng | 20 +- .../web/designer/lib/lang/fr_module_edit.lng | 4 +- .../web/designer/lib/lang/id_module_edit.lng | 20 +- .../web/designer/lib/lang/nl_module_edit.lng | 20 +- .../web/designer/lib/lang/pl_module_edit.lng | 20 +- .../web/designer/templates/form_edit.htm | 156 +- .../web/designer/templates/form_show.htm | 120 +- .../web/designer/templates/paging.tpl.htm | 16 +- interface/web/dns/dns_a_list.php | 46 +- interface/web/dns/dns_rr_del.php | 132 +- interface/web/dns/dns_slave_del.php | 136 +- interface/web/dns/dns_soa_del.php | 136 +- interface/web/dns/dns_template_del.php | 114 +- interface/web/dns/dns_template_list.php | 46 +- interface/web/dns/form/dns_template.tform.php | 200 +- interface/web/dns/lib/admin.conf.php | 2 +- interface/web/dns/list/dns_template.list.php | 158 +- .../web/dns/templates/dns_records_edit.htm | 24 +- .../web/dns/templates/dns_template_edit.htm | 76 +- interface/web/domain/lib/admin.conf.php | 56 +- .../web/domain/lib/lang/en_domain_list.lng | 8 +- .../help/templates/support_message_edit.htm | 66 +- .../help/templates/support_message_view.htm | 48 +- interface/web/index.php | 80 +- .../web/js/yui/datatable/assets/datatable.css | 152 +- interface/web/js/yui/logger/assets/logger.css | 40 +- .../web/login/templates/password_reset.htm | 66 +- .../web/mail/form/mail_mailinglist.tform.php | 242 +- interface/web/mail/lib/admin.conf.php | 2 +- .../web/mail/lib/lang/en_mail_alias_list.lng | 14 +- .../mail/lib/lang/en_mail_blacklist_list.lng | 18 +- .../lib/lang/en_mail_domain_admin_list.lng | 14 +- .../lib/lang/en_mail_domain_catchall_list.lng | 16 +- .../mail/lib/lang/en_mail_forward_list.lng | 14 +- .../web/mail/lib/lang/en_mail_mailinglist.lng | 28 +- .../lib/lang/en_mail_mailinglist_list.lng | 8 +- .../mail/lib/lang/en_mail_spamfilter_list.lng | 14 +- .../mail/lib/lang/en_mail_transport_list.lng | 16 +- .../mail/lib/lang/en_mail_whitelist_list.lng | 18 +- .../lib/lang/en_spamfilter_policy_list.lng | 16 +- .../lib/lang/en_spamfilter_users_list.lng | 18 +- .../lib/lang/en_spamfilter_whitelist_list.lng | 16 +- interface/web/mail/lib/lang/fr_mail_user.lng | 4 +- .../web/mail/lib/lang/id_mail_alias_list.lng | 14 +- interface/web/mail/lib/module.conf.php | 398 +- .../web/mail/list/mail_mailinglist.list.php | 132 +- interface/web/mail/mail_domain_del.php | 194 +- interface/web/mail/mail_domain_edit.php | 738 +-- interface/web/mail/mail_mailinglist_del.php | 114 +- interface/web/mail/mail_mailinglist_edit.php | 512 +- interface/web/mail/mail_mailinglist_list.php | 86 +- interface/web/mail/mailinglist.php | 134 +- .../web/mail/templates/mail_alias_edit.htm | 78 +- .../mail/templates/mail_blacklist_edit.htm | 82 +- .../templates/mail_content_filter_edit.htm | 100 +- .../mail/templates/mail_domain_admin_list.htm | 24 +- .../templates/mail_domain_catchall_edit.htm | 76 +- .../web/mail/templates/mail_get_edit.htm | 108 +- .../mail/templates/mail_mailinglist_edit.htm | 160 +- .../mail/templates/mail_mailinglist_list.htm | 106 +- .../templates/mail_relay_recipient_list.htm | 18 +- .../mail/templates/mail_transport_edit.htm | 112 +- .../templates/mail_user_custom_rules_edit.htm | 44 +- .../mail/templates/mail_user_stats_list.htm | 104 +- .../mail/templates/mail_whitelist_edit.htm | 82 +- .../templates/spamfilter_blacklist_edit.htm | 98 +- .../spamfilter_config_getmail_edit.htm | 44 +- .../templates/spamfilter_config_mail_edit.htm | 132 +- .../spamfilter_config_server_edit.htm | 76 +- .../mail/templates/spamfilter_other_edit.htm | 160 +- .../mail/templates/spamfilter_policy_edit.htm | 128 +- .../templates/spamfilter_quarantine_edit.htm | 88 +- .../templates/spamfilter_taglevel_edit.htm | 104 +- .../mail/templates/spamfilter_users_edit.htm | 100 +- .../templates/spamfilter_whitelist_edit.htm | 98 +- interface/web/monitor/lib/admin.conf.php | 2 +- .../web/monitor/templates/datalog_list.htm | 98 +- interface/web/monitor/templates/show_data.htm | 24 +- interface/web/monitor/templates/show_log.htm | 50 +- .../web/monitor/templates/show_sys_state.htm | 50 +- .../web/monitor/templates/syslog_list.htm | 112 +- interface/web/nav.php | 228 +- interface/web/sites/cron_del.php | 126 +- interface/web/sites/cron_list.php | 44 +- interface/web/sites/lib/admin.conf.php | 2 +- .../sites/lib/lang/en_database_admin_list.lng | 18 +- .../lib/lang/en_user_quota_stats_list.lng | 14 +- .../web/sites/lib/lang/en_web_domain.lng | 148 +- .../lib/lang/en_web_domain_admin_list.lng | 16 +- interface/web/sites/templates/cron_edit.htm | 136 +- .../sites/templates/database_admin_list.htm | 36 +- .../web/sites/templates/ftp_user_advanced.htm | 100 +- .../templates/ftp_user_advanced_client.htm | 44 +- .../web/sites/templates/ftp_user_edit.htm | 96 +- .../sites/templates/shell_user_advanced.htm | 68 +- .../web/sites/templates/shell_user_edit.htm | 132 +- .../sites/templates/user_quota_stats_list.htm | 12 +- .../sites/templates/web_aliasdomain_edit.htm | 112 +- .../sites/templates/web_domain_admin_list.htm | 30 +- .../sites/templates/web_domain_redirect.htm | 56 +- .../sites/templates/web_subdomain_edit.htm | 84 +- .../web/sites/templates/webdav_user_edit.htm | 116 +- interface/web/temp/en.lng | 302 +- interface/web/themes/default/css/central.css | 64 +- .../themes/default/css/patches/central.css | 74 +- .../themes/default/css/print/print_100.css | 62 +- .../css/screen/basemod_2col_left_seo.css | 96 +- .../web/themes/default/css/screen/content.css | 376 +- .../default/css/screen/uni-form-generic.css | 270 +- interface/web/themes/default/licences.txt | 16 +- .../themes/default/templates/module.tpl.htm | 72 +- .../default/templates/module_tree.tpl.htm | 74 +- .../themes/default/templates/sidenav.tpl.htm | 48 +- .../default/templates/tabbed_form.tpl.htm | 56 +- .../themes/default/templates/topnav.tpl.htm | 18 +- .../web/themes/default/yaml/!important.txt | 8 +- .../web/themes/default/yaml/core/base.css | 458 +- .../web/themes/default/yaml/core/iehacks.css | 620 +- .../themes/default/yaml/core/print_base.css | 240 +- .../themes/default/yaml/core/slim_base.css | 98 +- .../themes/default/yaml/core/slim_iehacks.css | 70 +- .../default/yaml/core/slim_print_base.css | 40 +- .../web/themes/default/yaml/debug/debug.css | 314 +- .../default/yaml/navigation/nav_vlist.css | 216 +- .../yaml/patches/patch_layout_draft.css | 58 +- .../default/yaml/patches/patch_nav_vlist.css | 122 +- .../default/yaml/print/print_003_draft.css | 62 +- .../default/yaml/print/print_020_draft.css | 60 +- .../default/yaml/print/print_023_draft.css | 80 +- .../default/yaml/print/print_100_draft.css | 62 +- .../default/yaml/print/print_103_draft.css | 74 +- .../default/yaml/print/print_120_draft.css | 78 +- .../default/yaml/print/print_123_draft.css | 78 +- .../default/yaml/screen/basemod_draft.css | 138 +- .../default/yaml/screen/content_default.css | 340 +- .../default_64_navimg/css/additional.css | 118 +- .../default_no_navimg/css/additional.css | 118 +- .../web/tools/form/user_settings.tform.php | 328 +- .../web/tools/templates/user_settings.htm | 88 +- server/lib/classes/tpl_cache.inc.php | 370 +- server/lib/classes/tpl_error.inc.php | 182 +- server/mods-available/mail_module.inc.php | 322 +- .../remoteaction_core_module.inc.php | 406 +- .../plugins-available/mailman_plugin.inc.php | 310 +- 210 files changed, 21095 insertions(+), 21095 deletions(-) diff --git a/docs/INSTALL_FEDORA_9.txt b/docs/INSTALL_FEDORA_9.txt index 13bce90bd8..7f1531fabd 100644 --- a/docs/INSTALL_FEDORA_9.txt +++ b/docs/INSTALL_FEDORA_9.txt @@ -1,215 +1,215 @@ - -Installation ------------ - -It is recommended to use a clean (fresh) Fedora install. Then follow the steps below to setup your server with ISPConfig 3: - -Installation of some basic requirements: - -rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* -yum update -yum groupinstall 'Development Tools' -yum groupinstall 'Development Libraries' - -You should disable selinux now, as some programs will not start when selinux is enabled: - -vi /etc/selinux/config - -and set: - -SELINUX=disabled - -then reboot the server. - - -1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!): - -yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel getmail - -useradd -m -s /bin/bash compileuser -passwd compileuser - -visudo - -## Allow root to run any commands anywhere -root ALL=(ALL) ALL -compileuser ALL=(ALL) ALL - - -su compileuser - -mkdir $HOME/rpm -mkdir $HOME/rpm/SOURCES -mkdir $HOME/rpm/SPECS -mkdir $HOME/rpm/BUILD -mkdir $HOME/rpm/SRPMS -mkdir $HOME/rpm/RPMS -mkdir $HOME/rpm/RPMS/i386 - -echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros - - -wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2 -wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2 -wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2 - -sudo rpmbuild -ta courier-authlib-0.61.0.tar.bz2 - -sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-0.61.0-1.fc9.i386.rpm -sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-mysql-0.61.0-1.fc9.i386.rpm -sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-devel-0.61.0-1.fc9.i386.rpm - -rpmbuild -ta courier-imap-4.4.1.tar.bz2 - -sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-imap-4.4.1-1.9.i386.rpm - -sudo rpmbuild -ta maildrop-2.0.4.tar.bz2 - -sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/maildrop-2.0.4-1.9.i386.rpm - -exit - -yum install postfix - -chkconfig --levels 235 mysqld on -/etc/init.d/mysqld start - -chkconfig --levels 235 httpd on -/etc/init.d/httpd start - -chkconfig --levels 235 courier-authlib on -/etc/init.d/courier-authlib start - -chkconfig --levels 235 sendmail off -chkconfig --levels 235 postfix on -chkconfig --levels 235 saslauthd on -/etc/init.d/sendmail stop -/etc/init.d/postfix start -/etc/init.d/saslauthd start - -chkconfig --levels 235 courier-imap on -/etc/init.d/courier-authlib restart -/etc/init.d/courier-imap restart - - -Set the mysql database password: - -mysqladmin -u root password yourrootsqlpassword -mysqladmin -h ispconfig.local -u root password yourrootsqlpassword - - -2) Install Amavisd-new, Spamassassin and Clamav (1 line!): - -yum install amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 unrar - -chkconfig --levels 235 amavisd on -chkconfig --levels 235 clamd.amavisd on -/usr/bin/freshclam -/etc/init.d/amavisd start -/etc/init.d/clamd.amavisd start - -3) Install apache, PHP5 and phpmyadmin (1 line!): - -yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin - - -4) Install pure-ftpd and quota - -yum install pure-ftpd quota - -chkconfig --levels 235 pure-ftpd on - -5) Install mydns - -rpm -i http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm - -chkconfig --levels 235 mydns on - -6) Install vlogger and webalizer - -yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder - -cd /tmp -wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz -tar xvfz vlogger-1.3.tar.gz -mv vlogger-1.3/vlogger /usr/sbin/ -rm -rf vlogger* - -7) Configure the firewall - -Now you should switch off the firewall by running: - -system-config-firewall-tui - -ISPConfig comes with a iptables bsed firewall script that can be meneged from within the ispconfig interface. - - -8) Install ISPConfig 3 - -There are two possile scenarios, but not both: -8.1) Install the latest released version -8.2) Install directly from SVN - -8.1) Installation of beta 3 from tar.gz - - cd /tmp - wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz - tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz - cd ispconfig3_install/install/ - -8.2) Installation from SVN - - yum install subversion - cd /tmp - svn export svn://svn.ispconfig.org/ispconfig3/trunk/ - cd trunk/install - - -8.1+8.2) Now proceed with the ISPConfig installation. - -Now start the installation process by executing: - -php -q install.php - -The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): - -http://192.168.0.100:8080/ - -the default login is: - -user: admin -password: admin - -In case you get a permission denied error from apache, please restart the apache webserver process. - -Optional: - -Install a webbased Email Client - -yum install squirrelmail - - ----------------------------------------------------------------------------------------------------------- - -Hints: - -debian 4.0 under openvz: - -VPSID=101 -for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE -do - vzctl set $VPSID --capability ${CAP}:on --save -done - ----------------------------------------------------------------------------------------------------------- - -Installing Jailkit: - -cd /tmp -wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz -tar xvfz jailkit-2.5.tar.gz -cd jailkit-2.5 -./configure -make -make install -rm -rf jailkit-2.5* + +Installation +----------- + +It is recommended to use a clean (fresh) Fedora install. Then follow the steps below to setup your server with ISPConfig 3: + +Installation of some basic requirements: + +rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* +yum update +yum groupinstall 'Development Tools' +yum groupinstall 'Development Libraries' + +You should disable selinux now, as some programs will not start when selinux is enabled: + +vi /etc/selinux/config + +and set: + +SELINUX=disabled + +then reboot the server. + + +1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!): + +yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel getmail + +useradd -m -s /bin/bash compileuser +passwd compileuser + +visudo + +## Allow root to run any commands anywhere +root ALL=(ALL) ALL +compileuser ALL=(ALL) ALL + + +su compileuser + +mkdir $HOME/rpm +mkdir $HOME/rpm/SOURCES +mkdir $HOME/rpm/SPECS +mkdir $HOME/rpm/BUILD +mkdir $HOME/rpm/SRPMS +mkdir $HOME/rpm/RPMS +mkdir $HOME/rpm/RPMS/i386 + +echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros + + +wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2 +wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2 +wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2 + +sudo rpmbuild -ta courier-authlib-0.61.0.tar.bz2 + +sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-0.61.0-1.fc9.i386.rpm +sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-mysql-0.61.0-1.fc9.i386.rpm +sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-authlib-devel-0.61.0-1.fc9.i386.rpm + +rpmbuild -ta courier-imap-4.4.1.tar.bz2 + +sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/courier-imap-4.4.1-1.9.i386.rpm + +sudo rpmbuild -ta maildrop-2.0.4.tar.bz2 + +sudo rpm -ivh /home/compileuser/rpm/RPMS/i386/maildrop-2.0.4-1.9.i386.rpm + +exit + +yum install postfix + +chkconfig --levels 235 mysqld on +/etc/init.d/mysqld start + +chkconfig --levels 235 httpd on +/etc/init.d/httpd start + +chkconfig --levels 235 courier-authlib on +/etc/init.d/courier-authlib start + +chkconfig --levels 235 sendmail off +chkconfig --levels 235 postfix on +chkconfig --levels 235 saslauthd on +/etc/init.d/sendmail stop +/etc/init.d/postfix start +/etc/init.d/saslauthd start + +chkconfig --levels 235 courier-imap on +/etc/init.d/courier-authlib restart +/etc/init.d/courier-imap restart + + +Set the mysql database password: + +mysqladmin -u root password yourrootsqlpassword +mysqladmin -h ispconfig.local -u root password yourrootsqlpassword + + +2) Install Amavisd-new, Spamassassin and Clamav (1 line!): + +yum install amavisd-new spamassassin clamav clamav-data clamav-server clamav-update unzip bzip2 unrar + +chkconfig --levels 235 amavisd on +chkconfig --levels 235 clamd.amavisd on +/usr/bin/freshclam +/etc/init.d/amavisd start +/etc/init.d/clamd.amavisd start + +3) Install apache, PHP5 and phpmyadmin (1 line!): + +yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin + + +4) Install pure-ftpd and quota + +yum install pure-ftpd quota + +chkconfig --levels 235 pure-ftpd on + +5) Install mydns + +rpm -i http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm + +chkconfig --levels 235 mydns on + +6) Install vlogger and webalizer + +yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder + +cd /tmp +wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz +tar xvfz vlogger-1.3.tar.gz +mv vlogger-1.3/vlogger /usr/sbin/ +rm -rf vlogger* + +7) Configure the firewall + +Now you should switch off the firewall by running: + +system-config-firewall-tui + +ISPConfig comes with a iptables bsed firewall script that can be meneged from within the ispconfig interface. + + +8) Install ISPConfig 3 + +There are two possile scenarios, but not both: +8.1) Install the latest released version +8.2) Install directly from SVN + +8.1) Installation of beta 3 from tar.gz + + cd /tmp + wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz + tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz + cd ispconfig3_install/install/ + +8.2) Installation from SVN + + yum install subversion + cd /tmp + svn export svn://svn.ispconfig.org/ispconfig3/trunk/ + cd trunk/install + + +8.1+8.2) Now proceed with the ISPConfig installation. + +Now start the installation process by executing: + +php -q install.php + +The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): + +http://192.168.0.100:8080/ + +the default login is: + +user: admin +password: admin + +In case you get a permission denied error from apache, please restart the apache webserver process. + +Optional: + +Install a webbased Email Client + +yum install squirrelmail + + +---------------------------------------------------------------------------------------------------------- + +Hints: + +debian 4.0 under openvz: + +VPSID=101 +for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE +do + vzctl set $VPSID --capability ${CAP}:on --save +done + +---------------------------------------------------------------------------------------------------------- + +Installing Jailkit: + +cd /tmp +wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz +tar xvfz jailkit-2.5.tar.gz +cd jailkit-2.5 +./configure +make +make install +rm -rf jailkit-2.5* diff --git a/docs/INSTALL_OPENSUSE_11.txt b/docs/INSTALL_OPENSUSE_11.txt index a9176cba00..de8c0a079a 100644 --- a/docs/INSTALL_OPENSUSE_11.txt +++ b/docs/INSTALL_OPENSUSE_11.txt @@ -1,201 +1,201 @@ - -Installation ------------ - -It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3: - -Install some basic packes and the compilers that we need later - -yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages - -1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!): - -yast2 -i postfix postfix-mysql mysql mysql-client phpMyAdmin courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel - -chkconfig --add mysql -/etc/init.d/mysql start - -chkconfig --add postfix -/etc/init.d/postfix start - -chkconfig --add saslauthd -/etc/init.d/saslauthd start - -chkconfig --add saslauthd -/etc/init.d/saslauthd start - -chkconfig --add fam -chkconfig --add courier-authdaemon -chkconfig --add courier-pop -chkconfig --add courier-imap -/etc/init.d/courier-pop start -/etc/init.d/courier-imap start -chkconfig --add courier-pop-ssl -chkconfig --add courier-imap-ssl -/etc/init.d/courier-pop-ssl start -/etc/init.d/courier-imap-ssl start - -cd /tmp -wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm -rpm -i getmail-4.7.6-1.4.i586.rpm - -// Warnings like "warning: getmail-4.7.6-1.4.i586.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored. - -// Install maildrop -rpm --force -i http://download.opensuse.org/repositories/home%3A/cboltz/openSUSE_10.3/i586/maildrop-2.0.3-16.1.i586.rpm - -// Install pam_mysql - -yast2 -i pam-devel -cd /tmp -wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz -tar xvfz pam_mysql-0.7RC1.tar.gz -cd pam_mysql-0.7RC1 -./configure -make -make install -rm -rf pam_mysql-0.7RC1 -rm pam_mysql-0.7RC1.tar.gz - -// Set the mysql database password: - -mysqladmin -u root password yourrootsqlpassword -mysqladmin -h ispconfig.local -u root password yourrootsqlpassword - - -2) Install Amavisd-new, Spamassassin and Clamav (1 line!): - -yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql - -chkconfig --add amavis -chkconfig --add clamd -/etc/init.d/amavis start -/etc/init.d/clamd start - -3) Install PHP5 modules (1 line!): - -yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl - -Then run the following to enable the Apache modules: - -a2enmod suexec -a2enmod rewrite -a2enmod ssl -a2enmod actions - -chkconfig --add apache2 -/etc/init.d/apache2 start - -4) Install pure-ftpd and quota - -yast2 -i pure-ftpd quota - -// The current pure-ftpd package from SuSE is unstable and segfaults when a file is uploaded, -// we will replace it with a manually compiled package now: - -cd /tmp -wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz -tar xvfz pure-ftpd-1.0.21.tar.gz -cd pure-ftpd-1.0.21/ -./configure --sysconfdir=/etc/pure-ftpd --with-everything --with-mysql -make -make install -mv /usr/sbin/pure-ftpd /usr/sbin/pure-ftpd.suse -ln -s /usr/local/sbin/pure-ftpd /usr/sbin/pure-ftpd -rm -rf pure-ftpd-1.0.21 -rm -f pure-ftpd-1.0.21.tar.gz - -chkconfig --add pure-ftpd -/etc/init.d/pure-ftpd start - - -5) Install mydns - -cd /tmp -wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-mysql-1.1.0-3.72.i586.rpm -wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-1.1.0-3.72.i586.rpm -rpm -i mydns*.rpm -rm -rf /tmp/mydns* - -chkconfig --add mydns - -6) Install vlogger and webalizer - -cd /tmp -wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz -tar xvfz vlogger-1.3.tar.gz -mv vlogger-1.3/vlogger /usr/sbin/ -rm -rf vlogger* - - -yast2 -i webalizer perl-DateManip - - -7) Install ISPConfig 3 - -There are two possile scenarios, but not both: -7.1) Install the latest released version -7.2) Install directly from SVN - -7.1) Installation of beta 3 from tar.gz - - cd /tmp - wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz - tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz - cd ispconfig3_install/install/ - -7.2) Installation from SVN - - yast2 -i subversion - cd /tmp - svn export svn://svn.ispconfig.org/ispconfig3/trunk/ - cd trunk/install - - -7.1+7.2) Now proceed with the ISPConfig installation. - -Now start the installation process by executing: - -php -q install.php - -The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): - -http://192.168.0.100:8080/ - -the default login is: - -user: admin -password: admin - -In case you get a permission denied error from apache, please restart the apache webserver process. - -Optional: - -Install a webbased Email Client - -yast2 -i squirrelmail - ----------------------------------------------------------------------------------------------------------- - -Hints: - -debian 4.0 under openvz: - -VPSID=101 -for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE -do - vzctl set $VPSID --capability ${CAP}:on --save -done - ----------------------------------------------------------------------------------------------------------- - -Installing Jailkit: - -cd /tmp -wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz -tar xvfz jailkit-2.5.tar.gz -cd jailkit-2.5 -./configure -make -make install -rm -rf jailkit-2.5* + +Installation +----------- + +It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3: + +Install some basic packes and the compilers that we need later + +yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages + +1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!): + +yast2 -i postfix postfix-mysql mysql mysql-client phpMyAdmin courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel + +chkconfig --add mysql +/etc/init.d/mysql start + +chkconfig --add postfix +/etc/init.d/postfix start + +chkconfig --add saslauthd +/etc/init.d/saslauthd start + +chkconfig --add saslauthd +/etc/init.d/saslauthd start + +chkconfig --add fam +chkconfig --add courier-authdaemon +chkconfig --add courier-pop +chkconfig --add courier-imap +/etc/init.d/courier-pop start +/etc/init.d/courier-imap start +chkconfig --add courier-pop-ssl +chkconfig --add courier-imap-ssl +/etc/init.d/courier-pop-ssl start +/etc/init.d/courier-imap-ssl start + +cd /tmp +wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm +rpm -i getmail-4.7.6-1.4.i586.rpm + +// Warnings like "warning: getmail-4.7.6-1.4.i586.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored. + +// Install maildrop +rpm --force -i http://download.opensuse.org/repositories/home%3A/cboltz/openSUSE_10.3/i586/maildrop-2.0.3-16.1.i586.rpm + +// Install pam_mysql + +yast2 -i pam-devel +cd /tmp +wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz +tar xvfz pam_mysql-0.7RC1.tar.gz +cd pam_mysql-0.7RC1 +./configure +make +make install +rm -rf pam_mysql-0.7RC1 +rm pam_mysql-0.7RC1.tar.gz + +// Set the mysql database password: + +mysqladmin -u root password yourrootsqlpassword +mysqladmin -h ispconfig.local -u root password yourrootsqlpassword + + +2) Install Amavisd-new, Spamassassin and Clamav (1 line!): + +yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql + +chkconfig --add amavis +chkconfig --add clamd +/etc/init.d/amavis start +/etc/init.d/clamd start + +3) Install PHP5 modules (1 line!): + +yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl + +Then run the following to enable the Apache modules: + +a2enmod suexec +a2enmod rewrite +a2enmod ssl +a2enmod actions + +chkconfig --add apache2 +/etc/init.d/apache2 start + +4) Install pure-ftpd and quota + +yast2 -i pure-ftpd quota + +// The current pure-ftpd package from SuSE is unstable and segfaults when a file is uploaded, +// we will replace it with a manually compiled package now: + +cd /tmp +wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz +tar xvfz pure-ftpd-1.0.21.tar.gz +cd pure-ftpd-1.0.21/ +./configure --sysconfdir=/etc/pure-ftpd --with-everything --with-mysql +make +make install +mv /usr/sbin/pure-ftpd /usr/sbin/pure-ftpd.suse +ln -s /usr/local/sbin/pure-ftpd /usr/sbin/pure-ftpd +rm -rf pure-ftpd-1.0.21 +rm -f pure-ftpd-1.0.21.tar.gz + +chkconfig --add pure-ftpd +/etc/init.d/pure-ftpd start + + +5) Install mydns + +cd /tmp +wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-mysql-1.1.0-3.72.i586.rpm +wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/server:/dns/SUSE_Factory/i586/mydns-1.1.0-3.72.i586.rpm +rpm -i mydns*.rpm +rm -rf /tmp/mydns* + +chkconfig --add mydns + +6) Install vlogger and webalizer + +cd /tmp +wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz +tar xvfz vlogger-1.3.tar.gz +mv vlogger-1.3/vlogger /usr/sbin/ +rm -rf vlogger* + + +yast2 -i webalizer perl-DateManip + + +7) Install ISPConfig 3 + +There are two possile scenarios, but not both: +7.1) Install the latest released version +7.2) Install directly from SVN + +7.1) Installation of beta 3 from tar.gz + + cd /tmp + wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz + tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz + cd ispconfig3_install/install/ + +7.2) Installation from SVN + + yast2 -i subversion + cd /tmp + svn export svn://svn.ispconfig.org/ispconfig3/trunk/ + cd trunk/install + + +7.1+7.2) Now proceed with the ISPConfig installation. + +Now start the installation process by executing: + +php -q install.php + +The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): + +http://192.168.0.100:8080/ + +the default login is: + +user: admin +password: admin + +In case you get a permission denied error from apache, please restart the apache webserver process. + +Optional: + +Install a webbased Email Client + +yast2 -i squirrelmail + +---------------------------------------------------------------------------------------------------------- + +Hints: + +debian 4.0 under openvz: + +VPSID=101 +for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE +do + vzctl set $VPSID --capability ${CAP}:on --save +done + +---------------------------------------------------------------------------------------------------------- + +Installing Jailkit: + +cd /tmp +wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz +tar xvfz jailkit-2.5.tar.gz +cd jailkit-2.5 +./configure +make +make install +rm -rf jailkit-2.5* diff --git a/docs/INSTALL_OPENSUSE_11_1.txt b/docs/INSTALL_OPENSUSE_11_1.txt index 6688c24eb4..f6ea738ed6 100644 --- a/docs/INSTALL_OPENSUSE_11_1.txt +++ b/docs/INSTALL_OPENSUSE_11_1.txt @@ -1,210 +1,210 @@ - -Installation ------------ - -It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3: - -The following guide is for the 32Bit version of openSUSE, for 64Bit installations the package names may differ especially the names of downloaded rpm files. - -Install some basic packes and the compilers that we need later - -yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages nano pico - -1) Install Postfix, Courier, Saslauthd, MySQL with the following command line (on one line!): - -yast2 -i postfix postfix-mysql mysql mysql-client courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel - -chkconfig --add mysql -/etc/init.d/mysql start - -chkconfig --add postfix -/etc/init.d/postfix start - -chkconfig --add saslauthd -/etc/init.d/saslauthd start - -chkconfig --add saslauthd -/etc/init.d/saslauthd start - -chkconfig --add fam -chkconfig --add courier-authdaemon -chkconfig --add courier-pop -chkconfig --add courier-imap -/etc/init.d/courier-pop start -/etc/init.d/courier-imap start -chkconfig --add courier-pop-ssl -chkconfig --add courier-imap-ssl -/etc/init.d/courier-pop-ssl start -/etc/init.d/courier-imap-ssl start - - -cd /tmp -wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm -rpm -i getmail-4.7.6-1.4.i586.rpm - -// Install maildrop -wget http://download.opensuse.org/repositories/home:/atzewilms/openSUSE_11.1_Update/i586/maildrop-2.0.4-10.5.i586.rpm -rpm --force -i maildrop-2.0.4-10.5.i586.rpm - -// Install pam_mysql -yast2 -i pam-devel -cd /tmp -wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz -tar xvfz pam_mysql-0.7RC1.tar.gz -cd pam_mysql-0.7RC1 -./configure -make -make install -rm -rf /tmp/pam_mysql-0.7RC1 -rm /tmp/pam_mysql-0.7RC1.tar.gz - - -// Set the mysql database password: - -mysql_secure_installation - - -2) Install Amavisd-new, Spamassassin and Clamav (1 line!): - -yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql - -chkconfig --add amavis -chkconfig --add clamd -/etc/init.d/amavis start -/etc/init.d/clamd start - -2.1) Install apache2 - -yast2 -i apache2 apache2-mod_fcgid - -rpm -i http://download.opensuse.org/repositories/server:/php/server_database_apache_openSUSE_11.0/i586/suphp-0.6.2-10.41.i586.rpm - -3) Install PHP5 modules (1 line!): - -yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5 - -Then run the following to enable the Apache modules: - -a2enmod suexec -a2enmod rewrite -a2enmod ssl -a2enmod actions -a2enmod suphp -a2enmod fcgid - -// Fix a suexec permission problem - -chown root:www /usr/sbin/suexec2 -chmod 4755 /usr/sbin/suexec2 - -// and start apache - -chkconfig --add apache2 -/etc/init.d/apache2 start - -cd /tmp - -yast2 -i pwgen -rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.1/noarch/phpMyAdmin-3.1.2-1.1.noarch.rpm -ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin - -// Warnings like "warning: phpMyAdmin-3.1.2-1.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored. - -4) Install pure-ftpd and quota - -yast2 -i pure-ftpd quota - -chkconfig --add pure-ftpd -/etc/init.d/pure-ftpd start - - -5) Install mydns - -cd /tmp -wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-1.2.8-1.1.i586.rpm -wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-mysql-1.2.8-1.1.i586.rpm -rpm -i mydns*.rpm - -chkconfig --add mydns - -6) Install vlogger and webalizer - -cd /tmp -wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz -tar xvfz vlogger-1.3.tar.gz -mv vlogger-1.3/vlogger /usr/sbin/ -rm -rf vlogger* -yast2 -i webalizer perl-DateManip - -6.1 Install fail2ban - -rpm -i http://download.opensuse.org/repositories/home:/leonardocf/openSUSE_11.0/i586/fail2ban-0.8.2-5.2.i586.rpm - - - - -6.2) Cleanup - -rm -f /tmp/*.rpm - -6.2 Install jailkit - -cd /tmp -wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz -tar xvfz jailkit-2.5.tar.gz -cd jailkit-2.5 -./configure -make -make install -cd .. -rm -rf jailkit-2.5* - - -7) Install ISPConfig 3 - -There are two possile scenarios, but not both: -7.1) Install the latest released version -7.2) Install directly from SVN - -7.1) Installation of beta 3 from tar.gz - - cd /tmp - wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz - tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz - cd ispconfig3_install/install/ - -7.2) Installation from SVN - - yast2 -i subversion - cd /tmp - svn export svn://svn.ispconfig.org/ispconfig3/trunk/ - cd trunk/install - - -7.1+7.2) Now proceed with the ISPConfig installation. - -Now start the installation process by executing: - -php -q install.php - -// Cleanup -rm -rf /tmp/trunk - -The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): - -http://192.168.0.100:8080/ - -the default login is: - -user: admin -password: admin - -In case you get a permission denied error from apache, please restart the apache webserver process. - -Optional: - -Install a webbased Email Client - -yast2 -i squirrelmail - - + +Installation +----------- + +It is recommended to use a clean (fresh) OpenSUSE installatiom where you selected to install just the minimal packages. A Gnome or KDE desktop is not needed and will just slow down the server. Then follow the steps below to setup your server with ISPConfig 3: + +The following guide is for the 32Bit version of openSUSE, for 64Bit installations the package names may differ especially the names of downloaded rpm files. + +Install some basic packes and the compilers that we need later + +yast2 -i findutils readline libgcc glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ make vim telnet cron iptables iputils man man-pages nano pico + +1) Install Postfix, Courier, Saslauthd, MySQL with the following command line (on one line!): + +yast2 -i postfix postfix-mysql mysql mysql-client courier-imap courier-authlib courier-authlib-mysql python cron cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd libmysqlclient-devel + +chkconfig --add mysql +/etc/init.d/mysql start + +chkconfig --add postfix +/etc/init.d/postfix start + +chkconfig --add saslauthd +/etc/init.d/saslauthd start + +chkconfig --add saslauthd +/etc/init.d/saslauthd start + +chkconfig --add fam +chkconfig --add courier-authdaemon +chkconfig --add courier-pop +chkconfig --add courier-imap +/etc/init.d/courier-pop start +/etc/init.d/courier-imap start +chkconfig --add courier-pop-ssl +chkconfig --add courier-imap-ssl +/etc/init.d/courier-pop-ssl start +/etc/init.d/courier-imap-ssl start + + +cd /tmp +wget http://download.opensuse.org/repositories/server:/mail/openSUSE_11.0/i586/getmail-4.7.6-1.4.i586.rpm +rpm -i getmail-4.7.6-1.4.i586.rpm + +// Install maildrop +wget http://download.opensuse.org/repositories/home:/atzewilms/openSUSE_11.1_Update/i586/maildrop-2.0.4-10.5.i586.rpm +rpm --force -i maildrop-2.0.4-10.5.i586.rpm + +// Install pam_mysql +yast2 -i pam-devel +cd /tmp +wget http://heanet.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.7RC1.tar.gz +tar xvfz pam_mysql-0.7RC1.tar.gz +cd pam_mysql-0.7RC1 +./configure +make +make install +rm -rf /tmp/pam_mysql-0.7RC1 +rm /tmp/pam_mysql-0.7RC1.tar.gz + + +// Set the mysql database password: + +mysql_secure_installation + + +2) Install Amavisd-new, Spamassassin and Clamav (1 line!): + +yast2 -i amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql + +chkconfig --add amavis +chkconfig --add clamd +/etc/init.d/amavis start +/etc/init.d/clamd start + +2.1) Install apache2 + +yast2 -i apache2 apache2-mod_fcgid + +rpm -i http://download.opensuse.org/repositories/server:/php/server_database_apache_openSUSE_11.0/i586/suphp-0.6.2-10.41.i586.rpm + +3) Install PHP5 modules (1 line!): + +yast2 -i php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dbase php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5 + +Then run the following to enable the Apache modules: + +a2enmod suexec +a2enmod rewrite +a2enmod ssl +a2enmod actions +a2enmod suphp +a2enmod fcgid + +// Fix a suexec permission problem + +chown root:www /usr/sbin/suexec2 +chmod 4755 /usr/sbin/suexec2 + +// and start apache + +chkconfig --add apache2 +/etc/init.d/apache2 start + +cd /tmp + +yast2 -i pwgen +rpm -i http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.1/noarch/phpMyAdmin-3.1.2-1.1.noarch.rpm +ln -s /srv/www/htdocs/phpMyAdmin /usr/local/ispconfig/interface/web/phpmyadmin + +// Warnings like "warning: phpMyAdmin-3.1.2-1.1.src.rpm: Header V3 DSA signature: NOKEY, key ID 367fe7fc" can be ignored. + +4) Install pure-ftpd and quota + +yast2 -i pure-ftpd quota + +chkconfig --add pure-ftpd +/etc/init.d/pure-ftpd start + + +5) Install mydns + +cd /tmp +wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-1.2.8-1.1.i586.rpm +wget http://download.opensuse.org/repositories/home:/bajizs_cnt/openSUSE_11.1/i586/mydns-ng-mysql-1.2.8-1.1.i586.rpm +rpm -i mydns*.rpm + +chkconfig --add mydns + +6) Install vlogger and webalizer + +cd /tmp +wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz +tar xvfz vlogger-1.3.tar.gz +mv vlogger-1.3/vlogger /usr/sbin/ +rm -rf vlogger* +yast2 -i webalizer perl-DateManip + +6.1 Install fail2ban + +rpm -i http://download.opensuse.org/repositories/home:/leonardocf/openSUSE_11.0/i586/fail2ban-0.8.2-5.2.i586.rpm + + + + +6.2) Cleanup + +rm -f /tmp/*.rpm + +6.2 Install jailkit + +cd /tmp +wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz +tar xvfz jailkit-2.5.tar.gz +cd jailkit-2.5 +./configure +make +make install +cd .. +rm -rf jailkit-2.5* + + +7) Install ISPConfig 3 + +There are two possile scenarios, but not both: +7.1) Install the latest released version +7.2) Install directly from SVN + +7.1) Installation of beta 3 from tar.gz + + cd /tmp + wget http://www.ispconfig.org/downloads/ISPConfig-3.0.0.9-rc2.tar.gz + tar xvfz ISPConfig-3.0.0.9-rc2.tar.gz + cd ispconfig3_install/install/ + +7.2) Installation from SVN + + yast2 -i subversion + cd /tmp + svn export svn://svn.ispconfig.org/ispconfig3/trunk/ + cd trunk/install + + +7.1+7.2) Now proceed with the ISPConfig installation. + +Now start the installation process by executing: + +php -q install.php + +// Cleanup +rm -rf /tmp/trunk + +The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!): + +http://192.168.0.100:8080/ + +the default login is: + +user: admin +password: admin + +In case you get a permission denied error from apache, please restart the apache webserver process. + +Optional: + +Install a webbased Email Client + +yast2 -i squirrelmail + + diff --git a/helper_scripts/setup_in_openvz/diff_openssl.cnf b/helper_scripts/setup_in_openvz/diff_openssl.cnf index b1973a4ad9..4a3c7e6aa1 100644 --- a/helper_scripts/setup_in_openvz/diff_openssl.cnf +++ b/helper_scripts/setup_in_openvz/diff_openssl.cnf @@ -1,25 +1,25 @@ -# diff openssl.cnf /usr/lib/ssl/openssl.cnf -68c68 -< default_days = 3653 # how long to certify for ---- -> default_days = 365 # how long to certify for -125c125 -< countryName_default = YOURCOUNTRY ---- -> countryName_default = AU -130c130 -< stateOrProvinceName_default = YOURPROVINCE ---- -> stateOrProvinceName_default = Some-State -135c135 -< 0.organizationName_default = YOURDOMAIN ---- -> 0.organizationName_default = Internet Widgits Pty Ltd -142c142 -< organizationalUnitName_default = ISP ---- -> #organizationalUnitName_default = -145d144 -< commonName_default = YOURHOSTNAME -149d147 -< emailAddress_default = postmaster@YOURDOMAIN +# diff openssl.cnf /usr/lib/ssl/openssl.cnf +68c68 +< default_days = 3653 # how long to certify for +--- +> default_days = 365 # how long to certify for +125c125 +< countryName_default = YOURCOUNTRY +--- +> countryName_default = AU +130c130 +< stateOrProvinceName_default = YOURPROVINCE +--- +> stateOrProvinceName_default = Some-State +135c135 +< 0.organizationName_default = YOURDOMAIN +--- +> 0.organizationName_default = Internet Widgits Pty Ltd +142c142 +< organizationalUnitName_default = ISP +--- +> #organizationalUnitName_default = +145d144 +< commonName_default = YOURHOSTNAME +149d147 +< emailAddress_default = postmaster@YOURDOMAIN diff --git a/helper_scripts/setup_in_openvz/install_server.sh b/helper_scripts/setup_in_openvz/install_server.sh index 454aec6077..1cc0584170 100644 --- a/helper_scripts/setup_in_openvz/install_server.sh +++ b/helper_scripts/setup_in_openvz/install_server.sh @@ -1,61 +1,61 @@ -#!/bin/bash -# Script to configuring an ispconfig3 server in a Debian VPS -# by calocen [at] gmail [dot] com - -# getting some enviromment values -myhostname=`hostname -f` -mydomain=`hostname -d` -myip=`hostname -i` -[ ! -x /usr/bin/geoiplookup ] && apt-get --assume-yes install geoip-bin -mycountry=`geoiplookup $myip | cut -f4 -d" " | cut -f1 -d","` -myprovince=`geoiplookup $myip | cut -f5 -d" "` - -# reconfiguring webalizer, postfix -# could be cool to modify here webalizer values -dpkg-reconfigure -u webalizer -postconf -e "myhostname = $myhostname" -postconf -e "mydestination = $myhostname, localhost" -echo $myhostname > /etc/mailname -dpkg-reconfigure -u postfix - -# request new password -oldpwd=`grep password /root/.my.cnf | tr "\t" " " | tr -s " " | cut -f3 -d" "` -read -p "mysql password: [$oldpwd] " mysqlpwd -[ -z $mysqlpwd ] && mysqlpwd=$oldpwd -echo $mysqlpwd -#read -p "Are you sure? (y/n) " sure -## who said fear ## -set -x -mysqladmin -u root -p$oldpwd password $mysqlpwd -mysqladmin -u root -p$mysqlpwd -h localhost password $mysqlpwd -cat << EOF > /root/.my.cnf -[client] -password = $mysqlpwd -EOF -chmod 600 /root/.my.cnf - -# changing mydns password -mysql -e "SET PASSWORD FOR 'mydns'@'%' = PASSWORD( '$mysqlpwd' )" -mysql -e "SET PASSWORD FOR 'mydns'@'localhost' = PASSWORD( '$mysqlpwd' )" -cp -ax /etc/mydns.conf /etc/mydns.conf~ -sed s/$oldpwd/$mysqlpwd/g < /etc/mydns.conf~ > /etc/mydns.conf - -# enabling mydns -mydns --create-tables > /tmp/mydns.sql -mysql -e "CREATE DATABASE IF NOT EXISTS mydns ; USE mydns ; SOURCE /tmp/mydns.sql;" -rm /tmp/mydns.* -invoke-rc.d mydns restart - -# preparing server installation -mv /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf~ -sed s/"YOURHOSTNAME"/"$myhostname"/g < /usr/local/bin/openssl.cnf | -sed s/"YOURDOMAIN"/"$mydomain"/g | \ -sed s/"YOURCOUNTRY"/"$mycountry"/g | \ -sed s/"YOURPROVINCE"/"$myprovince"/g > /etc/ssl/openssl.cnf - -tar xfz /root/downloads/ISPConfig-3.0.0.7-beta.tar.gz -C /usr/local/src -# here would be some stuff to update from SVN -cd /usr/local/src/ispconfig3_install/install/ -php -q install.php - - +#!/bin/bash +# Script to configuring an ispconfig3 server in a Debian VPS +# by calocen [at] gmail [dot] com + +# getting some enviromment values +myhostname=`hostname -f` +mydomain=`hostname -d` +myip=`hostname -i` +[ ! -x /usr/bin/geoiplookup ] && apt-get --assume-yes install geoip-bin +mycountry=`geoiplookup $myip | cut -f4 -d" " | cut -f1 -d","` +myprovince=`geoiplookup $myip | cut -f5 -d" "` + +# reconfiguring webalizer, postfix +# could be cool to modify here webalizer values +dpkg-reconfigure -u webalizer +postconf -e "myhostname = $myhostname" +postconf -e "mydestination = $myhostname, localhost" +echo $myhostname > /etc/mailname +dpkg-reconfigure -u postfix + +# request new password +oldpwd=`grep password /root/.my.cnf | tr "\t" " " | tr -s " " | cut -f3 -d" "` +read -p "mysql password: [$oldpwd] " mysqlpwd +[ -z $mysqlpwd ] && mysqlpwd=$oldpwd +echo $mysqlpwd +#read -p "Are you sure? (y/n) " sure +## who said fear ## +set -x +mysqladmin -u root -p$oldpwd password $mysqlpwd +mysqladmin -u root -p$mysqlpwd -h localhost password $mysqlpwd +cat << EOF > /root/.my.cnf +[client] +password = $mysqlpwd +EOF +chmod 600 /root/.my.cnf + +# changing mydns password +mysql -e "SET PASSWORD FOR 'mydns'@'%' = PASSWORD( '$mysqlpwd' )" +mysql -e "SET PASSWORD FOR 'mydns'@'localhost' = PASSWORD( '$mysqlpwd' )" +cp -ax /etc/mydns.conf /etc/mydns.conf~ +sed s/$oldpwd/$mysqlpwd/g < /etc/mydns.conf~ > /etc/mydns.conf + +# enabling mydns +mydns --create-tables > /tmp/mydns.sql +mysql -e "CREATE DATABASE IF NOT EXISTS mydns ; USE mydns ; SOURCE /tmp/mydns.sql;" +rm /tmp/mydns.* +invoke-rc.d mydns restart + +# preparing server installation +mv /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf~ +sed s/"YOURHOSTNAME"/"$myhostname"/g < /usr/local/bin/openssl.cnf | +sed s/"YOURDOMAIN"/"$mydomain"/g | \ +sed s/"YOURCOUNTRY"/"$mycountry"/g | \ +sed s/"YOURPROVINCE"/"$myprovince"/g > /etc/ssl/openssl.cnf + +tar xfz /root/downloads/ISPConfig-3.0.0.7-beta.tar.gz -C /usr/local/src +# here would be some stuff to update from SVN +cd /usr/local/src/ispconfig3_install/install/ +php -q install.php + + diff --git a/helper_scripts/setup_in_openvz/recreate_ssh_and_hostname.sh b/helper_scripts/setup_in_openvz/recreate_ssh_and_hostname.sh index 5ba95c80a4..72c2ab61a2 100644 --- a/helper_scripts/setup_in_openvz/recreate_ssh_and_hostname.sh +++ b/helper_scripts/setup_in_openvz/recreate_ssh_and_hostname.sh @@ -1,18 +1,18 @@ -#!/bin/bash -set -x -echo "" > /etc/resolv.conf -echo "" > /etc/hostname -echo "" > /etc/mailname -rm -f /etc/ssh/ssh_host_* -cat << EOF > /etc/rc2.d/S15ssh_gen_host_keys -#!/bin/bash -ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N '' -ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N '' -dpkg-reconfigure -u webalizer -postconf -e "myhostname = $(hostname -f)" -postconf -e "mydestination = $(hostname -f), localhost" -echo $(hostname -f) > /etc/mailname -dpkg-reconfigure -u postfix -rm -f \$0 -EOF -chmod a+x /etc/rc2.d/S15ssh_gen_host_keys +#!/bin/bash +set -x +echo "" > /etc/resolv.conf +echo "" > /etc/hostname +echo "" > /etc/mailname +rm -f /etc/ssh/ssh_host_* +cat << EOF > /etc/rc2.d/S15ssh_gen_host_keys +#!/bin/bash +ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N '' +ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N '' +dpkg-reconfigure -u webalizer +postconf -e "myhostname = $(hostname -f)" +postconf -e "mydestination = $(hostname -f), localhost" +echo $(hostname -f) > /etc/mailname +dpkg-reconfigure -u postfix +rm -f \$0 +EOF +chmod a+x /etc/rc2.d/S15ssh_gen_host_keys diff --git a/install/autoupdate.php b/install/autoupdate.php index d4bbfcd11e..647fc34202 100644 --- a/install/autoupdate.php +++ b/install/autoupdate.php @@ -1,314 +1,314 @@ -<?php -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - ISPConfig 3 updater. -*/ - -error_reporting(E_ALL|E_STRICT); - -/* - * If the auto-updater flag is not on (the file does not exist) then cancel the auto-update! -*/ -if (!file_exists('autoupdate')) { - - //** The banner on the command line - echo "\n\n".str_repeat('-',80)."\n"; - echo " _____ ___________ _____ __ _ ____ -|_ _/ ___| ___ \ / __ \ / _(_) /__ \ - | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / - | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | - _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ - \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ - __/ | - |___/ "; - echo "\n".str_repeat('-',80)."\n"; - echo "\n\n>>This script is for internal use only! Please use update.php! \n\n"; - exit; -} - -//** Include the library with the basic installer functions -require_once('lib/install.lib.php'); - -//** Include the library with the basic updater functions -require_once('lib/update.lib.php'); - -//** Include the base class of the installer class -require_once('lib/installer_base.lib.php'); - -//** Ensure that current working directory is install directory -$cur_dir = getcwd(); -if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); - -//** Install logfile -define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); -define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); - -//** Get distribution identifier -$dist = get_distname(); - -include_once("/usr/local/ispconfig/server/lib/config.inc.php"); -$conf_old = $conf; -unset($conf); - -if($dist['id'] == '') die('Linux distribution or version not recognized.'); - -//** Include the distribution-specific installer class library and configuration -if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); -include_once('dist/lib/'.$dist['id'].'.lib.php'); -include_once('dist/conf/'.$dist['id'].'.conf.php'); - -//** Get hostname -exec('hostname -f', $tmp_out); -$conf['hostname'] = $tmp_out[0]; -unset($tmp_out); - -//** Set the mysql login information -$conf["mysql"]["host"] = $conf_old["db_host"]; -$conf["mysql"]["database"] = $conf_old["db_database"]; -$conf['mysql']['charset'] = 'utf8'; -$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; -$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; -$conf['language'] = $conf_old['language']; -if($conf['language'] == '{language}') $conf['language'] = 'en'; - -if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; -if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; -if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; -if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; - -//* Check if this is a master / slave setup -$conf['mysql']['master_slave_setup'] = 'n'; -if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { - $conf['mysql']['master_slave_setup'] = 'y'; -} - -// Resolve the IP address of the mysql hostname. -if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); - -$conf['server_id'] = intval($conf_old["server_id"]); -$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; - -$inst = new installer(); -$inst->is_update = true; - -//** Detect the installed applications -$inst->find_installed_apps(); - -//** Initialize the MySQL server connection -include_once('lib/mysql.lib.php'); - -//** Database update is a bit brute force and should be rebuild later ;) - -/* - * Try to read the DB-admin settings - */ -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; -include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); -$conf["mysql"]["admin_user"] = $clientdb_user; -$conf["mysql"]["admin_password"] = $clientdb_password; -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; - -//** There is a error if user for mysql admin_password if empty -if( empty($conf["mysql"]["admin_password"]) ) { - die("internal error - MYSQL-Root passord not known"); -} - -/* - * Prepare the dump of the database -*/ -prepareDBDump(); - -//* initialize the database -$inst->db = new db(); - -/* - * The next line is a bit tricky! - * At the automated update we have no connection to the master-db (we don't need it, because - * there are only TWO points, where this is needed) - * 1) update the rights --> the autoupdater sets the rights of all clients when the server is - * autoupdated) - * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates - * doesn't change any of this settings, so there ist no need to update this. - * This means, the autoupdater did not need any connection to the master-db (only to the local bd - * of the master-server). To avoid any problems, we set the master-db to the local one. - */ -$inst->dbmaster = $inst->db; - -/* - * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights -*/ -if($conf['mysql']['master_slave_setup'] != 'y') { - $inst->grant_master_database_rights(); -} - -/* - * dump the new Database and reconfigure the server.ini - */ -updateDbAndIni(); - -/* - * Reconfigure all Services - */ -if($conf['services']['mail'] == true) { - //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); - - //** Configure mailman - swriteln('Configuring Mailman'); - $inst->configure_mailman('update'); - - //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - - if($conf['dovecot']['installed'] == true) { - //* Configure dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - //** Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //** Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //** Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); -} - -if($conf['services']['web'] == true) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); -} - -if($conf['services']['dns'] == true) { - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - } -} - -if($conf['services']['web'] == true) { - //** Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure vlogger - swriteln('Configuring vlogger'); - $inst->configure_vlogger(); - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); -} - - -//* Configure DBServer -swriteln('Configuring Database'); -$inst->configure_dbserver(); - - -//if(@is_dir('/etc/Bastille')) { -//* Configure Firewall -swriteln('Configuring Firewall'); -$inst->configure_firewall(); -//} - -//** Configure ISPConfig -swriteln('Updating ISPConfig'); - - -//** Customise the port ISPConfig runs on -$conf['apache']['vhost_port'] = get_ispconfig_port_number(); - -$inst->install_ispconfig(); - -//** Configure Crontab -swriteln('Updating Crontab'); -$inst->install_crontab(); - -//** Restart services: -swriteln('Restarting services ...'); -if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' reload'); -if($conf['services']['mail']) { - if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); - if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); - if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); - if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); - if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); - if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); - if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); - if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); - if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); - if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); - if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); -} -if($conf['services']['web']) { - if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); - if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); -} -if($conf['services']['dns']) { - if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); - if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); - if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); -} - -echo "Update finished.\n"; - -?> +<?php +/* +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + ISPConfig 3 updater. +*/ + +error_reporting(E_ALL|E_STRICT); + +/* + * If the auto-updater flag is not on (the file does not exist) then cancel the auto-update! +*/ +if (!file_exists('autoupdate')) { + + //** The banner on the command line + echo "\n\n".str_repeat('-',80)."\n"; + echo " _____ ___________ _____ __ _ ____ +|_ _/ ___| ___ \ / __ \ / _(_) /__ \ + | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / + | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | + _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ + \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ + __/ | + |___/ "; + echo "\n".str_repeat('-',80)."\n"; + echo "\n\n>>This script is for internal use only! Please use update.php! \n\n"; + exit; +} + +//** Include the library with the basic installer functions +require_once('lib/install.lib.php'); + +//** Include the library with the basic updater functions +require_once('lib/update.lib.php'); + +//** Include the base class of the installer class +require_once('lib/installer_base.lib.php'); + +//** Ensure that current working directory is install directory +$cur_dir = getcwd(); +if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); + +//** Install logfile +define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); +define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); + +//** Get distribution identifier +$dist = get_distname(); + +include_once("/usr/local/ispconfig/server/lib/config.inc.php"); +$conf_old = $conf; +unset($conf); + +if($dist['id'] == '') die('Linux distribution or version not recognized.'); + +//** Include the distribution-specific installer class library and configuration +if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); +include_once('dist/lib/'.$dist['id'].'.lib.php'); +include_once('dist/conf/'.$dist['id'].'.conf.php'); + +//** Get hostname +exec('hostname -f', $tmp_out); +$conf['hostname'] = $tmp_out[0]; +unset($tmp_out); + +//** Set the mysql login information +$conf["mysql"]["host"] = $conf_old["db_host"]; +$conf["mysql"]["database"] = $conf_old["db_database"]; +$conf['mysql']['charset'] = 'utf8'; +$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; +$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; +$conf['language'] = $conf_old['language']; +if($conf['language'] == '{language}') $conf['language'] = 'en'; + +if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; +if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; +if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; +if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; + +//* Check if this is a master / slave setup +$conf['mysql']['master_slave_setup'] = 'n'; +if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { + $conf['mysql']['master_slave_setup'] = 'y'; +} + +// Resolve the IP address of the mysql hostname. +if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); + +$conf['server_id'] = intval($conf_old["server_id"]); +$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; + +$inst = new installer(); +$inst->is_update = true; + +//** Detect the installed applications +$inst->find_installed_apps(); + +//** Initialize the MySQL server connection +include_once('lib/mysql.lib.php'); + +//** Database update is a bit brute force and should be rebuild later ;) + +/* + * Try to read the DB-admin settings + */ +$clientdb_host = ''; +$clientdb_user = ''; +$clientdb_password = ''; +include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); +$conf["mysql"]["admin_user"] = $clientdb_user; +$conf["mysql"]["admin_password"] = $clientdb_password; +$clientdb_host = ''; +$clientdb_user = ''; +$clientdb_password = ''; + +//** There is a error if user for mysql admin_password if empty +if( empty($conf["mysql"]["admin_password"]) ) { + die("internal error - MYSQL-Root passord not known"); +} + +/* + * Prepare the dump of the database +*/ +prepareDBDump(); + +//* initialize the database +$inst->db = new db(); + +/* + * The next line is a bit tricky! + * At the automated update we have no connection to the master-db (we don't need it, because + * there are only TWO points, where this is needed) + * 1) update the rights --> the autoupdater sets the rights of all clients when the server is + * autoupdated) + * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates + * doesn't change any of this settings, so there ist no need to update this. + * This means, the autoupdater did not need any connection to the master-db (only to the local bd + * of the master-server). To avoid any problems, we set the master-db to the local one. + */ +$inst->dbmaster = $inst->db; + +/* + * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights +*/ +if($conf['mysql']['master_slave_setup'] != 'y') { + $inst->grant_master_database_rights(); +} + +/* + * dump the new Database and reconfigure the server.ini + */ +updateDbAndIni(); + +/* + * Reconfigure all Services + */ +if($conf['services']['mail'] == true) { + //** Configure postfix + swriteln('Configuring Postfix'); + $inst->configure_postfix('dont-create-certs'); + + //** Configure mailman + swriteln('Configuring Mailman'); + $inst->configure_mailman('update'); + + //* Configure Jailkit + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + + if($conf['dovecot']['installed'] == true) { + //* Configure dovecot + swriteln('Configuring Dovecot'); + $inst->configure_dovecot(); + } else { + //** Configure saslauthd + swriteln('Configuring SASL'); + $inst->configure_saslauthd(); + + //** Configure PAM + swriteln('Configuring PAM'); + $inst->configure_pam(); + + //* Configure courier + swriteln('Configuring Courier'); + $inst->configure_courier(); + } + + //** Configure Spamasassin + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + + //** Configure Amavis + swriteln('Configuring Amavisd'); + $inst->configure_amavis(); + + //** Configure Getmail + swriteln('Configuring Getmail'); + $inst->configure_getmail(); +} + +if($conf['services']['web'] == true) { + //** Configure Pureftpd + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); +} + +if($conf['services']['dns'] == true) { + //* Configure DNS + if($conf['powerdns']['installed'] == true) { + swriteln('Configuring PowerDNS'); + $inst->configure_powerdns(); + } elseif($conf['bind']['installed'] == true) { + swriteln('Configuring BIND'); + $inst->configure_bind(); + } else { + swriteln('Configuring MyDNS'); + $inst->configure_mydns(); + } +} + +if($conf['services']['web'] == true) { + //** Configure Apache + swriteln('Configuring Apache'); + $inst->configure_apache(); + + //** Configure vlogger + swriteln('Configuring vlogger'); + $inst->configure_vlogger(); + + //** Configure apps vhost + swriteln('Configuring Apps vhost'); + $inst->configure_apps_vhost(); +} + + +//* Configure DBServer +swriteln('Configuring Database'); +$inst->configure_dbserver(); + + +//if(@is_dir('/etc/Bastille')) { +//* Configure Firewall +swriteln('Configuring Firewall'); +$inst->configure_firewall(); +//} + +//** Configure ISPConfig +swriteln('Updating ISPConfig'); + + +//** Customise the port ISPConfig runs on +$conf['apache']['vhost_port'] = get_ispconfig_port_number(); + +$inst->install_ispconfig(); + +//** Configure Crontab +swriteln('Updating Crontab'); +$inst->install_crontab(); + +//** Restart services: +swriteln('Restarting services ...'); +if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' reload'); +if($conf['services']['mail']) { + if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); + if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); + if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); + if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); + if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); + if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); + if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); + if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); + if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); + if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); + if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); +} +if($conf['services']['web']) { + if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); + if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); +} +if($conf['services']['dns']) { + if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); + if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); + if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); +} + +echo "Update finished.\n"; + +?> diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php index 35c4deae27..a3db4dd81c 100644 --- a/install/dist/conf/debian40.conf.php +++ b/install/dist/conf/debian40.conf.php @@ -1,195 +1,195 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -//*** Debian 4.0 default settings - -//* Main -$conf['language'] = 'en'; -$conf['distname'] = 'debian40'; -$conf['hostname'] = 'server1.domain.tld'; // Full hostname -$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; -$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; -$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error -$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; -$conf['server_id'] = 1; -$conf['init_scripts'] = '/etc/init.d'; -$conf['runlevel'] = '/etc'; -$conf['shells'] = '/etc/shells'; -$conf['pam'] = '/etc/pam.d'; - -//* Services provided by this server, this selection will be overridden by the expert mode -$conf['services']['mail'] = true; -$conf['services']['web'] = true; -$conf['services']['dns'] = true; -$conf['services']['file'] = true; -$conf['services']['db'] = true; -$conf['services']['vserver'] = true; - -//* MySQL -$conf['mysql']['installed'] = false; // will be detected automatically during installation -$conf['mysql']['init_script'] = 'mysql'; -$conf['mysql']['host'] = 'localhost'; -$conf['mysql']['ip'] = '127.0.0.1'; -$conf['mysql']['port'] = '3306'; -$conf['mysql']['database'] = 'dbispconfig'; -$conf['mysql']['admin_user'] = 'root'; -$conf['mysql']['admin_password'] = ''; -$conf['mysql']['charset'] = 'utf8'; -$conf['mysql']['ispconfig_user'] = 'ispconfig'; -$conf['mysql']['ispconfig_password'] = md5 (uniqid (rand())); -$conf['mysql']['master_slave_setup'] = 'n'; -$conf['mysql']['master_host'] = ''; -$conf['mysql']['master_database'] = 'dbispconfig'; -$conf['mysql']['master_admin_user'] = 'root'; -$conf['mysql']['master_admin_password'] = ''; -$conf['mysql']['master_ispconfig_user'] = ''; -$conf['mysql']['master_ispconfig_password'] = md5 (uniqid (rand())); - -//* Apache -$conf['apache']['installed'] = false; // will be detected automatically during installation -$conf['apache']['user'] = 'www-data'; -$conf['apache']['group'] = 'www-data'; -$conf['apache']['init_script'] = 'apache2'; -$conf['apache']['version'] = '2.2'; -$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; -$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; -$conf['apache']['vhost_port'] = '8080'; -$conf['apache']['php_ini_path_apache'] = '/etc/php5/apache2/php.ini'; -$conf['apache']['php_ini_path_cgi'] = '/etc/php5/cgi/php.ini'; - -//* Website base settings -$conf['web']['website_basedir'] = '/var/www'; -$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; -$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; - -//* Apps base settings -$conf['web']['apps_vhost_ip'] = '_default_'; -$conf['web']['apps_vhost_port'] = '8081'; -$conf['web']['apps_vhost_servername'] = ''; -$conf['web']['apps_vhost_user'] = 'ispapps'; -$conf['web']['apps_vhost_group'] = 'ispapps'; - -//* Fastcgi -$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/cgi/'; -$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; - -//* Postfix -$conf['postfix']['installed'] = false; // will be detected automatically during installation -$conf['postfix']['config_dir'] = '/etc/postfix'; -$conf['postfix']['init_script'] = 'postfix'; -$conf['postfix']['user'] = 'postfix'; -$conf['postfix']['group'] = 'postfix'; -$conf['postfix']['vmail_userid'] = '5000'; -$conf['postfix']['vmail_username'] = 'vmail'; -$conf['postfix']['vmail_groupid'] = '5000'; -$conf['postfix']['vmail_groupname'] = 'vmail'; -$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; - -//* Mailman -$conf['mailman']['installed'] = false; // will be detected automatically during installation -$conf['mailman']['config_dir'] = '/etc/mailman'; -$conf['mailman']['init_script'] = 'mailman'; - -//* Getmail -$conf['getmail']['installed'] = false; // will be detected automatically during installation -$conf['getmail']['config_dir'] = '/etc/getmail'; -$conf['getmail']['program'] = '/usr/bin/getmail'; - -//* Courier -$conf['courier']['installed'] = false; // will be detected automatically during installation -$conf['courier']['config_dir'] = '/etc/courier'; -$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; -$conf['courier']['courier-imap'] = 'courier-imap'; -$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; -$conf['courier']['courier-pop'] = 'courier-pop'; -$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; - -//* Dovecot -$conf['dovecot']['installed'] = false; // will be detected automatically during installation -$conf['dovecot']['config_dir'] = '/etc/dovecot'; -$conf['dovecot']['init_script'] = 'dovecot'; - -//* SASL -$conf['saslauthd']['installed'] = false; // will be detected automatically during installation -$conf['saslauthd']['config'] = '/etc/default/saslauthd'; -$conf['saslauthd']['init_script'] = 'saslauthd'; - -//* Amavisd -$conf['amavis']['installed'] = false; // will be detected automatically during installation -$conf['amavis']['config_dir'] = '/etc/amavis'; -$conf['amavis']['init_script'] = 'amavis'; - -//* ClamAV -$conf['clamav']['installed'] = false; // will be detected automatically during installation -$conf['clamav']['init_script'] = 'clamav-daemon'; - -//* Pureftpd -$conf['pureftpd']['installed'] = false; // will be detected automatically during installation -$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; -$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; - -//* MyDNS -$conf['mydns']['installed'] = false; // will be detected automatically during installation -$conf['mydns']['config_dir'] = '/etc'; -$conf['mydns']['init_script'] = 'mydns'; - -//* PowerDNS -$conf['powerdns']['installed'] = false; // will be detected automatically during installation -$conf['powerdns']['database'] = 'powerdns'; -$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; -$conf['powerdns']['init_script'] = 'pdns'; - -//* BIND DNS Server -$conf['bind']['installed'] = false; // will be detected automatically during installation -$conf['bind']['bind_user'] = 'root'; -$conf['bind']['bind_group'] = 'bind'; -$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; -$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; -$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; -$conf['bind']['init_script'] = 'bind9'; - -//* Jailkit -$conf['jailkit']['installed'] = false; // will be detected automatically during installation -$conf['jailkit']['config_dir'] = '/etc/jailkit'; -$conf['jailkit']['jk_init'] = 'jk_init.ini'; -$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; -$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico'; -$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; - -//* vlogger -$conf['vlogger']['config_dir'] = '/etc'; - -//* cron -$conf['cron']['init_script'] = 'cron'; -$conf['cron']['crontab_dir'] = '/etc/cron.d'; -$conf['cron']['wget'] = '/usr/bin/wget'; - - -?> +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +//*** Debian 4.0 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'debian40'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mysql'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5 (uniqid (rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5 (uniqid (rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'www-data'; +$conf['apache']['group'] = 'www-data'; +$conf['apache']['init_script'] = 'apache2'; +$conf['apache']['version'] = '2.2'; +$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php5/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php5/cgi/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/cgi/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/courier'; +$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; +$conf['courier']['courier-pop'] = 'courier-pop'; +$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc/dovecot'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/default/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc/amavis'; +$conf['amavis']['init_script'] = 'amavis'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamav-daemon'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'root'; +$conf['bind']['bind_group'] = 'bind'; +$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; +$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; +$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; +$conf['bind']['init_script'] = 'bind9'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'cron'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + + +?> diff --git a/install/dist/conf/debian60.conf.php b/install/dist/conf/debian60.conf.php index 6962adb22c..f4e8ba6ac3 100644 --- a/install/dist/conf/debian60.conf.php +++ b/install/dist/conf/debian60.conf.php @@ -1,195 +1,195 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -//*** Debian 4.0 default settings - -//* Main -$conf['language'] = 'en'; -$conf['distname'] = 'debian60'; -$conf['hostname'] = 'server1.domain.tld'; // Full hostname -$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; -$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; -$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error -$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; -$conf['server_id'] = 1; -$conf['init_scripts'] = '/etc/init.d'; -$conf['runlevel'] = '/etc'; -$conf['shells'] = '/etc/shells'; -$conf['pam'] = '/etc/pam.d'; - -//* Services provided by this server, this selection will be overridden by the expert mode -$conf['services']['mail'] = true; -$conf['services']['web'] = true; -$conf['services']['dns'] = true; -$conf['services']['file'] = true; -$conf['services']['db'] = true; -$conf['services']['vserver'] = true; - -//* MySQL -$conf['mysql']['installed'] = false; // will be detected automatically during installation -$conf['mysql']['init_script'] = 'mysql'; -$conf['mysql']['host'] = 'localhost'; -$conf['mysql']['ip'] = '127.0.0.1'; -$conf['mysql']['port'] = '3306'; -$conf['mysql']['database'] = 'dbispconfig'; -$conf['mysql']['admin_user'] = 'root'; -$conf['mysql']['admin_password'] = ''; -$conf['mysql']['charset'] = 'utf8'; -$conf['mysql']['ispconfig_user'] = 'ispconfig'; -$conf['mysql']['ispconfig_password'] = md5 (uniqid (rand())); -$conf['mysql']['master_slave_setup'] = 'n'; -$conf['mysql']['master_host'] = ''; -$conf['mysql']['master_database'] = 'dbispconfig'; -$conf['mysql']['master_admin_user'] = 'root'; -$conf['mysql']['master_admin_password'] = ''; -$conf['mysql']['master_ispconfig_user'] = ''; -$conf['mysql']['master_ispconfig_password'] = md5 (uniqid (rand())); - -//* Apache -$conf['apache']['installed'] = false; // will be detected automatically during installation -$conf['apache']['user'] = 'www-data'; -$conf['apache']['group'] = 'www-data'; -$conf['apache']['init_script'] = 'apache2'; -$conf['apache']['version'] = '2.2'; -$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; -$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; -$conf['apache']['vhost_port'] = '8080'; -$conf['apache']['php_ini_path_apache'] = '/etc/php5/apache2/php.ini'; -$conf['apache']['php_ini_path_cgi'] = '/etc/php5/cgi/php.ini'; - -//* Website base settings -$conf['web']['website_basedir'] = '/var/www'; -$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; -$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; - -//* Apps base settings -$conf['web']['apps_vhost_ip'] = '_default_'; -$conf['web']['apps_vhost_port'] = '8081'; -$conf['web']['apps_vhost_servername'] = ''; -$conf['web']['apps_vhost_user'] = 'ispapps'; -$conf['web']['apps_vhost_group'] = 'ispapps'; - -//* Fastcgi -$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/cgi/'; -$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; - -//* Postfix -$conf['postfix']['installed'] = false; // will be detected automatically during installation -$conf['postfix']['config_dir'] = '/etc/postfix'; -$conf['postfix']['init_script'] = 'postfix'; -$conf['postfix']['user'] = 'postfix'; -$conf['postfix']['group'] = 'postfix'; -$conf['postfix']['vmail_userid'] = '5000'; -$conf['postfix']['vmail_username'] = 'vmail'; -$conf['postfix']['vmail_groupid'] = '5000'; -$conf['postfix']['vmail_groupname'] = 'vmail'; -$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; - -//* Mailman -$conf['mailman']['installed'] = false; // will be detected automatically during installation -$conf['mailman']['config_dir'] = '/etc/mailman'; -$conf['mailman']['init_script'] = 'mailman'; - -//* Getmail -$conf['getmail']['installed'] = false; // will be detected automatically during installation -$conf['getmail']['config_dir'] = '/etc/getmail'; -$conf['getmail']['program'] = '/usr/bin/getmail'; - -//* Courier -$conf['courier']['installed'] = false; // will be detected automatically during installation -$conf['courier']['config_dir'] = '/etc/courier'; -$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; -$conf['courier']['courier-imap'] = 'courier-imap'; -$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; -$conf['courier']['courier-pop'] = 'courier-pop'; -$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; - -//* Dovecot -$conf['dovecot']['installed'] = false; // will be detected automatically during installation -$conf['dovecot']['config_dir'] = '/etc/dovecot'; -$conf['dovecot']['init_script'] = 'dovecot'; - -//* SASL -$conf['saslauthd']['installed'] = false; // will be detected automatically during installation -$conf['saslauthd']['config'] = '/etc/default/saslauthd'; -$conf['saslauthd']['init_script'] = 'saslauthd'; - -//* Amavisd -$conf['amavis']['installed'] = false; // will be detected automatically during installation -$conf['amavis']['config_dir'] = '/etc/amavis'; -$conf['amavis']['init_script'] = 'amavis'; - -//* ClamAV -$conf['clamav']['installed'] = false; // will be detected automatically during installation -$conf['clamav']['init_script'] = 'clamav-daemon'; - -//* Pureftpd -$conf['pureftpd']['installed'] = false; // will be detected automatically during installation -$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; -$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; - -//* MyDNS -$conf['mydns']['installed'] = false; // will be detected automatically during installation -$conf['mydns']['config_dir'] = '/etc'; -$conf['mydns']['init_script'] = 'mydns'; - -//* PowerDNS -$conf['powerdns']['installed'] = false; // will be detected automatically during installation -$conf['powerdns']['database'] = 'powerdns'; -$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; -$conf['powerdns']['init_script'] = 'pdns'; - -//* BIND DNS Server -$conf['bind']['installed'] = false; // will be detected automatically during installation -$conf['bind']['bind_user'] = 'root'; -$conf['bind']['bind_group'] = 'bind'; -$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; -$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; -$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; -$conf['bind']['init_script'] = 'bind9'; - -//* Jailkit -$conf['jailkit']['installed'] = false; // will be detected automatically during installation -$conf['jailkit']['config_dir'] = '/etc/jailkit'; -$conf['jailkit']['jk_init'] = 'jk_init.ini'; -$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; -$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico'; -$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; - -//* vlogger -$conf['vlogger']['config_dir'] = '/etc'; - -//* cron -$conf['cron']['init_script'] = 'cron'; -$conf['cron']['crontab_dir'] = '/etc/cron.d'; -$conf['cron']['wget'] = '/usr/bin/wget'; - - -?> +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +//*** Debian 4.0 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'debian60'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mysql'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5 (uniqid (rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5 (uniqid (rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'www-data'; +$conf['apache']['group'] = 'www-data'; +$conf['apache']['init_script'] = 'apache2'; +$conf['apache']['version'] = '2.2'; +$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php5/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php5/cgi/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/cgi/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/courier'; +$conf['courier']['courier-authdaemon'] = 'courier-authdaemon'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl'; +$conf['courier']['courier-pop'] = 'courier-pop'; +$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl'; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc/dovecot'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/default/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc/amavis'; +$conf['amavis']['init_script'] = 'amavis'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamav-daemon'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'root'; +$conf['bind']['bind_group'] = 'bind'; +$conf['bind']['bind_zonefiles_dir'] = '/etc/bind'; +$conf['bind']['named_conf_path'] = '/etc/bind/named.conf'; +$conf['bind']['named_conf_local_path'] = '/etc/bind/named.conf.local'; +$conf['bind']['init_script'] = 'bind9'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'cron'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + + +?> diff --git a/install/install.php b/install/install.php index a17e0393ea..d79450f72a 100644 --- a/install/install.php +++ b/install/install.php @@ -1,490 +1,490 @@ -<?php - -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - ISPConfig 3 installer. -*/ - -error_reporting(E_ALL|E_STRICT); - -//** The banner on the command line -echo "\n\n".str_repeat('-',80)."\n"; -echo " _____ ___________ _____ __ _ ____ -|_ _/ ___| ___ \ / __ \ / _(_) /__ \ - | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / - | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | - _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ - \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ - __/ | - |___/ "; -echo "\n".str_repeat('-',80)."\n"; -echo "\n\n>> Initial configuration \n\n"; - -//** Include the library with the basic installer functions -require_once('lib/install.lib.php'); - -//** Include the base class of the installer class -require_once('lib/installer_base.lib.php'); - -//** Ensure that current working directory is install directory -$cur_dir = getcwd(); -if(realpath(dirname(__FILE__)) != $cur_dir) { - chdir( realpath(dirname(__FILE__)) ); -} - -//** Install logfile -define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); -define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); - -//** Check for existing installation -/*if(is_dir("/usr/local/ispconfig")) { - die('We will stop here. There is already a ISPConfig installation, use the update script to update this installation.'); -}*/ - -//** Get distribution identifier -$dist = get_distname(); - -if($dist['id'] == '') die('Linux distribution or version not recognized.'); - -//** Include the distribution-specific installer class library and configuration -if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); -include_once('dist/lib/'.$dist['id'].'.lib.php'); -include_once('dist/conf/'.$dist['id'].'.conf.php'); - -//**************************************************************************************************** -//** Installer Interface -//**************************************************************************************************** -$inst = new installer(); -swriteln($inst->lng(' Following will be a few questions for primary configuration so be careful.')); -swriteln($inst->lng(' Default values are in [brackets] and can be accepted with <ENTER>.')); -swriteln($inst->lng(' Tap in "quit" (without the quotes) to stop the installer.'."\n\n")); - -//** Check log file is writable (probably not root or sudo) -if(!is_writable(dirname(ISPC_LOG_FILE))){ - die("ERROR: Cannot write to the ".dirname(ISPC_LOG_FILE)." directory. Are you root or sudo ?\n\n"); -} - -if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) { - die('This software cannot be installed on a server wich runs ISPConfig 2.x.'); -} - -if(is_dir('/usr/local/ispconfig')) { - die('ISPConfig 3 installation found. Please use update.php instead if install.php to update the installation.'); -} - -//** Detect the installed applications -$inst->find_installed_apps(); - -//** Select the language -$conf['language'] = $inst->simple_query('Select language', array('en','de'), 'en'); - -//** Select installation mode -$install_mode = $inst->simple_query('Installation mode', array('standard','expert'), 'standard'); - - -//** Get the hostname -$tmp_out = array(); -exec('hostname -f', $tmp_out); -$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', $tmp_out[0]); -unset($tmp_out); - -// Check if the mysql functions are loaded in PHP -if(!function_exists('mysql_connect')) die('No PHP MySQL functions available. Please ensure that the PHP MySQL module is loaded.'); - -//** Get MySQL root credentials -$finished = false; -do { - $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']); - $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset']); - - //* Initialize the MySQL server connection - if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { - $conf['mysql']['host'] = $tmp_mysql_server_host; - $conf['mysql']['admin_user'] = $tmp_mysql_server_admin_user; - $conf['mysql']['admin_password'] = $tmp_mysql_server_admin_password; - $conf['mysql']['database'] = $tmp_mysql_server_database; - $conf['mysql']['charset'] = $tmp_mysql_server_charset; - $finished = true; - } else { - swriteln($inst->lng('Unable to connect to the specified MySQL server').' '.mysql_error()); - } -} while ($finished == false); -unset($finished); - -// Resolve the IP address of the MySQL hostname. -$tmp = explode(':',$conf['mysql']['host']); -if(!$conf['mysql']['ip'] = gethostbyname($tmp[0])) die('Unable to resolve hostname'.$tmp[0]); -unset($tmp); - - -//** Initializing database connection -include_once('lib/mysql.lib.php'); -$inst->db = new db(); - -//** Begin with standard or expert installation -if($install_mode == 'standard') { - - //* Create the MySQL database - $inst->configure_database(); - - //* Insert the Server record into the database - $inst->add_database_server_record(); - - //* Configure Postfix - $inst->configure_postfix(); - - //* Configure Mailman - $inst->configure_mailman('install'); - - //* Configure jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - - if($conf['dovecot']['installed'] == true) { - //* Configure Dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - //* Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //* Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure Courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //* Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //* Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //* Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); - - - //* Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); - - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - } - - //* Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure Vlogger - swriteln('Configuring Vlogger'); - $inst->configure_vlogger(); - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); - - //* Configure Firewall - swriteln('Configuring Firewall'); - $inst->configure_firewall(); - - //* Configure ISPConfig - swriteln('Installing ISPConfig'); - - //** Customize the port ISPConfig runs on - $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080'); - - $inst->install_ispconfig(); - - //* Configure DBServer - swriteln('Configuring DBServer'); - $inst->configure_dbserver(); - - //* Configure ISPConfig - swriteln('Installing ISPConfig crontab'); - $inst->install_crontab(); - - swriteln('Restarting services ...'); - if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart'); - if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); - if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); - if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); - if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); - if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); - if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); - if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); - if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); - if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); - if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); - if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); - if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); - if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); - if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); - if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); - if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); - -}else{ - - //* In expert mode, we select the services in the following steps, only db is always available - $conf['services']['mail'] = false; - $conf['services']['web'] = false; - $conf['services']['dns'] = false; - $conf['services']['db'] = true; - - - //** Get Server ID - // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1'); - // Server ID is an autoInc value of the mysql database now - - if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup',array('y','n'),'n')) == 'y') { - $conf['mysql']['master_slave_setup'] = 'y'; - - //** Get MySQL root credentials - $finished = false; - do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); - - //* Initialize the MySQL server connection - if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { - $conf['mysql']['master_host'] = $tmp_mysql_server_host; - $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user; - $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password; - $conf['mysql']['master_database'] = $tmp_mysql_server_database; - $finished = true; - } else { - swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); - } - } while ($finished == false); - unset($finished); - - // initialize the connection to the master database - $inst->dbmaster = new db(); - if($inst->dbmaster->linkId) $inst->dbmaster->closeConn(); - $inst->dbmaster->dbHost = $conf['mysql']["master_host"]; - $inst->dbmaster->dbName = $conf['mysql']["master_database"]; - $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"]; - $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"]; - - } else { - // the master DB is the same then the slave DB - $inst->dbmaster = $inst->db; - } - - //* Create the mysql database - $inst->configure_database(); - - //* Insert the Server record into the database - swriteln('Adding ISPConfig server record to database.'); - swriteln(''); - $inst->add_database_server_record(); - - - if(strtolower($inst->simple_query('Configure Mail', array('y','n') ,'y') ) == 'y') { - - $conf['services']['mail'] = true; - - //* Configure Postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix(); - - //* Configure Mailman - swriteln('Configuring Mailman'); - $inst->configure_mailman(); - - if($conf['dovecot']['installed'] == true) { - //* Configure dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - - //* Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //* Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //* Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //* Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //* Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); - - if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); - if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); - if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); - if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); - if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); - if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); - if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); - if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); - if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); - if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); - if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); - } - - //** Configure Jailkit - if(strtolower($inst->simple_query('Configure Jailkit', array('y','n'),'y') ) == 'y') { - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - } - - //** Configure Pureftpd - if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') { - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); - if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); - } - - //** Configure DNS - if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') { - $conf['services']['dns'] = true; - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - if($conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - if($conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - if($conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); - } - - } - - //** Configure Apache - swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n"); - if(strtolower($inst->simple_query('Configure Apache Server',array('y','n'),'y')) == 'y') { - $conf['services']['web'] = true; - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure Vlogger - swriteln('Configuring Vlogger'); - $inst->configure_vlogger(); - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); - } - - //** Configure Firewall - if(strtolower($inst->simple_query('Configure Firewall Server',array('y','n'),'y')) == 'y') { - swriteln('Configuring Firewall'); - $inst->configure_firewall(); - } - //** Configure ISPConfig :-) - if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),'y')) == 'y') { - swriteln('Installing ISPConfig'); - - //** We want to check if the server is a module or cgi based php enabled server - //** TODO: Don't always ask for this somehow ? - /* - $fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no'); - - if($fast_cgi == 'yes') { - $alias = $inst->free_query('Script Alias', '/php/'); - $path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin'); - $conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path); - } else { - $conf['apache']['vhost_cgi_alias'] = ""; - } - */ - - //** Customise the port ISPConfig runs on - $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080'); - - if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface',array('y','n'),'y')) == 'y') { - $inst->make_ispconfig_ssl_cert(); - } - - $inst->install_ispconfig_interface = true; - - } else { - $inst->install_ispconfig_interface = false; - } - - $inst->install_ispconfig(); - - //* Configure DBServer - swriteln('Configuring DBServer'); - $inst->configure_dbserver(); - - //* Configure ISPConfig - swriteln('Installing ISPConfig crontab'); - $inst->install_crontab(); - if($conf['apache']['init_script'] != '' && @is_file($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); - - - -} //* << $install_mode / 'Standard' or Genius - - -echo "Installation completed.\n"; - - -?> +<?php + +/* +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + ISPConfig 3 installer. +*/ + +error_reporting(E_ALL|E_STRICT); + +//** The banner on the command line +echo "\n\n".str_repeat('-',80)."\n"; +echo " _____ ___________ _____ __ _ ____ +|_ _/ ___| ___ \ / __ \ / _(_) /__ \ + | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / + | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | + _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ + \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ + __/ | + |___/ "; +echo "\n".str_repeat('-',80)."\n"; +echo "\n\n>> Initial configuration \n\n"; + +//** Include the library with the basic installer functions +require_once('lib/install.lib.php'); + +//** Include the base class of the installer class +require_once('lib/installer_base.lib.php'); + +//** Ensure that current working directory is install directory +$cur_dir = getcwd(); +if(realpath(dirname(__FILE__)) != $cur_dir) { + chdir( realpath(dirname(__FILE__)) ); +} + +//** Install logfile +define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); +define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); + +//** Check for existing installation +/*if(is_dir("/usr/local/ispconfig")) { + die('We will stop here. There is already a ISPConfig installation, use the update script to update this installation.'); +}*/ + +//** Get distribution identifier +$dist = get_distname(); + +if($dist['id'] == '') die('Linux distribution or version not recognized.'); + +//** Include the distribution-specific installer class library and configuration +if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); +include_once('dist/lib/'.$dist['id'].'.lib.php'); +include_once('dist/conf/'.$dist['id'].'.conf.php'); + +//**************************************************************************************************** +//** Installer Interface +//**************************************************************************************************** +$inst = new installer(); +swriteln($inst->lng(' Following will be a few questions for primary configuration so be careful.')); +swriteln($inst->lng(' Default values are in [brackets] and can be accepted with <ENTER>.')); +swriteln($inst->lng(' Tap in "quit" (without the quotes) to stop the installer.'."\n\n")); + +//** Check log file is writable (probably not root or sudo) +if(!is_writable(dirname(ISPC_LOG_FILE))){ + die("ERROR: Cannot write to the ".dirname(ISPC_LOG_FILE)." directory. Are you root or sudo ?\n\n"); +} + +if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) { + die('This software cannot be installed on a server wich runs ISPConfig 2.x.'); +} + +if(is_dir('/usr/local/ispconfig')) { + die('ISPConfig 3 installation found. Please use update.php instead if install.php to update the installation.'); +} + +//** Detect the installed applications +$inst->find_installed_apps(); + +//** Select the language +$conf['language'] = $inst->simple_query('Select language', array('en','de'), 'en'); + +//** Select installation mode +$install_mode = $inst->simple_query('Installation mode', array('standard','expert'), 'standard'); + + +//** Get the hostname +$tmp_out = array(); +exec('hostname -f', $tmp_out); +$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg server1.domain.tld ', $tmp_out[0]); +unset($tmp_out); + +// Check if the mysql functions are loaded in PHP +if(!function_exists('mysql_connect')) die('No PHP MySQL functions available. Please ensure that the PHP MySQL module is loaded.'); + +//** Get MySQL root credentials +$finished = false; +do { + $tmp_mysql_server_host = $inst->free_query('MySQL server hostname', $conf['mysql']['host']); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL root username', $conf['mysql']['admin_user']); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); + $tmp_mysql_server_database = $inst->free_query('MySQL database to create', $conf['mysql']['database']); + $tmp_mysql_server_charset = $inst->free_query('MySQL charset', $conf['mysql']['charset']); + + //* Initialize the MySQL server connection + if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { + $conf['mysql']['host'] = $tmp_mysql_server_host; + $conf['mysql']['admin_user'] = $tmp_mysql_server_admin_user; + $conf['mysql']['admin_password'] = $tmp_mysql_server_admin_password; + $conf['mysql']['database'] = $tmp_mysql_server_database; + $conf['mysql']['charset'] = $tmp_mysql_server_charset; + $finished = true; + } else { + swriteln($inst->lng('Unable to connect to the specified MySQL server').' '.mysql_error()); + } +} while ($finished == false); +unset($finished); + +// Resolve the IP address of the MySQL hostname. +$tmp = explode(':',$conf['mysql']['host']); +if(!$conf['mysql']['ip'] = gethostbyname($tmp[0])) die('Unable to resolve hostname'.$tmp[0]); +unset($tmp); + + +//** Initializing database connection +include_once('lib/mysql.lib.php'); +$inst->db = new db(); + +//** Begin with standard or expert installation +if($install_mode == 'standard') { + + //* Create the MySQL database + $inst->configure_database(); + + //* Insert the Server record into the database + $inst->add_database_server_record(); + + //* Configure Postfix + $inst->configure_postfix(); + + //* Configure Mailman + $inst->configure_mailman('install'); + + //* Configure jailkit + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + + if($conf['dovecot']['installed'] == true) { + //* Configure Dovecot + swriteln('Configuring Dovecot'); + $inst->configure_dovecot(); + } else { + //* Configure saslauthd + swriteln('Configuring SASL'); + $inst->configure_saslauthd(); + + //* Configure PAM + swriteln('Configuring PAM'); + $inst->configure_pam(); + + //* Configure Courier + swriteln('Configuring Courier'); + $inst->configure_courier(); + } + + //* Configure Spamasassin + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + + //* Configure Amavis + swriteln('Configuring Amavisd'); + $inst->configure_amavis(); + + //* Configure Getmail + swriteln('Configuring Getmail'); + $inst->configure_getmail(); + + + //* Configure Pureftpd + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); + + //* Configure DNS + if($conf['powerdns']['installed'] == true) { + swriteln('Configuring PowerDNS'); + $inst->configure_powerdns(); + } elseif($conf['bind']['installed'] == true) { + swriteln('Configuring BIND'); + $inst->configure_bind(); + } else { + swriteln('Configuring MyDNS'); + $inst->configure_mydns(); + } + + //* Configure Apache + swriteln('Configuring Apache'); + $inst->configure_apache(); + + //** Configure Vlogger + swriteln('Configuring Vlogger'); + $inst->configure_vlogger(); + + //** Configure apps vhost + swriteln('Configuring Apps vhost'); + $inst->configure_apps_vhost(); + + //* Configure Firewall + swriteln('Configuring Firewall'); + $inst->configure_firewall(); + + //* Configure ISPConfig + swriteln('Installing ISPConfig'); + + //** Customize the port ISPConfig runs on + $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080'); + + $inst->install_ispconfig(); + + //* Configure DBServer + swriteln('Configuring DBServer'); + $inst->configure_dbserver(); + + //* Configure ISPConfig + swriteln('Installing ISPConfig crontab'); + $inst->install_crontab(); + + swriteln('Restarting services ...'); + if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart'); + if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); + if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); + if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); + if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); + if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); + if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); + if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); + if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); + if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); + if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); + if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); + if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); + if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); + if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); + if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); + if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); + +}else{ + + //* In expert mode, we select the services in the following steps, only db is always available + $conf['services']['mail'] = false; + $conf['services']['web'] = false; + $conf['services']['dns'] = false; + $conf['services']['db'] = true; + + + //** Get Server ID + // $conf['server_id'] = $inst->free_query('Unique Numeric ID of the server','1'); + // Server ID is an autoInc value of the mysql database now + + if(strtolower($inst->simple_query('Shall this server join an existing ISPConfig multiserver setup',array('y','n'),'n')) == 'y') { + $conf['mysql']['master_slave_setup'] = 'y'; + + //** Get MySQL root credentials + $finished = false; + do { + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + + //* Initialize the MySQL server connection + if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { + $conf['mysql']['master_host'] = $tmp_mysql_server_host; + $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user; + $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password; + $conf['mysql']['master_database'] = $tmp_mysql_server_database; + $finished = true; + } else { + swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); + } + } while ($finished == false); + unset($finished); + + // initialize the connection to the master database + $inst->dbmaster = new db(); + if($inst->dbmaster->linkId) $inst->dbmaster->closeConn(); + $inst->dbmaster->dbHost = $conf['mysql']["master_host"]; + $inst->dbmaster->dbName = $conf['mysql']["master_database"]; + $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"]; + $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"]; + + } else { + // the master DB is the same then the slave DB + $inst->dbmaster = $inst->db; + } + + //* Create the mysql database + $inst->configure_database(); + + //* Insert the Server record into the database + swriteln('Adding ISPConfig server record to database.'); + swriteln(''); + $inst->add_database_server_record(); + + + if(strtolower($inst->simple_query('Configure Mail', array('y','n') ,'y') ) == 'y') { + + $conf['services']['mail'] = true; + + //* Configure Postfix + swriteln('Configuring Postfix'); + $inst->configure_postfix(); + + //* Configure Mailman + swriteln('Configuring Mailman'); + $inst->configure_mailman(); + + if($conf['dovecot']['installed'] == true) { + //* Configure dovecot + swriteln('Configuring Dovecot'); + $inst->configure_dovecot(); + } else { + + //* Configure saslauthd + swriteln('Configuring SASL'); + $inst->configure_saslauthd(); + + //* Configure PAM + swriteln('Configuring PAM'); + $inst->configure_pam(); + + //* Configure courier + swriteln('Configuring Courier'); + $inst->configure_courier(); + } + + //* Configure Spamasassin + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + + //* Configure Amavis + swriteln('Configuring Amavisd'); + $inst->configure_amavis(); + + //* Configure Getmail + swriteln('Configuring Getmail'); + $inst->configure_getmail(); + + if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); + if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); + if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); + if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); + if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); + if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); + if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); + if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); + if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); + if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); + if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); + } + + //** Configure Jailkit + if(strtolower($inst->simple_query('Configure Jailkit', array('y','n'),'y') ) == 'y') { + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + } + + //** Configure Pureftpd + if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') { + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); + if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); + } + + //** Configure DNS + if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') { + $conf['services']['dns'] = true; + //* Configure DNS + if($conf['powerdns']['installed'] == true) { + swriteln('Configuring PowerDNS'); + $inst->configure_powerdns(); + if($conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); + } elseif($conf['bind']['installed'] == true) { + swriteln('Configuring BIND'); + $inst->configure_bind(); + if($conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); + } else { + swriteln('Configuring MyDNS'); + $inst->configure_mydns(); + if($conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); + } + + } + + //** Configure Apache + swriteln("\nHint: If this server shall run the ISPConfig interface, select 'y' in the 'Configure Apache Server' option.\n"); + if(strtolower($inst->simple_query('Configure Apache Server',array('y','n'),'y')) == 'y') { + $conf['services']['web'] = true; + swriteln('Configuring Apache'); + $inst->configure_apache(); + + //** Configure Vlogger + swriteln('Configuring Vlogger'); + $inst->configure_vlogger(); + + //** Configure apps vhost + swriteln('Configuring Apps vhost'); + $inst->configure_apps_vhost(); + } + + //** Configure Firewall + if(strtolower($inst->simple_query('Configure Firewall Server',array('y','n'),'y')) == 'y') { + swriteln('Configuring Firewall'); + $inst->configure_firewall(); + } + //** Configure ISPConfig :-) + if(strtolower($inst->simple_query('Install ISPConfig Web Interface',array('y','n'),'y')) == 'y') { + swriteln('Installing ISPConfig'); + + //** We want to check if the server is a module or cgi based php enabled server + //** TODO: Don't always ask for this somehow ? + /* + $fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no'); + + if($fast_cgi == 'yes') { + $alias = $inst->free_query('Script Alias', '/php/'); + $path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin'); + $conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path); + } else { + $conf['apache']['vhost_cgi_alias'] = ""; + } + */ + + //** Customise the port ISPConfig runs on + $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', '8080'); + + if(strtolower($inst->simple_query('Enable SSL for the ISPConfig web interface',array('y','n'),'y')) == 'y') { + $inst->make_ispconfig_ssl_cert(); + } + + $inst->install_ispconfig_interface = true; + + } else { + $inst->install_ispconfig_interface = false; + } + + $inst->install_ispconfig(); + + //* Configure DBServer + swriteln('Configuring DBServer'); + $inst->configure_dbserver(); + + //* Configure ISPConfig + swriteln('Installing ISPConfig crontab'); + $inst->install_crontab(); + if($conf['apache']['init_script'] != '' && @is_file($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); + + + +} //* << $install_mode / 'Standard' or Genius + + +echo "Installation completed.\n"; + + +?> diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index b941f45de7..2e74e2e7b9 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1,1788 +1,1788 @@ -<?php - -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh -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. -*/ - -class installer_base { - - var $wb = array(); - var $language = 'en'; - var $db; - public $conf; - public $install_ispconfig_interface = true; - public $is_update = false; // true if it is an update, falsi if it is a new install - - - public function __construct() { - global $conf; //TODO: maybe $conf should be passed to constructor - //$this->conf = $conf; - } - - //: TODO Implement the translation function and language files for the installer. - public function lng($text) { - return $text; - } - - public function error($msg) { - die('ERROR: '.$msg."\n"); - } - - public function warning($msg) { - echo('WARNING: '.$msg."\n"); - } - - public function simple_query($query, $answers, $default) { - $finished = false; - do { - $answers_str = implode(',', $answers); - swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); - $input = sread(); - - //* Stop the installation - if($input == 'quit') { - swriteln($this->lng("Installation terminated by user.\n")); - die(); - } - - //* Select the default - if($input == '') { - $answer = $default; - $finished = true; - } - - //* Set answer id valid - if(in_array($input, $answers)) { - $answer = $input; - $finished = true; - } - - } while ($finished == false); - swriteln(); - return $answer; - } - - public function free_query($query,$default) { - swrite($this->lng($query).' ['.$default.']: '); - $input = sread(); - - //* Stop the installation - if($input == 'quit') { - swriteln($this->lng("Installation terminated by user.\n")); - die(); - } - - $answer = ($input == '') ? $default : $input; - swriteln(); - return $answer; - } - - /* - // TODO: this function is not used atmo I think - pedro - function request_language(){ - - swriteln(lng('Enter your language')); - swriteln(lng('de, en')); - - } - */ - - //** Detect installed applications - public function find_installed_apps() { - global $conf; - - if(is_installed('mysql') || is_installed('mysqld')) $conf['mysql']['installed'] = true; - if(is_installed('postfix')) $conf['postfix']['installed'] = true; - if(is_installed('mailman')) $conf['mailman']['installed'] = true; - if(is_installed('apache') || is_installed('apache2') || is_installed('httpd')) $conf['apache']['installed'] = true; - if(is_installed('getmail')) $conf['getmail']['installed'] = true; +<?php + +/* +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh +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. +*/ + +class installer_base { + + var $wb = array(); + var $language = 'en'; + var $db; + public $conf; + public $install_ispconfig_interface = true; + public $is_update = false; // true if it is an update, falsi if it is a new install + + + public function __construct() { + global $conf; //TODO: maybe $conf should be passed to constructor + //$this->conf = $conf; + } + + //: TODO Implement the translation function and language files for the installer. + public function lng($text) { + return $text; + } + + public function error($msg) { + die('ERROR: '.$msg."\n"); + } + + public function warning($msg) { + echo('WARNING: '.$msg."\n"); + } + + public function simple_query($query, $answers, $default) { + $finished = false; + do { + $answers_str = implode(',', $answers); + swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); + $input = sread(); + + //* Stop the installation + if($input == 'quit') { + swriteln($this->lng("Installation terminated by user.\n")); + die(); + } + + //* Select the default + if($input == '') { + $answer = $default; + $finished = true; + } + + //* Set answer id valid + if(in_array($input, $answers)) { + $answer = $input; + $finished = true; + } + + } while ($finished == false); + swriteln(); + return $answer; + } + + public function free_query($query,$default) { + swrite($this->lng($query).' ['.$default.']: '); + $input = sread(); + + //* Stop the installation + if($input == 'quit') { + swriteln($this->lng("Installation terminated by user.\n")); + die(); + } + + $answer = ($input == '') ? $default : $input; + swriteln(); + return $answer; + } + + /* + // TODO: this function is not used atmo I think - pedro + function request_language(){ + + swriteln(lng('Enter your language')); + swriteln(lng('de, en')); + + } + */ + + //** Detect installed applications + public function find_installed_apps() { + global $conf; + + if(is_installed('mysql') || is_installed('mysqld')) $conf['mysql']['installed'] = true; + if(is_installed('postfix')) $conf['postfix']['installed'] = true; + if(is_installed('mailman')) $conf['mailman']['installed'] = true; + if(is_installed('apache') || is_installed('apache2') || is_installed('httpd')) $conf['apache']['installed'] = true; + if(is_installed('getmail')) $conf['getmail']['installed'] = true; if(is_installed('courierlogger')) $conf['courier']['installed'] = true; - if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; - if(is_installed('saslsauthd')) $conf['saslauthd']['installed'] = true; - if(is_installed('amavisd-new')) $conf['amavis']['installed'] = true; - if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; - if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; - if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; - if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true; - if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true; - if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true; - - } - - /** Create the database for ISPConfig */ - public function configure_database() { - global $conf; - - //** Create the database - if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['mysql']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) { - $this->error('Unable to create MySQL database: '.$conf['mysql']['database'].'.'); - } - - //* Set the database name in the DB library - $this->db->dbName = $conf['mysql']['database']; - - //* Load the database dump into the database, if database contains no tables - $db_tables = $this->db->getTables(); - if(count($db_tables) > 0) { - $this->error('Stopped: Database already contains some tables.'); - } else { - if($conf['mysql']['admin_password'] == '') { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); - } else { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); - } - $db_tables = $this->db->getTables(); - if(count($db_tables) == 0) { - $this->error('Unable to load SQL-Dump into database table.'); - } - - //* Load system.ini into the sys_ini table - $system_ini = $this->db->quote(rf('tpl/system.ini.master')); - $this->db->query("UPDATE sys_ini SET config = '$system_ini' WHERE sysini_id = 1"); - - } - } - - //** Create the server record in the database - public function add_database_server_record() { - - global $conf; - - if($conf['mysql']['host'] == 'localhost') { - $from_host = 'localhost'; - } else { - $from_host = $conf['hostname']; - } - - // Delete ISPConfig user in the local database, in case that it exists - $this->db->query("DELETE FROM mysql.user WHERE User = '".$conf['mysql']['ispconfig_user']."' AND Host = '".$from_host."';"); - $this->db->query("DELETE FROM mysql.db WHERE Db = '".$conf['mysql']['database']."' AND Host = '".$from_host."';"); - $this->db->query('FLUSH PRIVILEGES;'); - - //* Create the ISPConfig database user in the local database - $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['database'].".* " - ."TO '".$conf['mysql']['ispconfig_user']."'@'".$from_host."' " - ."IDENTIFIED BY '".$conf['mysql']['ispconfig_password']."';"; - if(!$this->db->query($query)) { - $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); - } - - //* Reload database privelages - $this->db->query('FLUSH PRIVILEGES;'); - - //* Set the database name in the DB library - $this->db->dbName = $conf['mysql']['database']; - - $tpl_ini_array = ini_to_array(rf('tpl/server.ini.master')); - - //* Update further distribution specific parameters for server config here - //* HINT: Every line added here has to be added in update.lib.php too!! - $tpl_ini_array['web']['vhost_conf_dir'] = $conf['apache']['vhost_conf_dir']; - $tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir']; - $tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs']; - $tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path']; - $tpl_ini_array['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path']; - $tpl_ini_array['server']['hostname'] = $conf['hostname']; - $tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']); - $tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir']; - $tpl_ini_array['web']['website_path'] = $conf['web']['website_path']; - $tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks']; - $tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir']; - $tpl_ini_array['web']['security_level'] = 20; - $tpl_ini_array['web']['user'] = $conf['apache']['user']; - $tpl_ini_array['web']['group'] = $conf['apache']['group']; - $tpl_ini_array['web']['php_ini_path_apache'] = $conf['apache']['php_ini_path_apache']; - $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; - $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; - $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; - $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; - $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; - $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; - $tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path']; - $tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path']; - - if (array_key_exists('awstats', $conf)) { - foreach ($conf['awstats'] as $aw_sett => $aw_value) { - $tpl_ini_array['web']['awstats_'.$aw_sett] = $aw_value; - } - } - - $server_ini_content = array_to_ini($tpl_ini_array); - $server_ini_content = mysql_real_escape_string($server_ini_content); - - $mail_server_enabled = ($conf['services']['mail'])?1:0; - $web_server_enabled = ($conf['services']['web'])?1:0; - $dns_server_enabled = ($conf['services']['dns'])?1:0; - $file_server_enabled = ($conf['services']['file'])?1:0; - $db_server_enabled = ($conf['services']['db'])?1:0; - $vserver_server_enabled = ($conf['services']['vserver'])?1:0; - - //** Get the database version number based on the patchfiles - $found = true; - $current_db_version = 1; - while($found == true) { - $next_db_version = intval($current_db_version + 1); - $patch_filename = realpath(dirname(__FILE__).'/../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql'; - if(is_file($patch_filename)) { - $current_db_version = $next_db_version; - } else { - $found = false; - } - } - $current_db_version = intval($current_db_version); - - - if($conf['mysql']['master_slave_setup'] == 'y') { - - //* Insert the server record in master DB - $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; - $this->dbmaster->query($sql); - $conf['server_id'] = $this->dbmaster->insertID(); - $conf['server_id'] = $conf['server_id']; - - //* Insert the same record in the local DB - $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES ('".$conf['server_id']."',1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; - $this->db->query($sql); - - //* username for the ispconfig user - $conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id']; - - $this->grant_master_database_rights(); - - } else { - //* Insert the server, if its not a mster / slave setup - $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; - $this->db->query($sql); - $conf['server_id'] = $this->db->insertID(); - $conf['server_id'] = $conf['server_id']; - } - - - } - - public function grant_master_database_rights() { - global $conf; - - /* - * The following code is a little bit tricky: - * * If we HAVE a master-slave - Setup then the client has to grant the rights for himself - * at the master. - * * If we DO NOT have a master-slave - Setup then we have two possibilities - * 1) it is a single server - * 2) it is the MASTER of n clients - */ - $hosts = array(); - - if($conf['mysql']['master_slave_setup'] == 'y') { - /* - * it is a master-slave - Setup so the slave has to grant its rights in the master - * database - */ - - //* insert the ispconfig user in the remote server - $from_host = $conf['hostname']; - $from_ip = gethostbyname($conf['hostname']); - - $hosts[$from_host]['user'] = $conf['mysql']['master_ispconfig_user']; - $hosts[$from_host]['db'] = $conf['mysql']['master_database']; - $hosts[$from_host]['pwd'] = $conf['mysql']['master_ispconfig_password']; - - $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; - $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; - $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; - } else{ - /* - * it is NOT a master-slave - Setup so we have to find out all clients and their - * host - */ - $query = "SELECT Host, User FROM mysql.user WHERE User like 'ispcsrv%' ORDER BY User, Host"; - $data = $this->dbmaster->queryAllRecords($query); - if($data === false) { - $this->error('Unable to get the user rights: '.$value['db'].' Error: '.$this->dbmaster->errorMessage); - } - foreach ($data as $item){ - $hosts[$item['Host']]['user'] = $item['User']; - $hosts[$item['Host']]['db'] = $conf['mysql']['master_database']; - $hosts[$item['Host']]['pwd'] = ''; // the user already exists, so we need no pwd! - } - } - - if(count($hosts) > 0) { - foreach($hosts as $host => $value) { - /* - * If a pwd exists, this means, we have to add the new user (and his pwd). - * if not, the user already exists and we do not need the pwd - */ - if ($value['pwd'] != ''){ - $query = "CREATE USER '".$value['user']."'@'".$host."' IDENTIFIED BY '" . $value['pwd'] . "'"; - $this->dbmaster->query($query); // ignore the error - } - - /* - * Try to delete all rights of the user in case that it exists. - * In Case that it will not exist, do nothing (ignore the error!) - */ - $query = "REVOKE ALL PRIVILEGES, GRANT OPTION FROM '".$value['user']."'@'".$host."' "; - $this->dbmaster->query($query); // ignore the error - - //* Create the ISPConfig database user in the remote database - $query = "GRANT SELECT ON ".$value['db'].".`server` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT ON ".$value['db'].".`sys_log` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $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."' "; - if(!$this->dbmaster->query($query)) { - $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'].".`software_update_inst` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $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(`updated`) ON ".$value['db'].".`server` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $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 (`ssl_request`, `ssl_cert`, `ssl_action`) ON ".$value['db'].".`web_domain` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT ON ".$value['db'].".`sys_group` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $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 (`action_state`, `response`) ON ".$value['db'].".`sys_remoteaction` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT , DELETE ON ".$value['db'].".`monitor_data` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, UPDATE ON ".$value['db'].".`mail_traffic` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, UPDATE ON ".$value['db'].".`web_traffic` TO '".$value['user']."'@'".$host."' "; - if(!$this->dbmaster->query($query)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - } - - /* - * It is all done. Relod the rights... - */ - $this->dbmaster->query('FLUSH PRIVILEGES;'); - } - - } - - //** writes postfix configuration files - public function process_postfix_config($configfile) { - global $conf; - - $config_dir = $conf['postfix']['config_dir'].'/'; - $full_file_name = $config_dir.$configfile; - //* Backup exiting file - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.$configfile.'~'); - } - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($full_file_name, $content); - } - - public function configure_jailkit() { - global $conf; - - $cf = $conf['jailkit']; - $config_dir = $cf['config_dir']; - $jk_init = $cf['jk_init']; - $jk_chrootsh = $cf['jk_chrootsh']; - - if (is_dir($config_dir)) { - if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~'); - if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~'); - - copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init); - copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); - } - - } - - public function configure_mailman($status = 'insert') { - global $conf; - - $config_dir = $conf['mailman']['config_dir'].'/'; - $full_file_name = $config_dir.'mm_cfg.py'; - //* Backup exiting file - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.'mm_cfg.py~'); - } - - // load files - $content = rf('tpl/mm_cfg.py.master'); - $old_file = rf($full_file_name); - - $old_options = array(); - $lines = explode("\n", $old_file); - foreach ($lines as $line) - { - if (strlen($line) && substr($line, 0, 1) != '#') - { - list($key, $value) = explode("=", $line); - if (!empty($value)) - { - $key = rtrim($key); - $old_options[$key] = trim($value); - } - } - } - - $virtual_domains = ''; - if($status == 'update') - { - // create virtual_domains list - $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); - - foreach($domainAll as $domain) - { - if ($domainAll[0]['domain'] == $domain['domain']) - $virtual_domains .= "'".$domain['domain']."'"; - else - $virtual_domains .= ", '".$domain['domain']."'"; - } - } - else - $virtual_domains = "' '"; - - $content = str_replace('{hostname}', $conf['hostname'], $content); - $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); - $content = str_replace('{virtual_domains}', $virtual_domains, $content); - - wf($full_file_name, $content); - } - - public function configure_postfix($options = '') { - global $conf; - $cf = $conf['postfix']; - $config_dir = $cf['config_dir']; - - if(!is_dir($config_dir)) { - $this->error("The postfix configuration directory '$config_dir' does not exist."); - } - - //* mysql-virtual_domains.cf - $this->process_postfix_config('mysql-virtual_domains.cf'); - - //* mysql-virtual_forwardings.cf - $this->process_postfix_config('mysql-virtual_forwardings.cf'); - - //* mysql-virtual_mailboxes.cf - $this->process_postfix_config('mysql-virtual_mailboxes.cf'); - - //* mysql-virtual_email2email.cf - $this->process_postfix_config('mysql-virtual_email2email.cf'); - - //* mysql-virtual_transports.cf - $this->process_postfix_config('mysql-virtual_transports.cf'); - - //* mysql-virtual_recipient.cf - $this->process_postfix_config('mysql-virtual_recipient.cf'); - - //* mysql-virtual_sender.cf - $this->process_postfix_config('mysql-virtual_sender.cf'); - - //* mysql-virtual_client.cf - $this->process_postfix_config('mysql-virtual_client.cf'); - - //* mysql-virtual_relaydomains.cf - $this->process_postfix_config('mysql-virtual_relaydomains.cf'); - - //* mysql-virtual_relayrecipientmaps.cf - $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - - //* Changing mode and group of the new created config files. - caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - - //* Creating virtual mail user and group - $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; - 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"); - - $postconf_commands = array ( - 'myhostname = '.$conf['hostname'], - 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', - 'mynetworks = 127.0.0.0/8 [::1]/128', - 'alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases', - 'alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases', - 'virtual_alias_domains =', - 'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, proxy:mysql:'.$config_dir.'/mysql-virtual_email2email.cf, hash:/var/lib/mailman/data/virtual-mailman', - 'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf', - 'virtual_mailbox_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_mailboxes.cf', - 'virtual_mailbox_base = '.$cf['vmail_mailbox_base'], - 'virtual_uid_maps = static:'.$cf['vmail_userid'], - 'virtual_gid_maps = static:'.$cf['vmail_groupid'], - 'smtpd_sasl_auth_enable = yes', - 'broken_sasl_auth_clients = yes', - 'smtpd_sasl_authenticated_header = yes', - 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:'.$config_dir.'/mysql-virtual_recipient.cf, reject_unauth_destination', - 'smtpd_use_tls = yes', - 'smtpd_tls_security_level = may', - 'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert', - 'smtpd_tls_key_file = '.$config_dir.'/smtpd.key', - 'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf', - 'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf', - 'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf', - 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps', - 'smtpd_sender_restrictions = check_sender_access mysql:'.$config_dir.'/mysql-virtual_sender.cf', - 'smtpd_client_restrictions = check_client_access mysql:'.$config_dir.'/mysql-virtual_client.cf', - 'maildrop_destination_concurrency_limit = 1', - 'maildrop_destination_recipient_limit = 1', - 'virtual_transport = maildrop', - 'header_checks = regexp:'.$config_dir.'/header_checks', - 'mime_header_checks = regexp:'.$config_dir.'/mime_header_checks', - 'nested_header_checks = regexp:'.$config_dir.'/nested_header_checks', - 'body_checks = regexp:'.$config_dir.'/body_checks', - 'owner_request_special = no' - ); - - //* Create the header and body check files - touch($config_dir.'/header_checks'); - touch($config_dir.'/mime_header_checks'); - touch($config_dir.'/nested_header_checks'); - touch($config_dir.'/body_checks'); - - //* Create the mailman files - exec('mkdir -p /var/lib/mailman/data'); - touch('/var/lib/mailman/data/aliases'); - exec('postmap /var/lib/mailman/data/aliases'); - touch('/var/lib/mailman/data/virtual-mailman'); - exec('postmap /var/lib/mailman/data/virtual-mailman'); - - //* Make a backup copy of the main.cf file - copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); - - //* Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - } - - if(!stristr($options,'dont-create-certs')) { - //* Create the SSL certificate - $command = 'cd '.$config_dir.'; ' + if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; + if(is_installed('saslsauthd')) $conf['saslauthd']['installed'] = true; + if(is_installed('amavisd-new')) $conf['amavis']['installed'] = true; + if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; + if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; + if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; + if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true; + if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true; + if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true; + + } + + /** Create the database for ISPConfig */ + public function configure_database() { + global $conf; + + //** Create the database + if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['mysql']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) { + $this->error('Unable to create MySQL database: '.$conf['mysql']['database'].'.'); + } + + //* Set the database name in the DB library + $this->db->dbName = $conf['mysql']['database']; + + //* Load the database dump into the database, if database contains no tables + $db_tables = $this->db->getTables(); + if(count($db_tables) > 0) { + $this->error('Stopped: Database already contains some tables.'); + } else { + if($conf['mysql']['admin_password'] == '') { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); + } else { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); + } + $db_tables = $this->db->getTables(); + if(count($db_tables) == 0) { + $this->error('Unable to load SQL-Dump into database table.'); + } + + //* Load system.ini into the sys_ini table + $system_ini = $this->db->quote(rf('tpl/system.ini.master')); + $this->db->query("UPDATE sys_ini SET config = '$system_ini' WHERE sysini_id = 1"); + + } + } + + //** Create the server record in the database + public function add_database_server_record() { + + global $conf; + + if($conf['mysql']['host'] == 'localhost') { + $from_host = 'localhost'; + } else { + $from_host = $conf['hostname']; + } + + // Delete ISPConfig user in the local database, in case that it exists + $this->db->query("DELETE FROM mysql.user WHERE User = '".$conf['mysql']['ispconfig_user']."' AND Host = '".$from_host."';"); + $this->db->query("DELETE FROM mysql.db WHERE Db = '".$conf['mysql']['database']."' AND Host = '".$from_host."';"); + $this->db->query('FLUSH PRIVILEGES;'); + + //* Create the ISPConfig database user in the local database + $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['database'].".* " + ."TO '".$conf['mysql']['ispconfig_user']."'@'".$from_host."' " + ."IDENTIFIED BY '".$conf['mysql']['ispconfig_password']."';"; + if(!$this->db->query($query)) { + $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); + } + + //* Reload database privelages + $this->db->query('FLUSH PRIVILEGES;'); + + //* Set the database name in the DB library + $this->db->dbName = $conf['mysql']['database']; + + $tpl_ini_array = ini_to_array(rf('tpl/server.ini.master')); + + //* Update further distribution specific parameters for server config here + //* HINT: Every line added here has to be added in update.lib.php too!! + $tpl_ini_array['web']['vhost_conf_dir'] = $conf['apache']['vhost_conf_dir']; + $tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir']; + $tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs']; + $tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path']; + $tpl_ini_array['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path']; + $tpl_ini_array['server']['hostname'] = $conf['hostname']; + $tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']); + $tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir']; + $tpl_ini_array['web']['website_path'] = $conf['web']['website_path']; + $tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks']; + $tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir']; + $tpl_ini_array['web']['security_level'] = 20; + $tpl_ini_array['web']['user'] = $conf['apache']['user']; + $tpl_ini_array['web']['group'] = $conf['apache']['group']; + $tpl_ini_array['web']['php_ini_path_apache'] = $conf['apache']['php_ini_path_apache']; + $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; + $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; + $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; + $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; + $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; + $tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path']; + $tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path']; + + if (array_key_exists('awstats', $conf)) { + foreach ($conf['awstats'] as $aw_sett => $aw_value) { + $tpl_ini_array['web']['awstats_'.$aw_sett] = $aw_value; + } + } + + $server_ini_content = array_to_ini($tpl_ini_array); + $server_ini_content = mysql_real_escape_string($server_ini_content); + + $mail_server_enabled = ($conf['services']['mail'])?1:0; + $web_server_enabled = ($conf['services']['web'])?1:0; + $dns_server_enabled = ($conf['services']['dns'])?1:0; + $file_server_enabled = ($conf['services']['file'])?1:0; + $db_server_enabled = ($conf['services']['db'])?1:0; + $vserver_server_enabled = ($conf['services']['vserver'])?1:0; + + //** Get the database version number based on the patchfiles + $found = true; + $current_db_version = 1; + while($found == true) { + $next_db_version = intval($current_db_version + 1); + $patch_filename = realpath(dirname(__FILE__).'/../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql'; + if(is_file($patch_filename)) { + $current_db_version = $next_db_version; + } else { + $found = false; + } + } + $current_db_version = intval($current_db_version); + + + if($conf['mysql']['master_slave_setup'] == 'y') { + + //* Insert the server record in master DB + $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; + $this->dbmaster->query($sql); + $conf['server_id'] = $this->dbmaster->insertID(); + $conf['server_id'] = $conf['server_id']; + + //* Insert the same record in the local DB + $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES ('".$conf['server_id']."',1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; + $this->db->query($sql); + + //* username for the ispconfig user + $conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id']; + + $this->grant_master_database_rights(); + + } else { + //* Insert the server, if its not a mster / slave setup + $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`) VALUES (1, 1, 'riud', 'riud', 'r', '".$conf['hostname']."', '$mail_server_enabled', '$web_server_enabled', '$dns_server_enabled', '$file_server_enabled', '$db_server_enabled', '$vserver_server_enabled', '$server_ini_content', 0, 1, $current_db_version);"; + $this->db->query($sql); + $conf['server_id'] = $this->db->insertID(); + $conf['server_id'] = $conf['server_id']; + } + + + } + + public function grant_master_database_rights() { + global $conf; + + /* + * The following code is a little bit tricky: + * * If we HAVE a master-slave - Setup then the client has to grant the rights for himself + * at the master. + * * If we DO NOT have a master-slave - Setup then we have two possibilities + * 1) it is a single server + * 2) it is the MASTER of n clients + */ + $hosts = array(); + + if($conf['mysql']['master_slave_setup'] == 'y') { + /* + * it is a master-slave - Setup so the slave has to grant its rights in the master + * database + */ + + //* insert the ispconfig user in the remote server + $from_host = $conf['hostname']; + $from_ip = gethostbyname($conf['hostname']); + + $hosts[$from_host]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$from_host]['db'] = $conf['mysql']['master_database']; + $hosts[$from_host]['pwd'] = $conf['mysql']['master_ispconfig_password']; + + $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; + $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; + } else{ + /* + * it is NOT a master-slave - Setup so we have to find out all clients and their + * host + */ + $query = "SELECT Host, User FROM mysql.user WHERE User like 'ispcsrv%' ORDER BY User, Host"; + $data = $this->dbmaster->queryAllRecords($query); + if($data === false) { + $this->error('Unable to get the user rights: '.$value['db'].' Error: '.$this->dbmaster->errorMessage); + } + foreach ($data as $item){ + $hosts[$item['Host']]['user'] = $item['User']; + $hosts[$item['Host']]['db'] = $conf['mysql']['master_database']; + $hosts[$item['Host']]['pwd'] = ''; // the user already exists, so we need no pwd! + } + } + + if(count($hosts) > 0) { + foreach($hosts as $host => $value) { + /* + * If a pwd exists, this means, we have to add the new user (and his pwd). + * if not, the user already exists and we do not need the pwd + */ + if ($value['pwd'] != ''){ + $query = "CREATE USER '".$value['user']."'@'".$host."' IDENTIFIED BY '" . $value['pwd'] . "'"; + $this->dbmaster->query($query); // ignore the error + } + + /* + * Try to delete all rights of the user in case that it exists. + * In Case that it will not exist, do nothing (ignore the error!) + */ + $query = "REVOKE ALL PRIVILEGES, GRANT OPTION FROM '".$value['user']."'@'".$host."' "; + $this->dbmaster->query($query); // ignore the error + + //* Create the ISPConfig database user in the remote database + $query = "GRANT SELECT ON ".$value['db'].".`server` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT ON ".$value['db'].".`sys_log` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $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."' "; + if(!$this->dbmaster->query($query)) { + $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'].".`software_update_inst` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $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(`updated`) ON ".$value['db'].".`server` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $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 (`ssl_request`, `ssl_cert`, `ssl_action`) ON ".$value['db'].".`web_domain` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT ON ".$value['db'].".`sys_group` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $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 (`action_state`, `response`) ON ".$value['db'].".`sys_remoteaction` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT , DELETE ON ".$value['db'].".`monitor_data` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, UPDATE ON ".$value['db'].".`mail_traffic` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, UPDATE ON ".$value['db'].".`web_traffic` TO '".$value['user']."'@'".$host."' "; + if(!$this->dbmaster->query($query)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + } + + /* + * It is all done. Relod the rights... + */ + $this->dbmaster->query('FLUSH PRIVILEGES;'); + } + + } + + //** writes postfix configuration files + public function process_postfix_config($configfile) { + global $conf; + + $config_dir = $conf['postfix']['config_dir'].'/'; + $full_file_name = $config_dir.$configfile; + //* Backup exiting file + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.$configfile.'~'); + } + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($full_file_name, $content); + } + + public function configure_jailkit() { + global $conf; + + $cf = $conf['jailkit']; + $config_dir = $cf['config_dir']; + $jk_init = $cf['jk_init']; + $jk_chrootsh = $cf['jk_chrootsh']; + + if (is_dir($config_dir)) { + if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~'); + if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~'); + + copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init); + copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); + } + + } + + public function configure_mailman($status = 'insert') { + global $conf; + + $config_dir = $conf['mailman']['config_dir'].'/'; + $full_file_name = $config_dir.'mm_cfg.py'; + //* Backup exiting file + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.'mm_cfg.py~'); + } + + // load files + $content = rf('tpl/mm_cfg.py.master'); + $old_file = rf($full_file_name); + + $old_options = array(); + $lines = explode("\n", $old_file); + foreach ($lines as $line) + { + if (strlen($line) && substr($line, 0, 1) != '#') + { + list($key, $value) = explode("=", $line); + if (!empty($value)) + { + $key = rtrim($key); + $old_options[$key] = trim($value); + } + } + } + + $virtual_domains = ''; + if($status == 'update') + { + // create virtual_domains list + $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); + + foreach($domainAll as $domain) + { + if ($domainAll[0]['domain'] == $domain['domain']) + $virtual_domains .= "'".$domain['domain']."'"; + else + $virtual_domains .= ", '".$domain['domain']."'"; + } + } + else + $virtual_domains = "' '"; + + $content = str_replace('{hostname}', $conf['hostname'], $content); + $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); + $content = str_replace('{virtual_domains}', $virtual_domains, $content); + + wf($full_file_name, $content); + } + + public function configure_postfix($options = '') { + global $conf; + $cf = $conf['postfix']; + $config_dir = $cf['config_dir']; + + if(!is_dir($config_dir)) { + $this->error("The postfix configuration directory '$config_dir' does not exist."); + } + + //* mysql-virtual_domains.cf + $this->process_postfix_config('mysql-virtual_domains.cf'); + + //* mysql-virtual_forwardings.cf + $this->process_postfix_config('mysql-virtual_forwardings.cf'); + + //* mysql-virtual_mailboxes.cf + $this->process_postfix_config('mysql-virtual_mailboxes.cf'); + + //* mysql-virtual_email2email.cf + $this->process_postfix_config('mysql-virtual_email2email.cf'); + + //* mysql-virtual_transports.cf + $this->process_postfix_config('mysql-virtual_transports.cf'); + + //* mysql-virtual_recipient.cf + $this->process_postfix_config('mysql-virtual_recipient.cf'); + + //* mysql-virtual_sender.cf + $this->process_postfix_config('mysql-virtual_sender.cf'); + + //* mysql-virtual_client.cf + $this->process_postfix_config('mysql-virtual_client.cf'); + + //* mysql-virtual_relaydomains.cf + $this->process_postfix_config('mysql-virtual_relaydomains.cf'); + + //* mysql-virtual_relayrecipientmaps.cf + $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); + + //* Changing mode and group of the new created config files. + caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', + __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); + caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', + __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); + + //* Creating virtual mail user and group + $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; + 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"); + + $postconf_commands = array ( + 'myhostname = '.$conf['hostname'], + 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', + 'mynetworks = 127.0.0.0/8 [::1]/128', + 'alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases', + 'alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases', + 'virtual_alias_domains =', + 'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, proxy:mysql:'.$config_dir.'/mysql-virtual_email2email.cf, hash:/var/lib/mailman/data/virtual-mailman', + 'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf', + 'virtual_mailbox_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_mailboxes.cf', + 'virtual_mailbox_base = '.$cf['vmail_mailbox_base'], + 'virtual_uid_maps = static:'.$cf['vmail_userid'], + 'virtual_gid_maps = static:'.$cf['vmail_groupid'], + 'smtpd_sasl_auth_enable = yes', + 'broken_sasl_auth_clients = yes', + 'smtpd_sasl_authenticated_header = yes', + 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:'.$config_dir.'/mysql-virtual_recipient.cf, reject_unauth_destination', + 'smtpd_use_tls = yes', + 'smtpd_tls_security_level = may', + 'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert', + 'smtpd_tls_key_file = '.$config_dir.'/smtpd.key', + 'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf', + 'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf', + 'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf', + 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps', + 'smtpd_sender_restrictions = check_sender_access mysql:'.$config_dir.'/mysql-virtual_sender.cf', + 'smtpd_client_restrictions = check_client_access mysql:'.$config_dir.'/mysql-virtual_client.cf', + 'maildrop_destination_concurrency_limit = 1', + 'maildrop_destination_recipient_limit = 1', + 'virtual_transport = maildrop', + 'header_checks = regexp:'.$config_dir.'/header_checks', + 'mime_header_checks = regexp:'.$config_dir.'/mime_header_checks', + 'nested_header_checks = regexp:'.$config_dir.'/nested_header_checks', + 'body_checks = regexp:'.$config_dir.'/body_checks', + 'owner_request_special = no' + ); + + //* Create the header and body check files + touch($config_dir.'/header_checks'); + touch($config_dir.'/mime_header_checks'); + touch($config_dir.'/nested_header_checks'); + touch($config_dir.'/body_checks'); + + //* Create the mailman files + exec('mkdir -p /var/lib/mailman/data'); + touch('/var/lib/mailman/data/aliases'); + exec('postmap /var/lib/mailman/data/aliases'); + touch('/var/lib/mailman/data/virtual-mailman'); + exec('postmap /var/lib/mailman/data/virtual-mailman'); + + //* Make a backup copy of the main.cf file + copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); + + //* Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + } + + if(!stristr($options,'dont-create-certs')) { + //* Create the SSL certificate + $command = 'cd '.$config_dir.'; ' .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; - exec($command); - - $command = 'chmod o= '.$config_dir.'/smtpd.key'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - } - - //** We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. - $command = 'chmod 755 /var/run/courier/authdaemon/'; - if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - - //* Changing maildrop lines in posfix master.cf - if(is_file($config_dir.'/master.cf')) { - copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); - } - if(is_file($config_dir.'/master.cf~')) { - chmod($config_dir.'/master.cf~', 0400); - } - $configfile = $config_dir.'/master.cf'; - $content = rf($configfile); - $content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', - 'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', - $content); - wf($configfile, $content); - - //* Writing the Maildrop mailfilter file - $configfile = 'mailfilter'; - if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)) { - copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~'); - } - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content); - wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content); - - //* Create the directory for the custom mailfilters - if(!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) { - $command = 'mkdir '.$cf['vmail_mailbox_base'].'/mailfilters'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* Chmod and chown the .mailfilter file - $command = 'chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'chmod -R 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - } - - public function configure_saslauthd() { - global $conf; - - - $configfile = 'sasl_smtpd.conf'; - if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$conf['postfix']['config_dir'].'/sasl/smtpd.conf~'); - if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content); - wf($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$content); - - // TODO: Chmod and chown on the config file - - - // Recursively create the spool directory - if(!@is_dir('/var/spool/postfix/var/run/saslauthd')) mkdir('/var/spool/postfix/var/run/saslauthd', 0755, true); - - // Edit the file /etc/default/saslauthd - $configfile = $conf['saslauthd']['config']; - if(is_file($configfile)) copy($configfile,$configfile.'~'); - if(is_file($configfile.'~')) chmod($configfile.'~', 0400); - $content = rf($configfile); - $content = str_replace('START=no','START=yes',$content); - // Debian - $content = str_replace('OPTIONS="-c"','OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"',$content); - // Ubuntu - $content = str_replace('OPTIONS="-c -m /var/run/saslauthd"','OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"',$content); - wf($configfile,$content); - - // Edit the file /etc/init.d/saslauthd - $configfile = $conf['init_scripts'].'/'.$conf['saslauthd']['init_script']; - $content = rf($configfile); - $content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid','PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"',$content); - wf($configfile,$content); - - // add the postfix user to the sasl group (at least necessary for Ubuntu 8.04 and most likely Debian Lenny as well. - exec('adduser postfix sasl'); - - - } - - public function configure_pam() { - global $conf; - $pam = $conf['pam']; - //* configure pam for SMTP authentication agains the ispconfig database - $configfile = 'pamd_smtp'; - if(is_file($pam.'/smtp')) copy($pam.'/smtp', $pam.'/smtp~'); - if(is_file($pam.'/smtp~')) chmod($pam.'/smtp~', 0400); - - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - wf($pam.'/smtp', $content); - // On some OSes smtp is world readable which allows for reading database information. Removing world readable rights should have no effect. - if(is_file($pam.'/smtp')) exec("chmod o= $pam/smtp"); - chmod($pam.'/smtp', 0660); - chown($pam.'/smtp', 'daemon'); - chgrp($pam.'/smtp', 'daemon'); - - } - - public function configure_courier() { - global $conf; - $config_dir = $conf['courier']['config_dir']; - //* authmysqlrc - $configfile = 'authmysqlrc'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - chmod($config_dir.'/'.$configfile.'~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); - wf($config_dir.'/'.$configfile, $content); - - chmod($config_dir.'/'.$configfile, 0660); - chown($config_dir.'/'.$configfile, 'daemon'); - chgrp($config_dir.'/'.$configfile, 'daemon'); - - //* authdaemonrc - $configfile = $config_dir.'/authdaemonrc'; - if(is_file($configfile)) { - copy($configfile, $configfile.'~'); - } - if(is_file($configfile.'~')) { - chmod($configfile.'~', 0400); - } - $content = rf($configfile); - $content = str_replace('authmodulelist="authpam"', 'authmodulelist="authmysql"', $content); - wf($configfile, $content); - } - - public function configure_dovecot() { - global $conf; - - $config_dir = $conf['dovecot']['config_dir']; - - //* Configure master.cf and add a line for deliver - if(is_file($conf['postfix']['config_dir'].'/master.cf')) { - copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~2'); - } - if(is_file($conf['postfix']['config_dir'].'/master.cf~')) { - chmod($conf['postfix']['config_dir'].'/master.cf~2', 0400); - } - $content = rf($conf['postfix']['config_dir'].'/master.cf'); - // Only add the content if we had not addded it before - if(!stristr($content,'dovecot/deliver')) { - $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'; - af($conf['postfix']['config_dir'].'/master.cf',$deliver_content); - } - unset($content); - unset($deliver_content); - - - //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration - $postconf_commands = array ( - 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = dovecot', - 'smtpd_sasl_type = dovecot', - 'smtpd_sasl_path = private/auth' - ); - - // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf',$conf['postfix']['config_dir'].'/main.cf~3'); - - // Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* copy dovecot.conf - $configfile = 'dovecot.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile); - - //* dovecot-sql.conf - $configfile = 'dovecot-sql.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - chmod($config_dir.'/'.$configfile.'~', 0400); - $content = rf('tpl/debian_dovecot-sql.conf.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); - wf($config_dir.'/'.$configfile, $content); - - chmod($config_dir.'/'.$configfile, 0600); - chown($config_dir.'/'.$configfile, 'root'); - chgrp($config_dir.'/'.$configfile, 'root'); - - } - - public function configure_amavis() { - global $conf; - - // amavisd user config file - $configfile = 'amavisd_user_config'; - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) copy($conf['amavis']['config_dir'].'/conf.d/50-user',$conf['amavis']['config_dir'].'/50-user~'); - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user~')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_port}',$conf['mysql']['port'],$content); - $content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content); - wf($conf['amavis']['config_dir'].'/conf.d/50-user',$content); - - // TODO: chmod and chown on the config file - - - // Adding the amavisd commands to the postfix configuration - $postconf_commands = array ( - 'content_filter = amavis:[127.0.0.1]:10024', - 'receive_override_options = no_address_mappings' - ); - - // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf',$conf['postfix']['config_dir'].'/main.cf~2'); - - // Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - // Append the configuration for amavisd to the master.cf file - if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf',$conf['postfix']['config_dir'].'/master.cf~'); - $content = rf($conf['postfix']['config_dir'].'/master.cf'); - // Only add the content if we had not addded it before - if(!stristr($content,'127.0.0.1:10025')) { - unset($content); - $content = rf('tpl/master_cf_amavis.master'); - af($conf['postfix']['config_dir'].'/master.cf',$content); - } - unset($content); - - // Add the clamav user to the amavis group - exec('adduser clamav amavis'); - - - } - - public function configure_spamassassin() { - global $conf; - - //* Enable spamasasssin on debian and ubuntu - $configfile = '/etc/default/spamassassin'; - if(is_file($configfile)) { - copy($configfile, $configfile.'~'); - } - $content = rf($configfile); - $content = str_replace('ENABLED=0', 'ENABLED=1', $content); - wf($configfile, $content); - } - - public function configure_getmail() { - global $conf; - - $config_dir = $conf['getmail']['config_dir']; - - if(!@is_dir($config_dir)) mkdir(escapeshellcmd($config_dir), 0700, true); - - $command = 'useradd -d '.$config_dir.' getmail'; - if(!is_user('getmail')) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = "chown -R getmail $config_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = "chmod -R 700 $config_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - - public function configure_pureftpd() { - global $conf; - - $config_dir = $conf['pureftpd']['config_dir']; - - //* configure pure-ftpd for MySQL authentication against the ispconfig database - $configfile = 'db/mysql.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - if(is_file($config_dir.'/'.$configfile.'~')) { - chmod($config_dir.'/'.$configfile.'~', 0400); - } - $content = rf('tpl/pureftpd_mysql.conf.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($config_dir.'/'.$configfile, $content); - chmod($config_dir.'/'.$configfile, 0600); - chown($config_dir.'/'.$configfile, 'root'); - chgrp($config_dir.'/'.$configfile, 'root'); - // **enable chrooting - //exec('mkdir -p '.$config_dir.'/conf/ChrootEveryone'); - exec('echo "yes" > '.$config_dir.'/conf/ChrootEveryone'); - exec('echo "yes" > '.$config_dir.'/conf/BrokenClientsCompatibility'); - exec('echo "yes" > '.$config_dir.'/conf/DisplayDotFiles'); - - if(is_file('/etc/default/pure-ftpd-common')) { - replaceLine('/etc/default/pure-ftpd-common','STANDALONE_OR_INETD=inetd','STANDALONE_OR_INETD=standalone',1,0); - replaceLine('/etc/default/pure-ftpd-common','VIRTUALCHROOT=false','VIRTUALCHROOT=true',1,0); - } - - if(is_file('/etc/inetd.conf')) { - replaceLine('/etc/inetd.conf','/usr/sbin/pure-ftpd-wrapper','#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper',0,0); - if(is_file($conf['init_scripts'].'/'.'openbsd-inetd')) exec($conf['init_scripts'].'/'.'openbsd-inetd restart'); - } - - if(!is_file('/etc/pure-ftpd/conf/DontResolve')) exec('echo "yes" > /etc/pure-ftpd/conf/DontResolve'); - } - - public function configure_mydns() { - global $conf; - - // configure pam for SMTP authentication agains the ispconfig database - $configfile = 'mydns.conf'; - if(is_file($conf['mydns']['config_dir'].'/'.$configfile)) copy($conf['mydns']['config_dir'].'/'.$configfile,$conf['mydns']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['mydns']['config_dir'].'/'.$configfile.'~')) chmod($conf['mydns']['config_dir'].'/'.$configfile.'~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); - $content = str_replace('{server_id}',$conf['server_id'],$content); - wf($conf['mydns']['config_dir'].'/'.$configfile,$content); - chmod($conf['mydns']['config_dir'].'/'.$configfile, 0600); - chown($conf['mydns']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['mydns']['config_dir'].'/'.$configfile, 'root'); - - } - - public function configure_powerdns() { - global $conf; - - //* Create the database - if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['powerdns']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) { - $this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.'); - } - - //* Create the ISPConfig database user in the local database - $query = "GRANT ALL ON `".$conf['powerdns']['database']."` . * TO '".$conf['mysql']['ispconfig_user']."'@'localhost';"; - if(!$this->db->query($query)) { - $this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage); - } - - //* Reload database privelages - $this->db->query('FLUSH PRIVILEGES;'); - - //* load the powerdns databse dump - if($conf['mysql']['admin_password'] == '') { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); - } else { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); - } - - //* Create the powerdns config file - $configfile = 'pdns.local'; - if(is_file($conf['powerdns']['config_dir'].'/'.$configfile)) copy($conf['powerdns']['config_dir'].'/'.$configfile,$conf['powerdns']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['powerdns']['config_dir'].'/'.$configfile.'~')) chmod($conf['powerdns']['config_dir'].'/'.$configfile.'~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{powerdns_database}',$conf['powerdns']['database'],$content); - $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); - wf($conf['powerdns']['config_dir'].'/'.$configfile,$content); - chmod($conf['powerdns']['config_dir'].'/'.$configfile, 0600); - chown($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); - - - } - - public function configure_bind() { - global $conf; - - //* Check if the zonefile directory has a slash at the end - $content=$conf['bind']['bind_zonefiles_dir']; - if(substr($content,-1,1) != '/') { - $content .= '/'; - } - - //* Create the slave subdirectory - $content .= 'slave'; - if(!@is_dir($content)) mkdir($content, 0770, true); - - //* Chown the slave subdirectory to $conf['bind']['bind_user'] - chown($content, $conf['bind']['bind_user']); - chgrp($content, $conf['bind']['bind_group']); - - } - - - - public function configure_apache() { - global $conf; - - //* Create the logging directory for the vhost logfiles - if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); - - if(is_file('/etc/suphp/suphp.conf')) { - replaceLine('/etc/suphp/suphp.conf','php=php:/usr/bin','x-httpd-suphp="php:/usr/bin/php-cgi"',0); - //replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0); - replaceLine('/etc/suphp/suphp.conf','umask=0077','umask=0022',0); - } - - if(is_file('/etc/apache2/sites-enabled/000-default')) { - replaceLine('/etc/apache2/sites-available/000-default','NameVirtualHost *','NameVirtualHost *:80',1,0); - replaceLine('/etc/apache2/sites-available/000-default','<VirtualHost *>','<VirtualHost *:80>',1,0); - } - - if(is_file('/etc/apache2/ports.conf')) { - // add a line "Listen 443" to ports conf if line does not exist - replaceLine('/etc/apache2/ports.conf','Listen 443','Listen 443',1); - } - - - //* Copy the ISPConfig configuration include - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - - // copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf'); - - $content = rf('tpl/apache_ispconfig.conf.master'); - $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'"); - if(is_array($records) && count($records) > 0) { - foreach($records as $rec) { - $content .= 'NameVirtualHost '.$rec['ip_address'].":80\n"; - $content .= 'NameVirtualHost '.$rec['ip_address'].":443\n"; - } - } - $content .= "\n"; - wf($vhost_conf_dir.'/ispconfig.conf',$content); - - if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) { - symlink($vhost_conf_dir.'/ispconfig.conf',$vhost_conf_enabled_dir.'/000-ispconfig.conf'); - } - - //* make sure that webalizer finds its config file when it is directly in /etc - if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { - mkdir('/etc/webalizer'); - symlink('/etc/webalizer.conf','/etc/webalizer/webalizer.conf'); - } - - if(is_file('/etc/webalizer/webalizer.conf')) { - // Change webalizer mode to incremental - replaceLine('/etc/webalizer/webalizer.conf','#IncrementalName','IncrementalName webalizer.current',0,0); - replaceLine('/etc/webalizer/webalizer.conf','#Incremental','Incremental yes',0,0); - replaceLine('/etc/webalizer/webalizer.conf','#HistoryName','HistoryName webalizer.hist',0,0); - } - - // Check the awsatst script - if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); - if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl','/usr/share/awstats/tools/awstats_buildstaticpages.pl'); + exec($command); + + $command = 'chmod o= '.$config_dir.'/smtpd.key'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + } + + //** We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. + $command = 'chmod 755 /var/run/courier/authdaemon/'; + if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + + //* Changing maildrop lines in posfix master.cf + if(is_file($config_dir.'/master.cf')) { + copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); + } + if(is_file($config_dir.'/master.cf~')) { + chmod($config_dir.'/master.cf~', 0400); + } + $configfile = $config_dir.'/master.cf'; + $content = rf($configfile); + $content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', + 'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', + $content); + wf($configfile, $content); + + //* Writing the Maildrop mailfilter file + $configfile = 'mailfilter'; + if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)) { + copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~'); + } + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content); + wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content); + + //* Create the directory for the custom mailfilters + if(!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) { + $command = 'mkdir '.$cf['vmail_mailbox_base'].'/mailfilters'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* Chmod and chown the .mailfilter file + $command = 'chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'chmod -R 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + } + + public function configure_saslauthd() { + global $conf; + + + $configfile = 'sasl_smtpd.conf'; + if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$conf['postfix']['config_dir'].'/sasl/smtpd.conf~'); + if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content); + wf($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$content); + + // TODO: Chmod and chown on the config file + + + // Recursively create the spool directory + if(!@is_dir('/var/spool/postfix/var/run/saslauthd')) mkdir('/var/spool/postfix/var/run/saslauthd', 0755, true); + + // Edit the file /etc/default/saslauthd + $configfile = $conf['saslauthd']['config']; + if(is_file($configfile)) copy($configfile,$configfile.'~'); + if(is_file($configfile.'~')) chmod($configfile.'~', 0400); + $content = rf($configfile); + $content = str_replace('START=no','START=yes',$content); + // Debian + $content = str_replace('OPTIONS="-c"','OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"',$content); + // Ubuntu + $content = str_replace('OPTIONS="-c -m /var/run/saslauthd"','OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"',$content); + wf($configfile,$content); + + // Edit the file /etc/init.d/saslauthd + $configfile = $conf['init_scripts'].'/'.$conf['saslauthd']['init_script']; + $content = rf($configfile); + $content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid','PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"',$content); + wf($configfile,$content); + + // add the postfix user to the sasl group (at least necessary for Ubuntu 8.04 and most likely Debian Lenny as well. + exec('adduser postfix sasl'); + + + } + + public function configure_pam() { + global $conf; + $pam = $conf['pam']; + //* configure pam for SMTP authentication agains the ispconfig database + $configfile = 'pamd_smtp'; + if(is_file($pam.'/smtp')) copy($pam.'/smtp', $pam.'/smtp~'); + if(is_file($pam.'/smtp~')) chmod($pam.'/smtp~', 0400); + + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + wf($pam.'/smtp', $content); + // On some OSes smtp is world readable which allows for reading database information. Removing world readable rights should have no effect. + if(is_file($pam.'/smtp')) exec("chmod o= $pam/smtp"); + chmod($pam.'/smtp', 0660); + chown($pam.'/smtp', 'daemon'); + chgrp($pam.'/smtp', 'daemon'); + + } + + public function configure_courier() { + global $conf; + $config_dir = $conf['courier']['config_dir']; + //* authmysqlrc + $configfile = 'authmysqlrc'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + chmod($config_dir.'/'.$configfile.'~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); + wf($config_dir.'/'.$configfile, $content); + + chmod($config_dir.'/'.$configfile, 0660); + chown($config_dir.'/'.$configfile, 'daemon'); + chgrp($config_dir.'/'.$configfile, 'daemon'); + + //* authdaemonrc + $configfile = $config_dir.'/authdaemonrc'; + if(is_file($configfile)) { + copy($configfile, $configfile.'~'); + } + if(is_file($configfile.'~')) { + chmod($configfile.'~', 0400); + } + $content = rf($configfile); + $content = str_replace('authmodulelist="authpam"', 'authmodulelist="authmysql"', $content); + wf($configfile, $content); + } + + public function configure_dovecot() { + global $conf; + + $config_dir = $conf['dovecot']['config_dir']; + + //* Configure master.cf and add a line for deliver + if(is_file($conf['postfix']['config_dir'].'/master.cf')) { + copy($conf['postfix']['config_dir'].'/master.cf', $conf['postfix']['config_dir'].'/master.cf~2'); + } + if(is_file($conf['postfix']['config_dir'].'/master.cf~')) { + chmod($conf['postfix']['config_dir'].'/master.cf~2', 0400); + } + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + // Only add the content if we had not addded it before + if(!stristr($content,'dovecot/deliver')) { + $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'; + af($conf['postfix']['config_dir'].'/master.cf',$deliver_content); + } + unset($content); + unset($deliver_content); + + + //* Reconfigure postfix to use dovecot authentication + // Adding the amavisd commands to the postfix configuration + $postconf_commands = array ( + 'dovecot_destination_recipient_limit = 1', + 'virtual_transport = dovecot', + 'smtpd_sasl_type = dovecot', + 'smtpd_sasl_path = private/auth' + ); + + // Make a backup copy of the main.cf file + copy($conf['postfix']['config_dir'].'/main.cf',$conf['postfix']['config_dir'].'/main.cf~3'); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* copy dovecot.conf + $configfile = 'dovecot.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile); + + //* dovecot-sql.conf + $configfile = 'dovecot-sql.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + chmod($config_dir.'/'.$configfile.'~', 0400); + $content = rf('tpl/debian_dovecot-sql.conf.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); + wf($config_dir.'/'.$configfile, $content); + + chmod($config_dir.'/'.$configfile, 0600); + chown($config_dir.'/'.$configfile, 'root'); + chgrp($config_dir.'/'.$configfile, 'root'); + + } + + public function configure_amavis() { + global $conf; + + // amavisd user config file + $configfile = 'amavisd_user_config'; + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) copy($conf['amavis']['config_dir'].'/conf.d/50-user',$conf['amavis']['config_dir'].'/50-user~'); + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user~')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_port}',$conf['mysql']['port'],$content); + $content = str_replace('{mysql_server_ip}',$conf['mysql']['ip'],$content); + wf($conf['amavis']['config_dir'].'/conf.d/50-user',$content); + + // TODO: chmod and chown on the config file + + + // Adding the amavisd commands to the postfix configuration + $postconf_commands = array ( + 'content_filter = amavis:[127.0.0.1]:10024', + 'receive_override_options = no_address_mappings' + ); + + // Make a backup copy of the main.cf file + copy($conf['postfix']['config_dir'].'/main.cf',$conf['postfix']['config_dir'].'/main.cf~2'); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + // Append the configuration for amavisd to the master.cf file + if(is_file($conf['postfix']['config_dir'].'/master.cf')) copy($conf['postfix']['config_dir'].'/master.cf',$conf['postfix']['config_dir'].'/master.cf~'); + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + // Only add the content if we had not addded it before + if(!stristr($content,'127.0.0.1:10025')) { + unset($content); + $content = rf('tpl/master_cf_amavis.master'); + af($conf['postfix']['config_dir'].'/master.cf',$content); + } + unset($content); + + // Add the clamav user to the amavis group + exec('adduser clamav amavis'); + + + } + + public function configure_spamassassin() { + global $conf; + + //* Enable spamasasssin on debian and ubuntu + $configfile = '/etc/default/spamassassin'; + if(is_file($configfile)) { + copy($configfile, $configfile.'~'); + } + $content = rf($configfile); + $content = str_replace('ENABLED=0', 'ENABLED=1', $content); + wf($configfile, $content); + } + + public function configure_getmail() { + global $conf; + + $config_dir = $conf['getmail']['config_dir']; + + if(!@is_dir($config_dir)) mkdir(escapeshellcmd($config_dir), 0700, true); + + $command = 'useradd -d '.$config_dir.' getmail'; + if(!is_user('getmail')) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = "chown -R getmail $config_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = "chmod -R 700 $config_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + + public function configure_pureftpd() { + global $conf; + + $config_dir = $conf['pureftpd']['config_dir']; + + //* configure pure-ftpd for MySQL authentication against the ispconfig database + $configfile = 'db/mysql.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + if(is_file($config_dir.'/'.$configfile.'~')) { + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rf('tpl/pureftpd_mysql.conf.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($config_dir.'/'.$configfile, $content); + chmod($config_dir.'/'.$configfile, 0600); + chown($config_dir.'/'.$configfile, 'root'); + chgrp($config_dir.'/'.$configfile, 'root'); + // **enable chrooting + //exec('mkdir -p '.$config_dir.'/conf/ChrootEveryone'); + exec('echo "yes" > '.$config_dir.'/conf/ChrootEveryone'); + exec('echo "yes" > '.$config_dir.'/conf/BrokenClientsCompatibility'); + exec('echo "yes" > '.$config_dir.'/conf/DisplayDotFiles'); + + if(is_file('/etc/default/pure-ftpd-common')) { + replaceLine('/etc/default/pure-ftpd-common','STANDALONE_OR_INETD=inetd','STANDALONE_OR_INETD=standalone',1,0); + replaceLine('/etc/default/pure-ftpd-common','VIRTUALCHROOT=false','VIRTUALCHROOT=true',1,0); + } + + if(is_file('/etc/inetd.conf')) { + replaceLine('/etc/inetd.conf','/usr/sbin/pure-ftpd-wrapper','#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper',0,0); + if(is_file($conf['init_scripts'].'/'.'openbsd-inetd')) exec($conf['init_scripts'].'/'.'openbsd-inetd restart'); + } + + if(!is_file('/etc/pure-ftpd/conf/DontResolve')) exec('echo "yes" > /etc/pure-ftpd/conf/DontResolve'); + } + + public function configure_mydns() { + global $conf; + + // configure pam for SMTP authentication agains the ispconfig database + $configfile = 'mydns.conf'; + if(is_file($conf['mydns']['config_dir'].'/'.$configfile)) copy($conf['mydns']['config_dir'].'/'.$configfile,$conf['mydns']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['mydns']['config_dir'].'/'.$configfile.'~')) chmod($conf['mydns']['config_dir'].'/'.$configfile.'~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); + $content = str_replace('{server_id}',$conf['server_id'],$content); + wf($conf['mydns']['config_dir'].'/'.$configfile,$content); + chmod($conf['mydns']['config_dir'].'/'.$configfile, 0600); + chown($conf['mydns']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['mydns']['config_dir'].'/'.$configfile, 'root'); + + } + + public function configure_powerdns() { + global $conf; + + //* Create the database + if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['powerdns']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) { + $this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.'); + } + + //* Create the ISPConfig database user in the local database + $query = "GRANT ALL ON `".$conf['powerdns']['database']."` . * TO '".$conf['mysql']['ispconfig_user']."'@'localhost';"; + if(!$this->db->query($query)) { + $this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage); + } + + //* Reload database privelages + $this->db->query('FLUSH PRIVILEGES;'); + + //* load the powerdns databse dump + if($conf['mysql']['admin_password'] == '') { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); + } else { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); + } + + //* Create the powerdns config file + $configfile = 'pdns.local'; + if(is_file($conf['powerdns']['config_dir'].'/'.$configfile)) copy($conf['powerdns']['config_dir'].'/'.$configfile,$conf['powerdns']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['powerdns']['config_dir'].'/'.$configfile.'~')) chmod($conf['powerdns']['config_dir'].'/'.$configfile.'~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{powerdns_database}',$conf['powerdns']['database'],$content); + $content = str_replace('{mysql_server_host}',$conf['mysql']['host'],$content); + wf($conf['powerdns']['config_dir'].'/'.$configfile,$content); + chmod($conf['powerdns']['config_dir'].'/'.$configfile, 0600); + chown($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); + + + } + + public function configure_bind() { + global $conf; + + //* Check if the zonefile directory has a slash at the end + $content=$conf['bind']['bind_zonefiles_dir']; + if(substr($content,-1,1) != '/') { + $content .= '/'; + } + + //* Create the slave subdirectory + $content .= 'slave'; + if(!@is_dir($content)) mkdir($content, 0770, true); + + //* Chown the slave subdirectory to $conf['bind']['bind_user'] + chown($content, $conf['bind']['bind_user']); + chgrp($content, $conf['bind']['bind_group']); + + } + + + + public function configure_apache() { + global $conf; + + //* Create the logging directory for the vhost logfiles + if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); + + if(is_file('/etc/suphp/suphp.conf')) { + replaceLine('/etc/suphp/suphp.conf','php=php:/usr/bin','x-httpd-suphp="php:/usr/bin/php-cgi"',0); + //replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0); + replaceLine('/etc/suphp/suphp.conf','umask=0077','umask=0022',0); + } + + if(is_file('/etc/apache2/sites-enabled/000-default')) { + replaceLine('/etc/apache2/sites-available/000-default','NameVirtualHost *','NameVirtualHost *:80',1,0); + replaceLine('/etc/apache2/sites-available/000-default','<VirtualHost *>','<VirtualHost *:80>',1,0); + } + + if(is_file('/etc/apache2/ports.conf')) { + // add a line "Listen 443" to ports conf if line does not exist + replaceLine('/etc/apache2/ports.conf','Listen 443','Listen 443',1); + } + + + //* Copy the ISPConfig configuration include + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + + // copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf'); + + $content = rf('tpl/apache_ispconfig.conf.master'); + $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'"); + if(is_array($records) && count($records) > 0) { + foreach($records as $rec) { + $content .= 'NameVirtualHost '.$rec['ip_address'].":80\n"; + $content .= 'NameVirtualHost '.$rec['ip_address'].":443\n"; + } + } + $content .= "\n"; + wf($vhost_conf_dir.'/ispconfig.conf',$content); + + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) { + symlink($vhost_conf_dir.'/ispconfig.conf',$vhost_conf_enabled_dir.'/000-ispconfig.conf'); + } + + //* make sure that webalizer finds its config file when it is directly in /etc + if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { + mkdir('/etc/webalizer'); + symlink('/etc/webalizer.conf','/etc/webalizer/webalizer.conf'); + } + + if(is_file('/etc/webalizer/webalizer.conf')) { + // Change webalizer mode to incremental + replaceLine('/etc/webalizer/webalizer.conf','#IncrementalName','IncrementalName webalizer.current',0,0); + replaceLine('/etc/webalizer/webalizer.conf','#Incremental','Incremental yes',0,0); + replaceLine('/etc/webalizer/webalizer.conf','#HistoryName','HistoryName webalizer.hist',0,0); + } + + // Check the awsatst script + if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); + if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl','/usr/share/awstats/tools/awstats_buildstaticpages.pl'); if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local','LogFormat=4','LogFormat=1',0,1); - //* add a sshusers group - $command = 'groupadd sshusers'; - if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - } - - public function configure_firewall() { - global $conf; - - $dist_init_scripts = $conf['init_scripts']; - - if(is_dir('/etc/Bastille.backup')) caselog('rm -rf /etc/Bastille.backup', __FILE__, __LINE__); - if(is_dir('/etc/Bastille')) caselog('mv -f /etc/Bastille /etc/Bastille.backup', __FILE__, __LINE__); - @mkdir('/etc/Bastille', 0700); - if(is_dir('/etc/Bastille.backup/firewall.d')) caselog('cp -pfr /etc/Bastille.backup/firewall.d /etc/Bastille/', __FILE__, __LINE__); - caselog('cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); - caselog('chmod 644 /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); - $content = rf('/etc/Bastille/bastille-firewall.cfg'); - $content = str_replace('{DNS_SERVERS}', '', $content); - - $tcp_public_services = ''; - $udp_public_services = ''; - - $row = $this->db->queryOneRecord('SELECT * FROM '.$conf["mysql"]["database"].'.firewall WHERE server_id = '.intval($conf['server_id'])); - - if(trim($row['tcp_port']) != '' || trim($row['udp_port']) != '') { - $tcp_public_services = trim(str_replace(',',' ',$row['tcp_port'])); - $udp_public_services = trim(str_replace(',',' ',$row['udp_port'])); - } else { - $tcp_public_services = '21 22 25 53 80 110 143 443 3306 8080 10000'; - $udp_public_services = '53'; - } - - if(!stristr($tcp_public_services, $conf['apache']['vhost_port'])) { - $tcp_public_services .= ' '.intval($conf['apache']['vhost_port']); - if($row['tcp_port'] != '') $this->db->query("UPDATE firewall SET tcp_port = tcp_port + ',".intval($conf['apache']['vhost_port'])."' WHERE server_id = ".intval($conf['server_id'])); - } - - $content = str_replace('{TCP_PUBLIC_SERVICES}', $tcp_public_services, $content); - $content = str_replace('{UDP_PUBLIC_SERVICES}', $udp_public_services, $content); - - wf('/etc/Bastille/bastille-firewall.cfg', $content); - - if(is_file($dist_init_scripts.'/bastille-firewall')) caselog('mv -f '.$dist_init_scripts.'/bastille-firewall '.$dist_init_scripts.'/bastille-firewall.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-firewall '.$dist_init_scripts, __FILE__, __LINE__); - caselog('chmod 700 '.$dist_init_scripts.'/bastille-firewall', __FILE__, __LINE__); - - if(is_file('/sbin/bastille-ipchains')) caselog('mv -f /sbin/bastille-ipchains /sbin/bastille-ipchains.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-ipchains /sbin', __FILE__, __LINE__); - caselog('chmod 700 /sbin/bastille-ipchains', __FILE__, __LINE__); - - if(is_file('/sbin/bastille-netfilter')) caselog('mv -f /sbin/bastille-netfilter /sbin/bastille-netfilter.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-netfilter /sbin', __FILE__, __LINE__); - caselog('chmod 700 /sbin/bastille-netfilter', __FILE__, __LINE__); - - if(!@is_dir('/var/lock/subsys')) caselog('mkdir /var/lock/subsys', __FILE__, __LINE__); - - exec('which ipchains &> /dev/null', $ipchains_location, $ret_val); - if(!is_file('/sbin/ipchains') && !is_link('/sbin/ipchains') && $ret_val == 0) phpcaselog(@symlink(shell_exec('which ipchains'), '/sbin/ipchains'), 'create symlink', __FILE__, __LINE__); - unset($ipchains_location); - exec('which iptables &> /dev/null', $iptables_location, $ret_val); - if(!is_file('/sbin/iptables') && !is_link('/sbin/iptables') && $ret_val == 0) phpcaselog(@symlink(trim(shell_exec('which iptables')), '/sbin/iptables'), 'create symlink', __FILE__, __LINE__); - unset($iptables_location); - - } - - public function configure_vlogger() { - global $conf; - - //** Configure vlogger to use traffic logging to mysql (master) db - $configfile = 'vlogger-dbi.conf'; - if(is_file($conf['vlogger']['config_dir'].'/'.$configfile)) copy($conf['vlogger']['config_dir'].'/'.$configfile,$conf['vlogger']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['vlogger']['config_dir'].'/'.$configfile.'~')) chmod($conf['vlogger']['config_dir'].'/'.$configfile.'~', 0400); - $content = rf('tpl/'.$configfile.'.master'); - if($conf['mysql']['master_slave_setup'] == 'y') { - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['master_ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['master_database'],$content); - $content = str_replace('{mysql_server_ip}',$conf['mysql']['master_host'],$content); - } else { - $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); - $content = str_replace('{mysql_server_ip}',$conf['mysql']['host'],$content); - } - wf($conf['vlogger']['config_dir'].'/'.$configfile,$content); - chmod($conf['vlogger']['config_dir'].'/'.$configfile, 0600); - chown($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); - - } - - public function configure_apps_vhost() { - global $conf; - - //* Create the ispconfig apps vhost user and group - - $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); - $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); - $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); - - $command = 'groupadd '.$apps_vhost_user; - if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; - if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - - $command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - if(!@is_dir($install_dir)) mkdir($install_dir, 0755, true); - chown($install_dir, $apps_vhost_user); - chgrp($install_dir, $apps_vhost_group); - - //* Copy the apps vhost file - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername']; - - // Dont just copy over the virtualhost template but add some custom settings - $content = rf('tpl/apache_apps.vhost.master'); - - $content = str_replace('{apps_vhost_ip}', $conf['web']['apps_vhost_ip'], $content); - $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content); - $content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content); - $content = str_replace('{website_basedir}', $conf['web']['website_basedir'], $content); - $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); - - - // comment out the listen directive if port is 80 or 443 - if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { - $content = str_replace('{vhost_port_listen}', '#', $content); - } else { - $content = str_replace('{vhost_port_listen}', '', $content); - } - - wf($vhost_conf_dir.'/apps.vhost', $content); - - //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); - //* and create the symlink - if($this->install_ispconfig_interface == true) { - if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost')) { - symlink($vhost_conf_dir.'/apps.vhost',$vhost_conf_enabled_dir.'/000-apps.vhost'); - } - } - if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) { - mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); - copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); - exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); - exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); - - } - - } - - public function make_ispconfig_ssl_cert() { - global $conf; - - $install_dir = $conf['ispconfig_install_dir']; - - $ssl_crt_file = $install_dir.'/interface/ssl/ispserver.crt'; - $ssl_csr_file = $install_dir.'/interface/ssl/ispserver.csr'; - $ssl_key_file = $install_dir.'/interface/ssl/ispserver.key'; - - if(!@is_dir($install_dir.'/interface/ssl')) mkdir($install_dir.'/interface/ssl', 0755, true); - - $ssl_pw = substr(md5(mt_rand()),0,6); - exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); - exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); - exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); - rename($ssl_key_file,$ssl_key_file.'.secure'); - rename($ssl_key_file.'.insecure',$ssl_key_file); - - } - - public function install_ispconfig() { - global $conf; - - $install_dir = $conf['ispconfig_install_dir']; - - //* Create the ISPConfig installation directory - if(!@is_dir($install_dir)) { - $command = "mkdir $install_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* Create a ISPConfig user and group - $command = 'groupadd ispconfig'; - if(!is_group('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g ispconfig -d '.$install_dir.' ispconfig'; - if(!is_user('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* copy the ISPConfig interface part - $command = 'cp -rf ../interface '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* copy the ISPConfig server part - $command = 'cp -rf ../server '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Create a symlink, so ISPConfig is accessible via web - // Replaced by a separate vhost definition for port 8080 - // $command = "ln -s $install_dir/interface/web/ /var/www/ispconfig"; - // caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Create the config file for ISPConfig interface - $configfile = 'config.inc.php'; - if(is_file($install_dir.'/interface/lib/'.$configfile)) { - copy($install_dir.'/interface/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); - } - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - - $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); - $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); - $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); - - $content = str_replace('{server_id}', $conf['server_id'], $content); - $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); - $content = str_replace('{language}', $conf['language'], $content); - - wf($install_dir.'/interface/lib/'.$configfile, $content); - - //* Create the config file for ISPConfig server - $configfile = 'config.inc.php'; - if(is_file($install_dir.'/server/lib/'.$configfile)) { - copy($install_dir.'/server/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); - } - $content = rf('tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - - $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); - $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); - $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); - - $content = str_replace('{server_id}', $conf['server_id'], $content); - $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); + //* add a sshusers group + $command = 'groupadd sshusers'; + if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + } + + public function configure_firewall() { + global $conf; + + $dist_init_scripts = $conf['init_scripts']; + + if(is_dir('/etc/Bastille.backup')) caselog('rm -rf /etc/Bastille.backup', __FILE__, __LINE__); + if(is_dir('/etc/Bastille')) caselog('mv -f /etc/Bastille /etc/Bastille.backup', __FILE__, __LINE__); + @mkdir('/etc/Bastille', 0700); + if(is_dir('/etc/Bastille.backup/firewall.d')) caselog('cp -pfr /etc/Bastille.backup/firewall.d /etc/Bastille/', __FILE__, __LINE__); + caselog('cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); + caselog('chmod 644 /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); + $content = rf('/etc/Bastille/bastille-firewall.cfg'); + $content = str_replace('{DNS_SERVERS}', '', $content); + + $tcp_public_services = ''; + $udp_public_services = ''; + + $row = $this->db->queryOneRecord('SELECT * FROM '.$conf["mysql"]["database"].'.firewall WHERE server_id = '.intval($conf['server_id'])); + + if(trim($row['tcp_port']) != '' || trim($row['udp_port']) != '') { + $tcp_public_services = trim(str_replace(',',' ',$row['tcp_port'])); + $udp_public_services = trim(str_replace(',',' ',$row['udp_port'])); + } else { + $tcp_public_services = '21 22 25 53 80 110 143 443 3306 8080 10000'; + $udp_public_services = '53'; + } + + if(!stristr($tcp_public_services, $conf['apache']['vhost_port'])) { + $tcp_public_services .= ' '.intval($conf['apache']['vhost_port']); + if($row['tcp_port'] != '') $this->db->query("UPDATE firewall SET tcp_port = tcp_port + ',".intval($conf['apache']['vhost_port'])."' WHERE server_id = ".intval($conf['server_id'])); + } + + $content = str_replace('{TCP_PUBLIC_SERVICES}', $tcp_public_services, $content); + $content = str_replace('{UDP_PUBLIC_SERVICES}', $udp_public_services, $content); + + wf('/etc/Bastille/bastille-firewall.cfg', $content); + + if(is_file($dist_init_scripts.'/bastille-firewall')) caselog('mv -f '.$dist_init_scripts.'/bastille-firewall '.$dist_init_scripts.'/bastille-firewall.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-firewall '.$dist_init_scripts, __FILE__, __LINE__); + caselog('chmod 700 '.$dist_init_scripts.'/bastille-firewall', __FILE__, __LINE__); + + if(is_file('/sbin/bastille-ipchains')) caselog('mv -f /sbin/bastille-ipchains /sbin/bastille-ipchains.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-ipchains /sbin', __FILE__, __LINE__); + caselog('chmod 700 /sbin/bastille-ipchains', __FILE__, __LINE__); + + if(is_file('/sbin/bastille-netfilter')) caselog('mv -f /sbin/bastille-netfilter /sbin/bastille-netfilter.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-netfilter /sbin', __FILE__, __LINE__); + caselog('chmod 700 /sbin/bastille-netfilter', __FILE__, __LINE__); + + if(!@is_dir('/var/lock/subsys')) caselog('mkdir /var/lock/subsys', __FILE__, __LINE__); + + exec('which ipchains &> /dev/null', $ipchains_location, $ret_val); + if(!is_file('/sbin/ipchains') && !is_link('/sbin/ipchains') && $ret_val == 0) phpcaselog(@symlink(shell_exec('which ipchains'), '/sbin/ipchains'), 'create symlink', __FILE__, __LINE__); + unset($ipchains_location); + exec('which iptables &> /dev/null', $iptables_location, $ret_val); + if(!is_file('/sbin/iptables') && !is_link('/sbin/iptables') && $ret_val == 0) phpcaselog(@symlink(trim(shell_exec('which iptables')), '/sbin/iptables'), 'create symlink', __FILE__, __LINE__); + unset($iptables_location); + + } + + public function configure_vlogger() { + global $conf; + + //** Configure vlogger to use traffic logging to mysql (master) db + $configfile = 'vlogger-dbi.conf'; + if(is_file($conf['vlogger']['config_dir'].'/'.$configfile)) copy($conf['vlogger']['config_dir'].'/'.$configfile,$conf['vlogger']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['vlogger']['config_dir'].'/'.$configfile.'~')) chmod($conf['vlogger']['config_dir'].'/'.$configfile.'~', 0400); + $content = rf('tpl/'.$configfile.'.master'); + if($conf['mysql']['master_slave_setup'] == 'y') { + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['master_ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['master_database'],$content); + $content = str_replace('{mysql_server_ip}',$conf['mysql']['master_host'],$content); + } else { + $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content); + $content = str_replace('{mysql_server_ip}',$conf['mysql']['host'],$content); + } + wf($conf['vlogger']['config_dir'].'/'.$configfile,$content); + chmod($conf['vlogger']['config_dir'].'/'.$configfile, 0600); + chown($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); + + } + + public function configure_apps_vhost() { + global $conf; + + //* Create the ispconfig apps vhost user and group + + $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); + $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); + $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); + + $command = 'groupadd '.$apps_vhost_user; + if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; + if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + + $command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if(!@is_dir($install_dir)) mkdir($install_dir, 0755, true); + chown($install_dir, $apps_vhost_user); + chgrp($install_dir, $apps_vhost_group); + + //* Copy the apps vhost file + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername']; + + // Dont just copy over the virtualhost template but add some custom settings + $content = rf('tpl/apache_apps.vhost.master'); + + $content = str_replace('{apps_vhost_ip}', $conf['web']['apps_vhost_ip'], $content); + $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content); + $content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content); + $content = str_replace('{website_basedir}', $conf['web']['website_basedir'], $content); + $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); + + + // comment out the listen directive if port is 80 or 443 + if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { + $content = str_replace('{vhost_port_listen}', '#', $content); + } else { + $content = str_replace('{vhost_port_listen}', '', $content); + } + + wf($vhost_conf_dir.'/apps.vhost', $content); + + //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); + //* and create the symlink + if($this->install_ispconfig_interface == true) { + if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost')) { + symlink($vhost_conf_dir.'/apps.vhost',$vhost_conf_enabled_dir.'/000-apps.vhost'); + } + } + if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) { + mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); + copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); + exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); + exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); + + } + + } + + public function make_ispconfig_ssl_cert() { + global $conf; + + $install_dir = $conf['ispconfig_install_dir']; + + $ssl_crt_file = $install_dir.'/interface/ssl/ispserver.crt'; + $ssl_csr_file = $install_dir.'/interface/ssl/ispserver.csr'; + $ssl_key_file = $install_dir.'/interface/ssl/ispserver.key'; + + if(!@is_dir($install_dir.'/interface/ssl')) mkdir($install_dir.'/interface/ssl', 0755, true); + + $ssl_pw = substr(md5(mt_rand()),0,6); + exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); + exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); + rename($ssl_key_file,$ssl_key_file.'.secure'); + rename($ssl_key_file.'.insecure',$ssl_key_file); + + } + + public function install_ispconfig() { + global $conf; + + $install_dir = $conf['ispconfig_install_dir']; + + //* Create the ISPConfig installation directory + if(!@is_dir($install_dir)) { + $command = "mkdir $install_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* Create a ISPConfig user and group + $command = 'groupadd ispconfig'; + if(!is_group('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g ispconfig -d '.$install_dir.' ispconfig'; + if(!is_user('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig interface part + $command = 'cp -rf ../interface '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig server part + $command = 'cp -rf ../server '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Create a symlink, so ISPConfig is accessible via web + // Replaced by a separate vhost definition for port 8080 + // $command = "ln -s $install_dir/interface/web/ /var/www/ispconfig"; + // caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Create the config file for ISPConfig interface + $configfile = 'config.inc.php'; + if(is_file($install_dir.'/interface/lib/'.$configfile)) { + copy($install_dir.'/interface/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + + $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); + + $content = str_replace('{server_id}', $conf['server_id'], $content); + $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); + $content = str_replace('{language}', $conf['language'], $content); + + wf($install_dir.'/interface/lib/'.$configfile, $content); + + //* Create the config file for ISPConfig server + $configfile = 'config.inc.php'; + if(is_file($install_dir.'/server/lib/'.$configfile)) { + copy($install_dir.'/server/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $content = rf('tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + + $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); + + $content = str_replace('{server_id}', $conf['server_id'], $content); + $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); $content = str_replace('{language}', $conf['language'], $content); - wf($install_dir.'/server/lib/'.$configfile, $content); - - //* Create the config file for remote-actions (but only, if it does not exist, because - // the value is a autoinc-value and so changed by the remoteaction_core_module - if (!file_exists($install_dir.'/server/lib/remote_action.inc.php')) { - $content = '<?php' . "\n" . '$maxid_remote_action = 0;' . "\n" . '?>'; - wf($install_dir.'/server/lib/remote_action.inc.php', $content); - } - - //* Enable the server modules and plugins. - // TODO: Implement a selector which modules and plugins shall be enabled. - $dir = $install_dir.'/server/mods-available/'; - if (is_dir($dir)) { - if ($dh = opendir($dir)) { - while (($file = readdir($dh)) !== false) { - if($file != '.' && $file != '..' && substr($file,-8,8) == '.inc.php') { - include_once($install_dir.'/server/mods-available/'.$file); - $module_name = substr($file,0,-8); - $tmp = new $module_name; - if($tmp->onInstall()) { - if(!@is_link($install_dir.'/server/mods-enabled/'.$file)) { - @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-enabled/'.$file); - // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-enabled/'.$file); - } - if (strpos($file, '_core_module') !== false) { - if(!@is_link($install_dir.'/server/mods-core/'.$file)) { - @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-core/'.$file); - // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-core/'.$file); - } - } - } - unset($tmp); - } - } - closedir($dh); - } - } - - $dir = $install_dir.'/server/plugins-available/'; - if (is_dir($dir)) { - if ($dh = opendir($dir)) { - while (($file = readdir($dh)) !== false) { - if($file != '.' && $file != '..' && substr($file,-8,8) == '.inc.php') { - include_once($install_dir.'/server/plugins-available/'.$file); - $plugin_name = substr($file,0,-8); - $tmp = new $plugin_name; - if(method_exists($tmp,'onInstall') && $tmp->onInstall()) { - if(!@is_link($install_dir.'/server/plugins-enabled/'.$file)) { - @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-enabled/'.$file); - //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-enabled/'.$file); - } - if (strpos($file, '_core_plugin') !== false) { - if(!@is_link($install_dir.'/server/plugins-core/'.$file)) { - @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-core/'.$file); - //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-core/'.$file); - } - } - } - unset($tmp); - } - } - closedir($dh); - } - } - - // Update the server config - $mail_server_enabled = ($conf['services']['mail'])?1:0; - $web_server_enabled = ($conf['services']['web'])?1:0; - $dns_server_enabled = ($conf['services']['dns'])?1:0; - $file_server_enabled = ($conf['services']['file'])?1:0; - $db_server_enabled = ($conf['services']['db'])?1:0; - $vserver_server_enabled = ($conf['services']['vserver'])?1:0; - - - - - - - $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled' WHERE server_id = ".intval($conf['server_id']); - - if($conf['mysql']['master_slave_setup'] == 'y') { - $this->dbmaster->query($sql); - $this->db->query($sql); - } else { - $this->db->query($sql); - } - - - //* Chmod the files - $command = 'chmod -R 750 '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* chown the files to the ispconfig user and group - $command = 'chown -R ispconfig:ispconfig '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Make the global language file directory group writable - exec("chmod -R 770 $install_dir/interface/lib/lang"); - - //* Make the temp directory for language file exports writable - if(is_dir($install_dir.'/interface/web/temp')) exec("chmod -R 770 $install_dir/interface/web/temp"); - - //* Make all interface language file directories group writable - $handle = @opendir($install_dir.'/interface/web'); - while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir($install_dir.'/interface/web'.'/'.$file.'/lib/lang')) { - $handle2 = opendir($install_dir.'/interface/web'.'/'.$file.'/lib/lang'); - chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang',0770); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..') { - chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang/'.$lang_file,0770); - } - } - } - } - } - - //* make sure that the server config file (not the interface one) is only readable by the root user - chmod($install_dir.'/server/lib/'.$configfile, 0600); - chown($install_dir.'/server/lib/'.$configfile, 'root'); - chgrp($install_dir.'/server/lib/'.$configfile, 'root'); - - chmod($install_dir.'/server/lib/remote_action.inc.php', 0600); - chown($install_dir.'/server/lib/remote_action.inc.php', 'root'); - chgrp($install_dir.'/server/lib/remote_action.inc.php', 'root'); - - if(@is_file($install_dir.'/server/lib/mysql_clientdb.conf')) { - chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); - chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - } - - // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing - // and must be fixed as this will allow the apache user to read the ispconfig files. - // Later this must run as own apache server or via suexec! - $command = 'adduser www-data ispconfig'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Make the shell scripts executable - $command = "chmod +x $install_dir/server/scripts/*.sh"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Copy the ISPConfig vhost for the controlpanel - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - - - // Dont just copy over the virtualhost template but add some custom settings - $content = rf('tpl/apache_ispconfig.vhost.master'); - $content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content); - - // comment out the listen directive if port is 80 or 443 - if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { - $content = str_replace('{vhost_port_listen}', '#', $content); - } else { - $content = str_replace('{vhost_port_listen}', '', $content); - } - - if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_comment}', '', $content); - } else { - $content = str_replace('{ssl_comment}', '#', $content); - } - - wf($vhost_conf_dir.'/ispconfig.vhost', $content); - - //copy('tpl/apache_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost'); - //* and create the symlink - if($this->install_ispconfig_interface == true && $this->is_update == false) { - if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { - symlink($vhost_conf_dir.'/ispconfig.vhost',$vhost_conf_enabled_dir.'/000-ispconfig.vhost'); - } - } - if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) { - mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); - copy('tpl/apache_ispconfig_fcgi_starter.master','/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); - exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); - symlink($install_dir.'/interface/web','/var/www/ispconfig'); - exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); - - } - - //* Install the update script - if(is_file('/usr/local/bin/ispconfig_update_from_svn.sh')) unlink('/usr/local/bin/ispconfig_update_from_svn.sh'); - chown($install_dir.'/server/scripts/update_from_svn.sh', 'root'); - chmod($install_dir.'/server/scripts/update_from_svn.sh', 0700); - chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); - chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); - chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root'); - chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700); - if(!is_link('/usr/local/bin/ispconfig_update_from_svn.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh','/usr/local/bin/ispconfig_update_from_svn.sh'); - if(!is_link('/usr/local/bin/ispconfig_update.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh','/usr/local/bin/ispconfig_update.sh'); - - //* Make the logs readable for the ispconfig user - if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log'); - if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn'); - if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err'); - if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages'); - if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log'); - if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log'); - - //* Create the ispconfig log file and directory - if(!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { - if(!is_dir($conf['ispconfig_log_dir'])) mkdir($conf['ispconfig_log_dir'], 0755); - touch($conf['ispconfig_log_dir'].'/ispconfig.log'); - } - - rename($install_dir.'/server/scripts/run-getmail.sh','/usr/local/bin/run-getmail.sh'); - if(is_user('getmail')) chown('/usr/local/bin/run-getmail.sh', 'getmail'); - chmod('/usr/local/bin/run-getmail.sh', 0744); - - //* Add Log-Rotation - if (is_dir('/etc/logrotate.d')) { - @unlink('/etc/logrotate.d/logispc3'); // ignore, if the file is not there - /* We rotate these logs in cron_daily.php - $fh = fopen('/etc/logrotate.d/logispc3', 'w'); - fwrite($fh, - "$conf['ispconfig_log_dir']/ispconfig.log { \n" . - " weekly \n" . - " missingok \n" . - " rotate 4 \n" . - " compress \n" . - " delaycompress \n" . - "} \n" . - "$conf['ispconfig_log_dir']/cron.log { \n" . - " weekly \n" . - " missingok \n" . - " rotate 4 \n" . - " compress \n" . - " delaycompress \n" . - "}"); - fclose($fh); - */ - } - } - - public function configure_dbserver() { - global $conf; - - //* If this server shall act as database server for client DB's, we configure this here - $install_dir = $conf['ispconfig_install_dir']; - - // Create a file with the database login details which - // are used to create the client databases. - - if(!is_dir($install_dir.'/server/lib')) { - $command = "mkdir $install_dir/server/lib"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - $content = rf('tpl/mysql_clientdb.conf.master'); - $content = str_replace('{username}',$conf['mysql']['admin_user'],$content); - $content = str_replace('{password}',$conf['mysql']['admin_password'], $content); - wf($install_dir.'/server/lib/mysql_clientdb.conf',$content); - chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); - chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - - } - - public function install_crontab() { - global $conf; - - $install_dir = $conf['ispconfig_install_dir']; - - //* Root Crontab - exec('crontab -u root -l > crontab.txt'); - $existing_root_cron_jobs = file('crontab.txt'); - - // remove existing ispconfig cronjobs, in case the syntax has changed - foreach($existing_root_cron_jobs as $key => $val) { - if(stristr($val,$install_dir)) unset($existing_root_cron_jobs[$key]); - } - - $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" - ); - foreach($root_cron_jobs as $cron_job) { - if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { - $existing_root_cron_jobs[] = $cron_job."\n"; - } - } - file_put_contents('crontab.txt', $existing_root_cron_jobs); - exec('crontab -u root crontab.txt &> /dev/null'); - unlink('crontab.txt'); - - //* Getmail crontab - if(is_user('getmail')) { - $cf = $conf['getmail']; - exec('crontab -u getmail -l > crontab.txt'); - $existing_cron_jobs = file('crontab.txt'); - - $cron_jobs = array( - '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> '.$conf['ispconfig_log_dir'].'/cron.log' - ); - - // remove existing ispconfig cronjobs, in case the syntax has changed - foreach($existing_cron_jobs as $key => $val) { - if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]); - } - - foreach($cron_jobs as $cron_job) { - if(!in_array($cron_job."\n", $existing_cron_jobs)) { - $existing_cron_jobs[] = $cron_job."\n"; - } - } - file_put_contents('crontab.txt', $existing_cron_jobs); - exec('crontab -u getmail crontab.txt &> /dev/null'); - unlink('crontab.txt'); - } - - touch($conf['ispconfig_log_dir'].'/cron.log'); - chmod($conf['ispconfig_log_dir'].'/cron.log', 0666); - - } - - /** - * Helper function - get the path to a template file based on - * the local part of the filename. Checks first for the existence - * of a distribution specific file and if not found looks in the - * base template folder. Optionally the behaviour can be changed - * by setting the 2nd parameter which will fetch the contents - * of the template file and return it instead of the path. The 3rd - * parameter further extends this behaviour by filtering the contents - * by inserting the ispconfig database credentials using the {} placeholders. - * - * @param string $tLocal local part of filename - * @param bool $tRf - * @param bool $tDBCred - * @return string Relative path to the chosen template file - */ - protected function get_template_file($tLocal, $tRf=false, $tDBCred=false) { - global $conf, $dist; - - $final_path = ''; - $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master"; - if (file_exists($dist_template)) { - $final_path = $dist_template; - } else { - $final_path = "tpl/$tLocal.master"; - } - - if (!$tRf) { - return $final_path; - } else { - return (!$tDBCred) ? rf($final_path) : $this->insert_db_credentials(rf($final_path)); - } - } - - /** - * Helper function - writes the contents to a config file - * and performs a backup if the file exist. Additionally - * if the file exists the new file will be given the - * same rights and ownership as the original. Optionally the - * rights and/or ownership can be overriden by appending umask, - * user and group to the parameters. Providing only uid and gid - * values will result in only a chown. - * - * @param $tConf - * @param $tContents - * @return bool - */ - protected function write_config_file($tConf, $tContents) { - // Backup config file before writing new contents and stat file - if ( is_file($tConf) ) { - $stat = exec('stat -c \'%a %U %G\' '.escapeshellarg($tConf), $output, $res); - if ($res == 0) { // stat successfull - list($access, $user, $group) = split(" ", $stat); - } - - if ( copy($tConf, $tConf.'~') ) { - chmod($tConf.'~', 0400); - } - } - - wf($tConf, $tContents); // write file - - if (func_num_args() >= 4) // override rights and/or ownership - { - $args = func_get_args(); - $output = array_slice($args, 2); - - switch (sizeof($output)) { - case 3: - $umask = array_shift($output); - if (is_numeric($umask) && preg_match('/^0?[0-7]{3}$/', $umask)) { - $access = $umask; - } - case 2: - if (is_user($output[0]) && is_group($output[1])) { - list($user,$group) = $output; - } - break; - } - } - - if (!empty($user) && !empty($group)) { - chown($tConf, $user); - chgrp($tConf, $group); - } - - if (!empty($access)) { - exec("chmod $access $tConf"); - } - } - - /** - * Helper function - filter the contents of a config - * file by inserting the common ispconfig database - * credentials. - * - * @param $tContents - * @return string - */ - protected function insert_db_credentials($tContents) { - global $conf; - - $tContents = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $tContents); - $tContents = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $tContents); - $tContents = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $tContents); - $tContents = str_replace('{mysql_server_ip}', $conf["mysql"]["ip"], $tContents); - $tContents = str_replace('{mysql_server_host}',$conf['mysql']['host'], $tContents); - $tContents = str_replace('{mysql_server_port}',$conf["mysql"]["port"], $tContents); - - return $tContents; - } -} - -?> + wf($install_dir.'/server/lib/'.$configfile, $content); + + //* Create the config file for remote-actions (but only, if it does not exist, because + // the value is a autoinc-value and so changed by the remoteaction_core_module + if (!file_exists($install_dir.'/server/lib/remote_action.inc.php')) { + $content = '<?php' . "\n" . '$maxid_remote_action = 0;' . "\n" . '?>'; + wf($install_dir.'/server/lib/remote_action.inc.php', $content); + } + + //* Enable the server modules and plugins. + // TODO: Implement a selector which modules and plugins shall be enabled. + $dir = $install_dir.'/server/mods-available/'; + if (is_dir($dir)) { + if ($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) { + if($file != '.' && $file != '..' && substr($file,-8,8) == '.inc.php') { + include_once($install_dir.'/server/mods-available/'.$file); + $module_name = substr($file,0,-8); + $tmp = new $module_name; + if($tmp->onInstall()) { + if(!@is_link($install_dir.'/server/mods-enabled/'.$file)) { + @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-enabled/'.$file); + // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-enabled/'.$file); + } + if (strpos($file, '_core_module') !== false) { + if(!@is_link($install_dir.'/server/mods-core/'.$file)) { + @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-core/'.$file); + // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-core/'.$file); + } + } + } + unset($tmp); + } + } + closedir($dh); + } + } + + $dir = $install_dir.'/server/plugins-available/'; + if (is_dir($dir)) { + if ($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) { + if($file != '.' && $file != '..' && substr($file,-8,8) == '.inc.php') { + include_once($install_dir.'/server/plugins-available/'.$file); + $plugin_name = substr($file,0,-8); + $tmp = new $plugin_name; + if(method_exists($tmp,'onInstall') && $tmp->onInstall()) { + if(!@is_link($install_dir.'/server/plugins-enabled/'.$file)) { + @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-enabled/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-enabled/'.$file); + } + if (strpos($file, '_core_plugin') !== false) { + if(!@is_link($install_dir.'/server/plugins-core/'.$file)) { + @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-core/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-core/'.$file); + } + } + } + unset($tmp); + } + } + closedir($dh); + } + } + + // Update the server config + $mail_server_enabled = ($conf['services']['mail'])?1:0; + $web_server_enabled = ($conf['services']['web'])?1:0; + $dns_server_enabled = ($conf['services']['dns'])?1:0; + $file_server_enabled = ($conf['services']['file'])?1:0; + $db_server_enabled = ($conf['services']['db'])?1:0; + $vserver_server_enabled = ($conf['services']['vserver'])?1:0; + + + + + + + $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled' WHERE server_id = ".intval($conf['server_id']); + + if($conf['mysql']['master_slave_setup'] == 'y') { + $this->dbmaster->query($sql); + $this->db->query($sql); + } else { + $this->db->query($sql); + } + + + //* Chmod the files + $command = 'chmod -R 750 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Make the global language file directory group writable + exec("chmod -R 770 $install_dir/interface/lib/lang"); + + //* Make the temp directory for language file exports writable + if(is_dir($install_dir.'/interface/web/temp')) exec("chmod -R 770 $install_dir/interface/web/temp"); + + //* Make all interface language file directories group writable + $handle = @opendir($install_dir.'/interface/web'); + while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir($install_dir.'/interface/web'.'/'.$file.'/lib/lang')) { + $handle2 = opendir($install_dir.'/interface/web'.'/'.$file.'/lib/lang'); + chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang',0770); + while ($lang_file = @readdir ($handle2)) { + if ($lang_file != '.' && $lang_file != '..') { + chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang/'.$lang_file,0770); + } + } + } + } + } + + //* make sure that the server config file (not the interface one) is only readable by the root user + chmod($install_dir.'/server/lib/'.$configfile, 0600); + chown($install_dir.'/server/lib/'.$configfile, 'root'); + chgrp($install_dir.'/server/lib/'.$configfile, 'root'); + + chmod($install_dir.'/server/lib/remote_action.inc.php', 0600); + chown($install_dir.'/server/lib/remote_action.inc.php', 'root'); + chgrp($install_dir.'/server/lib/remote_action.inc.php', 'root'); + + if(@is_file($install_dir.'/server/lib/mysql_clientdb.conf')) { + chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); + chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + } + + // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing + // and must be fixed as this will allow the apache user to read the ispconfig files. + // Later this must run as own apache server or via suexec! + $command = 'adduser www-data ispconfig'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Make the shell scripts executable + $command = "chmod +x $install_dir/server/scripts/*.sh"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Copy the ISPConfig vhost for the controlpanel + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + + + // Dont just copy over the virtualhost template but add some custom settings + $content = rf('tpl/apache_ispconfig.vhost.master'); + $content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content); + + // comment out the listen directive if port is 80 or 443 + if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { + $content = str_replace('{vhost_port_listen}', '#', $content); + } else { + $content = str_replace('{vhost_port_listen}', '', $content); + } + + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { + $content = str_replace('{ssl_comment}', '', $content); + } else { + $content = str_replace('{ssl_comment}', '#', $content); + } + + wf($vhost_conf_dir.'/ispconfig.vhost', $content); + + //copy('tpl/apache_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost'); + //* and create the symlink + if($this->install_ispconfig_interface == true && $this->is_update == false) { + if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { + symlink($vhost_conf_dir.'/ispconfig.vhost',$vhost_conf_enabled_dir.'/000-ispconfig.vhost'); + } + } + if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) { + mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); + copy('tpl/apache_ispconfig_fcgi_starter.master','/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); + exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); + symlink($install_dir.'/interface/web','/var/www/ispconfig'); + exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); + + } + + //* Install the update script + if(is_file('/usr/local/bin/ispconfig_update_from_svn.sh')) unlink('/usr/local/bin/ispconfig_update_from_svn.sh'); + chown($install_dir.'/server/scripts/update_from_svn.sh', 'root'); + chmod($install_dir.'/server/scripts/update_from_svn.sh', 0700); + chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); + chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); + chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root'); + chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700); + if(!is_link('/usr/local/bin/ispconfig_update_from_svn.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh','/usr/local/bin/ispconfig_update_from_svn.sh'); + if(!is_link('/usr/local/bin/ispconfig_update.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh','/usr/local/bin/ispconfig_update.sh'); + + //* Make the logs readable for the ispconfig user + if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log'); + if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn'); + if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err'); + if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages'); + if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log'); + if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log'); + + //* Create the ispconfig log file and directory + if(!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { + if(!is_dir($conf['ispconfig_log_dir'])) mkdir($conf['ispconfig_log_dir'], 0755); + touch($conf['ispconfig_log_dir'].'/ispconfig.log'); + } + + rename($install_dir.'/server/scripts/run-getmail.sh','/usr/local/bin/run-getmail.sh'); + if(is_user('getmail')) chown('/usr/local/bin/run-getmail.sh', 'getmail'); + chmod('/usr/local/bin/run-getmail.sh', 0744); + + //* Add Log-Rotation + if (is_dir('/etc/logrotate.d')) { + @unlink('/etc/logrotate.d/logispc3'); // ignore, if the file is not there + /* We rotate these logs in cron_daily.php + $fh = fopen('/etc/logrotate.d/logispc3', 'w'); + fwrite($fh, + "$conf['ispconfig_log_dir']/ispconfig.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "} \n" . + "$conf['ispconfig_log_dir']/cron.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "}"); + fclose($fh); + */ + } + } + + public function configure_dbserver() { + global $conf; + + //* If this server shall act as database server for client DB's, we configure this here + $install_dir = $conf['ispconfig_install_dir']; + + // Create a file with the database login details which + // are used to create the client databases. + + if(!is_dir($install_dir.'/server/lib')) { + $command = "mkdir $install_dir/server/lib"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + $content = rf('tpl/mysql_clientdb.conf.master'); + $content = str_replace('{username}',$conf['mysql']['admin_user'],$content); + $content = str_replace('{password}',$conf['mysql']['admin_password'], $content); + wf($install_dir.'/server/lib/mysql_clientdb.conf',$content); + chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); + chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + + } + + public function install_crontab() { + global $conf; + + $install_dir = $conf['ispconfig_install_dir']; + + //* Root Crontab + exec('crontab -u root -l > crontab.txt'); + $existing_root_cron_jobs = file('crontab.txt'); + + // remove existing ispconfig cronjobs, in case the syntax has changed + foreach($existing_root_cron_jobs as $key => $val) { + if(stristr($val,$install_dir)) unset($existing_root_cron_jobs[$key]); + } + + $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" + ); + foreach($root_cron_jobs as $cron_job) { + if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { + $existing_root_cron_jobs[] = $cron_job."\n"; + } + } + file_put_contents('crontab.txt', $existing_root_cron_jobs); + exec('crontab -u root crontab.txt &> /dev/null'); + unlink('crontab.txt'); + + //* Getmail crontab + if(is_user('getmail')) { + $cf = $conf['getmail']; + exec('crontab -u getmail -l > crontab.txt'); + $existing_cron_jobs = file('crontab.txt'); + + $cron_jobs = array( + '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> '.$conf['ispconfig_log_dir'].'/cron.log' + ); + + // remove existing ispconfig cronjobs, in case the syntax has changed + foreach($existing_cron_jobs as $key => $val) { + if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]); + } + + foreach($cron_jobs as $cron_job) { + if(!in_array($cron_job."\n", $existing_cron_jobs)) { + $existing_cron_jobs[] = $cron_job."\n"; + } + } + file_put_contents('crontab.txt', $existing_cron_jobs); + exec('crontab -u getmail crontab.txt &> /dev/null'); + unlink('crontab.txt'); + } + + touch($conf['ispconfig_log_dir'].'/cron.log'); + chmod($conf['ispconfig_log_dir'].'/cron.log', 0666); + + } + + /** + * Helper function - get the path to a template file based on + * the local part of the filename. Checks first for the existence + * of a distribution specific file and if not found looks in the + * base template folder. Optionally the behaviour can be changed + * by setting the 2nd parameter which will fetch the contents + * of the template file and return it instead of the path. The 3rd + * parameter further extends this behaviour by filtering the contents + * by inserting the ispconfig database credentials using the {} placeholders. + * + * @param string $tLocal local part of filename + * @param bool $tRf + * @param bool $tDBCred + * @return string Relative path to the chosen template file + */ + protected function get_template_file($tLocal, $tRf=false, $tDBCred=false) { + global $conf, $dist; + + $final_path = ''; + $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master"; + if (file_exists($dist_template)) { + $final_path = $dist_template; + } else { + $final_path = "tpl/$tLocal.master"; + } + + if (!$tRf) { + return $final_path; + } else { + return (!$tDBCred) ? rf($final_path) : $this->insert_db_credentials(rf($final_path)); + } + } + + /** + * Helper function - writes the contents to a config file + * and performs a backup if the file exist. Additionally + * if the file exists the new file will be given the + * same rights and ownership as the original. Optionally the + * rights and/or ownership can be overriden by appending umask, + * user and group to the parameters. Providing only uid and gid + * values will result in only a chown. + * + * @param $tConf + * @param $tContents + * @return bool + */ + protected function write_config_file($tConf, $tContents) { + // Backup config file before writing new contents and stat file + if ( is_file($tConf) ) { + $stat = exec('stat -c \'%a %U %G\' '.escapeshellarg($tConf), $output, $res); + if ($res == 0) { // stat successfull + list($access, $user, $group) = split(" ", $stat); + } + + if ( copy($tConf, $tConf.'~') ) { + chmod($tConf.'~', 0400); + } + } + + wf($tConf, $tContents); // write file + + if (func_num_args() >= 4) // override rights and/or ownership + { + $args = func_get_args(); + $output = array_slice($args, 2); + + switch (sizeof($output)) { + case 3: + $umask = array_shift($output); + if (is_numeric($umask) && preg_match('/^0?[0-7]{3}$/', $umask)) { + $access = $umask; + } + case 2: + if (is_user($output[0]) && is_group($output[1])) { + list($user,$group) = $output; + } + break; + } + } + + if (!empty($user) && !empty($group)) { + chown($tConf, $user); + chgrp($tConf, $group); + } + + if (!empty($access)) { + exec("chmod $access $tConf"); + } + } + + /** + * Helper function - filter the contents of a config + * file by inserting the common ispconfig database + * credentials. + * + * @param $tContents + * @return string + */ + protected function insert_db_credentials($tContents) { + global $conf; + + $tContents = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $tContents); + $tContents = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $tContents); + $tContents = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $tContents); + $tContents = str_replace('{mysql_server_ip}', $conf["mysql"]["ip"], $tContents); + $tContents = str_replace('{mysql_server_host}',$conf['mysql']['host'], $tContents); + $tContents = str_replace('{mysql_server_port}',$conf["mysql"]["port"], $tContents); + + return $tContents; + } +} + +?> diff --git a/install/sql/README.txt b/install/sql/README.txt index 7159cfc37e..fe15ce5403 100644 --- a/install/sql/README.txt +++ b/install/sql/README.txt @@ -1,39 +1,39 @@ - ---------------------------------------------------------------------------------- -- Developer README ---------------------------------------------------------------------------------- - -When you add or modify a database field or table in the ISPConfig database, -then follow these steps: - -1) Add the field or table in the ispconfig3.sql file. This file contains the - complete database dump which is used when ISPConfig gets installed. - -2) Create a new file in the "incremental" subfolder wich contains the alter - table, or if it is a complete new table then the add table, statement(s) in - MySQL syntax which is/are required to modify the current ispconfig database - during update. The naming scheme of the sql patch update files is - upd_0001.sql, upd_0002.sql, upd_0003.sql etc. Ensure that the number that - you choose for the new file is a +1 increment of the number of the last - existing file and that the number is formatted with 4 digits. - - A patch file may contain one or more alter table statements. Every patch file - gets executed once in the database, so do not modify older (already released) - patch files, they will not get executed again if the update was already run - once on a system. - - After a patch has been executed, the dbversion field in the server table gets - increeased to the version number of the last installed patch. - - If you like to run a patch file again for testing purposes on your dev machine, - then set the number in "dbversion" field of the server table to be lower then - the number of your patch. - -Note: Incremental patches are supported for installed ISPConfig versions > 3.0.3. - If the installed version is < 3.0.3, then the full update method is used. - In other words, ISPConfig 3.0.3 is the patch release (dbversion) 0 as the - incremental update feature has been introduced in 3.0.3. - - - - + +--------------------------------------------------------------------------------- +- Developer README +--------------------------------------------------------------------------------- + +When you add or modify a database field or table in the ISPConfig database, +then follow these steps: + +1) Add the field or table in the ispconfig3.sql file. This file contains the + complete database dump which is used when ISPConfig gets installed. + +2) Create a new file in the "incremental" subfolder wich contains the alter + table, or if it is a complete new table then the add table, statement(s) in + MySQL syntax which is/are required to modify the current ispconfig database + during update. The naming scheme of the sql patch update files is + upd_0001.sql, upd_0002.sql, upd_0003.sql etc. Ensure that the number that + you choose for the new file is a +1 increment of the number of the last + existing file and that the number is formatted with 4 digits. + + A patch file may contain one or more alter table statements. Every patch file + gets executed once in the database, so do not modify older (already released) + patch files, they will not get executed again if the update was already run + once on a system. + + After a patch has been executed, the dbversion field in the server table gets + increeased to the version number of the last installed patch. + + If you like to run a patch file again for testing purposes on your dev machine, + then set the number in "dbversion" field of the server table to be lower then + the number of your patch. + +Note: Incremental patches are supported for installed ISPConfig versions > 3.0.3. + If the installed version is < 3.0.3, then the full update method is used. + In other words, ISPConfig 3.0.3 is the patch release (dbversion) 0 as the + incremental update feature has been introduced in 3.0.3. + + + + diff --git a/install/sql/incremental/upd_0007.sql b/install/sql/incremental/upd_0007.sql index a7697e84bd..cea3813229 100644 --- a/install/sql/incremental/upd_0007.sql +++ b/install/sql/incremental/upd_0007.sql @@ -1,19 +1,19 @@ -ALTER TABLE client ADD COLUMN limit_mailmailinglist int(11) NOT NULL default '-1'; -ALTER TABLE client_template ADD COLUMN limit_mailmailinglist int(11) NOT NULL default '-1'; - -CREATE TABLE IF NOT EXISTS `mail_mailinglist` ( - `mailinglist_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL, - `sys_perm_group` varchar(5) character set ucs2 NOT NULL, - `sys_perm_other` varchar(5) NOT NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `domain` varchar(255) NOT NULL, - `listname` varchar(255) NOT NULL, - `email` varchar(255) NOT NULL, - `password` varchar(255) NOT NULL, - PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; - +ALTER TABLE client ADD COLUMN limit_mailmailinglist int(11) NOT NULL default '-1'; +ALTER TABLE client_template ADD COLUMN limit_mailmailinglist int(11) NOT NULL default '-1'; + +CREATE TABLE IF NOT EXISTS `mail_mailinglist` ( + `mailinglist_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL, + `sys_perm_group` varchar(5) character set ucs2 NOT NULL, + `sys_perm_other` varchar(5) NOT NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `domain` varchar(255) NOT NULL, + `listname` varchar(255) NOT NULL, + `email` varchar(255) NOT NULL, + `password` varchar(255) NOT NULL, + PRIMARY KEY (`mailinglist_id`) +) ENGINE=MyISAM AUTO_INCREMENT=1; + DROP TABLE `mail_mailman_domain`; \ No newline at end of file diff --git a/install/update.php b/install/update.php index 17f6c3c3ca..fa1cb83132 100644 --- a/install/update.php +++ b/install/update.php @@ -1,358 +1,358 @@ -<?php - -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - ISPConfig 3 updater. -*/ - -error_reporting(E_ALL|E_STRICT); - -//** The banner on the command line -echo "\n\n".str_repeat('-',80)."\n"; -echo " _____ ___________ _____ __ _ ____ -|_ _/ ___| ___ \ / __ \ / _(_) /__ \ - | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / - | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | - _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ - \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ - __/ | - |___/ "; -echo "\n".str_repeat('-',80)."\n"; -echo "\n\n>> Update \n\n"; - -//** Include the library with the basic installer functions -require_once('lib/install.lib.php'); - -//** Include the library with the basic updater functions -require_once('lib/update.lib.php'); - -//** Include the base class of the installer class -require_once('lib/installer_base.lib.php'); - -//** Ensure that current working directory is install directory -$cur_dir = getcwd(); -if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); - -//** Install logfile -define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); -define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); - -//** Check for ISPConfig 2.x versions -if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) { - die('This software cannot be installed on a server wich runs ISPConfig 2.x.'); -} - -//** Get distribution identifier -$dist = get_distname(); - -include_once("/usr/local/ispconfig/server/lib/config.inc.php"); -$conf_old = $conf; -unset($conf); - -if($dist['id'] == '') die('Linux distribution or version not recognized.'); - -//** Include the distribution-specific installer class library and configuration -if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); -include_once('dist/lib/'.$dist['id'].'.lib.php'); -include_once('dist/conf/'.$dist['id'].'.conf.php'); - -//** Get hostname -exec('hostname -f', $tmp_out); -$conf['hostname'] = $tmp_out[0]; -unset($tmp_out); - -//** Set the mysql login information -$conf["mysql"]["host"] = $conf_old["db_host"]; -$conf["mysql"]["database"] = $conf_old["db_database"]; -$conf['mysql']['charset'] = 'utf8'; -$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; -$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; -$conf['language'] = $conf_old['language']; -if($conf['language'] == '{language}') $conf['language'] = 'en'; - -if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; -if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; -if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; -if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; - -//* Check if this is a master / slave setup -if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { - $conf['mysql']['master_slave_setup'] = 'y'; -} - -// Resolve the IP address of the mysql hostname. -if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); - -$conf['server_id'] = intval($conf_old["server_id"]); -$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; - -$inst = new installer(); -$inst->is_update = true; - -//** Detect the installed applications -$inst->find_installed_apps(); - -echo "This application will update ISPConfig 3 on your server.\n"; - -//** Initialize the MySQL server connection -include_once('lib/mysql.lib.php'); - -//** Database update is a bit brute force and should be rebuild later ;) - -/* - * Try to read the DB-admin settings - */ -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; -include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); -$conf["mysql"]["admin_user"] = $clientdb_user; -$conf["mysql"]["admin_password"] = $clientdb_password; -$clientdb_host = ''; -$clientdb_user = ''; -$clientdb_password = ''; - -//** Ask user for mysql admin_password if empty -if( empty($conf["mysql"]["admin_password"]) ) { - - $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); -} - -/* - * Prepare the dump of the database - */ -prepareDBDump(); - -//* initialize the database -$inst->db = new db(); - -//* initialize the master DB, if we have a multiserver setup -if($conf['mysql']['master_slave_setup'] == 'y') { - //** Get MySQL root credentials - $finished = false; - do { - $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); - $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); - $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); - $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); - - //* Initialize the MySQL server connection - if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { - $conf['mysql']['master_host'] = $tmp_mysql_server_host; - $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user; - $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password; - $conf['mysql']['master_database'] = $tmp_mysql_server_database; - $finished = true; - } else { - swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); - } - } while ($finished == false); - unset($finished); - - // initialize the connection to the master database - $inst->dbmaster = new db(); - if($inst->dbmaster->linkId) $inst->dbmaster->closeConn(); - $inst->dbmaster->dbHost = $conf['mysql']["master_host"]; - $inst->dbmaster->dbName = $conf['mysql']["master_database"]; - $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"]; - $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"]; -} else { - $inst->dbmaster = $inst->db; -} - - -/* - * dump the new Database and reconfigure the server.ini - */ -updateDbAndIni(); - -/* - * Reconfigure the permisson if needed - * (if this is done at client side, only this client is updated. - * If this is done at server side, all clients are updated. - */ -//if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') { - //** Update master database rights - $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes','no'),'no'); - - if($reconfigure_master_database_rights_answer == 'yes') { - $inst->grant_master_database_rights(); - } -//} - -//** Shall the services be reconfigured during update -$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes'); - -if($reconfigure_services_answer == 'yes') { - - if($conf['services']['mail']) { - //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); - - //** Configure mailman - swriteln('Configuring Mailman'); - $inst->configure_mailman('update'); - - //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); - - if($conf['dovecot']['installed'] == true) { - //* Configure dovecot - swriteln('Configuring Dovecot'); - $inst->configure_dovecot(); - } else { - //** Configure saslauthd - swriteln('Configuring SASL'); - $inst->configure_saslauthd(); - - //** Configure PAM - swriteln('Configuring PAM'); - $inst->configure_pam(); - - //* Configure courier - swriteln('Configuring Courier'); - $inst->configure_courier(); - } - - //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); - - //** Configure Amavis - swriteln('Configuring Amavisd'); - $inst->configure_amavis(); - - //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); - } - - if($conf['services']['web']) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); - } - - if($conf['services']['dns']) { - //* Configure DNS - if($conf['powerdns']['installed'] == true) { - swriteln('Configuring PowerDNS'); - $inst->configure_powerdns(); - } elseif($conf['bind']['installed'] == true) { - swriteln('Configuring BIND'); - $inst->configure_bind(); - } else { - swriteln('Configuring MyDNS'); - $inst->configure_mydns(); - } - } - - if($conf['services']['web']) { - //** Configure Apache - swriteln('Configuring Apache'); - $inst->configure_apache(); - - //** Configure vlogger - swriteln('Configuring vlogger'); - $inst->configure_vlogger(); - - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); - } - - - //* Configure DBServer - swriteln('Configuring Database'); - $inst->configure_dbserver(); - - - //if(@is_dir('/etc/Bastille')) { - //* Configure Firewall - swriteln('Configuring Firewall'); - $inst->configure_firewall(); - //} -} - -//** Configure ISPConfig -swriteln('Updating ISPConfig'); - - -//** Customise the port ISPConfig runs on -$ispconfig_port_number = get_ispconfig_port_number(); -$conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); - -// $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n'; -if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate',array('yes','no'),'no')) == 'yes') { - $inst->make_ispconfig_ssl_cert(); -} - -$inst->install_ispconfig(); - -//** Configure Crontab -$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes','no'),'yes'); -if($update_crontab_answer == 'yes') { - swriteln('Updating Crontab'); - $inst->install_crontab(); -} - -//** Restart services: -if($reconfigure_services_answer == 'yes') { - swriteln('Restarting services ...'); - if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart'); - if($conf['services']['mail']) { - if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); - if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); - if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); - if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); - if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); - if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); - if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); - if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); - if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); - if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); - if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); - } - if($conf['services']['web']) { - if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); - if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); - } - if($conf['services']['dns']) { - if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); - if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); - if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); - } -} - -echo "Update finished.\n"; - -?> +<?php + +/* +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + ISPConfig 3 updater. +*/ + +error_reporting(E_ALL|E_STRICT); + +//** The banner on the command line +echo "\n\n".str_repeat('-',80)."\n"; +echo " _____ ___________ _____ __ _ ____ +|_ _/ ___| ___ \ / __ \ / _(_) /__ \ + | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / + | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | + _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ + \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ + __/ | + |___/ "; +echo "\n".str_repeat('-',80)."\n"; +echo "\n\n>> Update \n\n"; + +//** Include the library with the basic installer functions +require_once('lib/install.lib.php'); + +//** Include the library with the basic updater functions +require_once('lib/update.lib.php'); + +//** Include the base class of the installer class +require_once('lib/installer_base.lib.php'); + +//** Ensure that current working directory is install directory +$cur_dir = getcwd(); +if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); + +//** Install logfile +define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); +define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); + +//** Check for ISPConfig 2.x versions +if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) { + die('This software cannot be installed on a server wich runs ISPConfig 2.x.'); +} + +//** Get distribution identifier +$dist = get_distname(); + +include_once("/usr/local/ispconfig/server/lib/config.inc.php"); +$conf_old = $conf; +unset($conf); + +if($dist['id'] == '') die('Linux distribution or version not recognized.'); + +//** Include the distribution-specific installer class library and configuration +if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); +include_once('dist/lib/'.$dist['id'].'.lib.php'); +include_once('dist/conf/'.$dist['id'].'.conf.php'); + +//** Get hostname +exec('hostname -f', $tmp_out); +$conf['hostname'] = $tmp_out[0]; +unset($tmp_out); + +//** Set the mysql login information +$conf["mysql"]["host"] = $conf_old["db_host"]; +$conf["mysql"]["database"] = $conf_old["db_database"]; +$conf['mysql']['charset'] = 'utf8'; +$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; +$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; +$conf['language'] = $conf_old['language']; +if($conf['language'] == '{language}') $conf['language'] = 'en'; + +if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; +if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"]; +if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; +if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; + +//* Check if this is a master / slave setup +if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { + $conf['mysql']['master_slave_setup'] = 'y'; +} + +// Resolve the IP address of the mysql hostname. +if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); + +$conf['server_id'] = intval($conf_old["server_id"]); +$conf['ispconfig_log_priority'] = $conf_old["log_priority"]; + +$inst = new installer(); +$inst->is_update = true; + +//** Detect the installed applications +$inst->find_installed_apps(); + +echo "This application will update ISPConfig 3 on your server.\n"; + +//** Initialize the MySQL server connection +include_once('lib/mysql.lib.php'); + +//** Database update is a bit brute force and should be rebuild later ;) + +/* + * Try to read the DB-admin settings + */ +$clientdb_host = ''; +$clientdb_user = ''; +$clientdb_password = ''; +include_once("/usr/local/ispconfig/server/lib/mysql_clientdb.conf"); +$conf["mysql"]["admin_user"] = $clientdb_user; +$conf["mysql"]["admin_password"] = $clientdb_password; +$clientdb_host = ''; +$clientdb_user = ''; +$clientdb_password = ''; + +//** Ask user for mysql admin_password if empty +if( empty($conf["mysql"]["admin_password"]) ) { + + $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']); +} + +/* + * Prepare the dump of the database + */ +prepareDBDump(); + +//* initialize the database +$inst->db = new db(); + +//* initialize the master DB, if we have a multiserver setup +if($conf['mysql']['master_slave_setup'] == 'y') { + //** Get MySQL root credentials + $finished = false; + do { + $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host']); + $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user']); + $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password']); + $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database']); + + //* Initialize the MySQL server connection + if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) { + $conf['mysql']['master_host'] = $tmp_mysql_server_host; + $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user; + $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password; + $conf['mysql']['master_database'] = $tmp_mysql_server_database; + $finished = true; + } else { + swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error()); + } + } while ($finished == false); + unset($finished); + + // initialize the connection to the master database + $inst->dbmaster = new db(); + if($inst->dbmaster->linkId) $inst->dbmaster->closeConn(); + $inst->dbmaster->dbHost = $conf['mysql']["master_host"]; + $inst->dbmaster->dbName = $conf['mysql']["master_database"]; + $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"]; + $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"]; +} else { + $inst->dbmaster = $inst->db; +} + + +/* + * dump the new Database and reconfigure the server.ini + */ +updateDbAndIni(); + +/* + * Reconfigure the permisson if needed + * (if this is done at client side, only this client is updated. + * If this is done at server side, all clients are updated. + */ +//if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') { + //** Update master database rights + $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes','no'),'no'); + + if($reconfigure_master_database_rights_answer == 'yes') { + $inst->grant_master_database_rights(); + } +//} + +//** Shall the services be reconfigured during update +$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes'); + +if($reconfigure_services_answer == 'yes') { + + if($conf['services']['mail']) { + //** Configure postfix + swriteln('Configuring Postfix'); + $inst->configure_postfix('dont-create-certs'); + + //** Configure mailman + swriteln('Configuring Mailman'); + $inst->configure_mailman('update'); + + //* Configure Jailkit + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + + if($conf['dovecot']['installed'] == true) { + //* Configure dovecot + swriteln('Configuring Dovecot'); + $inst->configure_dovecot(); + } else { + //** Configure saslauthd + swriteln('Configuring SASL'); + $inst->configure_saslauthd(); + + //** Configure PAM + swriteln('Configuring PAM'); + $inst->configure_pam(); + + //* Configure courier + swriteln('Configuring Courier'); + $inst->configure_courier(); + } + + //** Configure Spamasassin + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + + //** Configure Amavis + swriteln('Configuring Amavisd'); + $inst->configure_amavis(); + + //** Configure Getmail + swriteln('Configuring Getmail'); + $inst->configure_getmail(); + } + + if($conf['services']['web']) { + //** Configure Pureftpd + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); + } + + if($conf['services']['dns']) { + //* Configure DNS + if($conf['powerdns']['installed'] == true) { + swriteln('Configuring PowerDNS'); + $inst->configure_powerdns(); + } elseif($conf['bind']['installed'] == true) { + swriteln('Configuring BIND'); + $inst->configure_bind(); + } else { + swriteln('Configuring MyDNS'); + $inst->configure_mydns(); + } + } + + if($conf['services']['web']) { + //** Configure Apache + swriteln('Configuring Apache'); + $inst->configure_apache(); + + //** Configure vlogger + swriteln('Configuring vlogger'); + $inst->configure_vlogger(); + + //** Configure apps vhost + swriteln('Configuring Apps vhost'); + $inst->configure_apps_vhost(); + } + + + //* Configure DBServer + swriteln('Configuring Database'); + $inst->configure_dbserver(); + + + //if(@is_dir('/etc/Bastille')) { + //* Configure Firewall + swriteln('Configuring Firewall'); + $inst->configure_firewall(); + //} +} + +//** Configure ISPConfig +swriteln('Updating ISPConfig'); + + +//** Customise the port ISPConfig runs on +$ispconfig_port_number = get_ispconfig_port_number(); +$conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number); + +// $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n'; +if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate',array('yes','no'),'no')) == 'yes') { + $inst->make_ispconfig_ssl_cert(); +} + +$inst->install_ispconfig(); + +//** Configure Crontab +$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes','no'),'yes'); +if($update_crontab_answer == 'yes') { + swriteln('Updating Crontab'); + $inst->install_crontab(); +} + +//** Restart services: +if($reconfigure_services_answer == 'yes') { + swriteln('Restarting services ...'); + if($conf['mysql']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mysql']['init_script'])) system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart'); + if($conf['services']['mail']) { + if($conf['postfix']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['postfix']['init_script'])) system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart'); + if($conf['saslauthd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'])) system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart'); + if($conf['amavis']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['amavis']['init_script'])) system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart'); + if($conf['clamav']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['clamav']['init_script'])) system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart'); + if($conf['courier']['courier-authdaemon'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart'); + if($conf['courier']['courier-imap'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart'); + if($conf['courier']['courier-imap-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart'); + if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart'); + if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart'); + if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart'); + if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart'); + } + if($conf['services']['web']) { + if($conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart'); + if($conf['pureftpd']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'])) system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart'); + } + if($conf['services']['dns']) { + if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mydns']['init_script'])) system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null'); + if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['powerdns']['init_script'])) system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null'); + if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['bind']['init_script'])) system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null'); + } +} + +echo "Update finished.\n"; + +?> diff --git a/interface/index.htm b/interface/index.htm index 39606dbb37..9e38208a2d 100644 --- a/interface/index.htm +++ b/interface/index.htm @@ -1,8 +1,8 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="refresh" content="0;URL=web/index.php"> -</head> -<body> -</body> -</html> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta http-equiv="refresh" content="0;URL=web/index.php"> +</head> +<body> +</body> +</html> diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 20094cf760..450f25a3ca 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -1,129 +1,129 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -class auth { - var $client_limits = null; - - public function get_user_id() - { - return $_SESSION['s']['user']['userid']; - } - - public function is_admin() { - if($_SESSION['s']['user']['typ'] == 'admin') { - return true; - } else { - return false; - } - } - - public function has_clients($userid) { - global $app, $conf; - - $userid = intval($userid); - $client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); - if($client['limit_client'] > 0) { - return true; - } else { - return false; - } - } - - //** This function adds a given group id to a given user. - public function add_group_to_user($userid,$groupid) { - global $app; - - $userid = intval($userid); - $groupid = intval($groupid); - - if($userid > 0 && $groupid > 0) { - $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); - $groups = explode(',',$user['groups']); - if(!in_array($groupid,$groups)) $groups[] = $groupid; - $groups_string = implode(',',$groups); - $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; - $app->db->query($sql); - return true; - } else { - return false; - } - } - - //** This function returns given client limit as integer, -1 means no limit - public function get_client_limit($userid, $limitname) - { - global $app; - - // simple query cache - if($this->client_limits===null) - $this->client_limits = $app->db->queryOneRecord("SELECT client.* FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); - - // isn't client -> no limit - if(!$this->client_limits) - return -1; - - if(isset($this->client_limits['limit_'.$limitname])) { - return $this->client_limits['limit_'.$limitname]; - } - } - - //** This function removes a given group id from a given user. - public function remove_group_from_user($userid,$groupid) { - global $app; - - $userid = intval($userid); - $groupid = intval($groupid); - - if($userid > 0 && $groupid > 0) { - $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); - $groups = explode(',',$user['groups']); - $key = array_search($groupid,$groups); - unset($groups[$key]); - $groups_string = implode(',',$groups); - $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; - $app->db->query($sql); - return true; - } else { - return false; - } - } - - public function check_module_permissions($module) { - // Check if the current user has the permissions to access this module - if(!stristr($_SESSION["s"]["user"]["modules"],$module)) { - // echo "LOGIN_REDIRECT:/index.php"; - header("Location: /index.php"); - exit; - } - } - -} - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +class auth { + var $client_limits = null; + + public function get_user_id() + { + return $_SESSION['s']['user']['userid']; + } + + public function is_admin() { + if($_SESSION['s']['user']['typ'] == 'admin') { + return true; + } else { + return false; + } + } + + public function has_clients($userid) { + global $app, $conf; + + $userid = intval($userid); + $client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); + if($client['limit_client'] > 0) { + return true; + } else { + return false; + } + } + + //** This function adds a given group id to a given user. + public function add_group_to_user($userid,$groupid) { + global $app; + + $userid = intval($userid); + $groupid = intval($groupid); + + if($userid > 0 && $groupid > 0) { + $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); + $groups = explode(',',$user['groups']); + if(!in_array($groupid,$groups)) $groups[] = $groupid; + $groups_string = implode(',',$groups); + $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; + $app->db->query($sql); + return true; + } else { + return false; + } + } + + //** This function returns given client limit as integer, -1 means no limit + public function get_client_limit($userid, $limitname) + { + global $app; + + // simple query cache + if($this->client_limits===null) + $this->client_limits = $app->db->queryOneRecord("SELECT client.* FROM sys_user, client WHERE sys_user.userid = $userid AND sys_user.client_id = client.client_id"); + + // isn't client -> no limit + if(!$this->client_limits) + return -1; + + if(isset($this->client_limits['limit_'.$limitname])) { + return $this->client_limits['limit_'.$limitname]; + } + } + + //** This function removes a given group id from a given user. + public function remove_group_from_user($userid,$groupid) { + global $app; + + $userid = intval($userid); + $groupid = intval($groupid); + + if($userid > 0 && $groupid > 0) { + $user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = $userid"); + $groups = explode(',',$user['groups']); + $key = array_search($groupid,$groups); + unset($groups[$key]); + $groups_string = implode(',',$groups); + $sql = "UPDATE sys_user SET groups = '$groups_string' WHERE userid = $userid"; + $app->db->query($sql); + return true; + } else { + return false; + } + } + + public function check_module_permissions($module) { + // Check if the current user has the permissions to access this module + if(!stristr($_SESSION["s"]["user"]["modules"],$module)) { + // echo "LOGIN_REDIRECT:/index.php"; + header("Location: /index.php"); + exit; + } + } + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/form.inc.php b/interface/lib/classes/form.inc.php index f0e8de6454..99f6cfb624 100644 --- a/interface/lib/classes/form.inc.php +++ b/interface/lib/classes/form.inc.php @@ -1,475 +1,475 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -/** -* Formularbehandlung -* -* Funktionen zur Umwandlung von Formulardaten -* sowie zum vorbereiten von HTML und SQL -* Ausgaben -* -* Tabellendefinition -* -* Datentypen: -* - INTEGER (Wandelt Ausdrücke in Int um) -* - DOUBLE -* - CURRENCY (Formatiert Zahlen nach Währungsnotation) -* - VARCHAR (kein weiterer Format Check) -* - DATE (Datumsformat, Timestamp Umwandlung) -* -* Formtype: -* - TEXT (normales Textfeld) -* - PASSWORD (Feldinhalt wird nicht angezeigt) -* - SELECT (Gibt Werte als option Feld aus) -* - MULTIPLE (Select-Feld mit nehreren Werten) -* -* VALUE: -* - Wert oder Array -* -* SEPARATOR -* - Trennzeichen für multiple Felder -* -* Hinweis: -* Das ID-Feld ist nicht bei den Table Values einzufügen. -* -* @package form -* @author Till Brehm -* @version 1.1 -*/ - -class form { - - /** - * Definition der Tabelle (array) - * @var tableDef - */ - var $tableDef; - - /** - * Private - * @var action - */ - var $action; - - /** - * Tabellenname (String) - * @var table_name - */ - var $table_name; - - /** - * Debug Variable - * @var debug - */ - var $debug = 0; - - /** - * name des primary Field der Tabelle (string) - * @var table_index - */ - var $table_index; - - /** - * enthält die Fehlermeldung bei Überprüfung - * der Variablen mit Regex - * @var errorMessage - */ - var $errorMessage; - - var $dateformat = "d.m.Y"; - var $formDef; - - /** - * Laden der Tabellendefinition - * - * @param file: Pfad zur Tabellendefinition - * @return true - */ - function loadTableDef($file) { - global $app,$conf; - - include_once($file); - $this->tableDef = $table; - $this->table_name = $table_name; - $this->table_index = $table_index; - return true; - } - - function loadFormDef($file) { - global $app,$conf; - - include_once($file); - $this->formDef = $form; - return true; - } - - - /** - * Konvertiert die Daten des übergebenen assoziativen - * Arrays in "menschenlesbare" Form. - * Datentyp Konvertierung, z.B. für Ausgabe in Listen. - * - * @param record - * @return record - */ - function decode($record) { - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - $new_record[$key] = stripslashes($val); - break; - - case 'DATE': - if($val > 0) { - $new_record[$key] = date($this->dateformat,$val); - } - break; - - case 'INTEGER': - $new_record[$key] = intval($val); - break; - - case 'DOUBLE': - $new_record[$key] = $val; - break; - - case 'CURRENCY': - $new_record[$key] = number_format($val, 2, ',', ''); - break; - - default: - $new_record[$key] = stripslashes($val); - } - } - - } - return $new_record; - } - - /** - * Record für Ausgabe in Formularen vorbereiten. - * - * @param record = Datensatz als Array - * @param action = NEW oder EDIT - * @return record - */ - function getHTML($record,$action = 'NEW') { - - global $app; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - $new_record = array(); - if($action == 'EDIT') { - $record = $this->decode($record); - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'],$val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $selected = ''; - foreach($vals as $tvl) { - if(trim($tvl) == trim($k)) $selected = ' SELECTED'; - } - - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($val); - } - } - } - } else { - foreach($this->tableDef as $key => $val) { - switch ($this->tableDef[$key]['formtype']) { - case 'SELECT': - if(is_array($this->tableDef[$key]['value'])) { - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - $selected = ($k == $val)?' SELECTED':''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - case 'MULTIPLE': - if(is_array($this->tableDef[$key]['value'])) { - - // aufsplitten ergebnisse - $vals = explode($this->tableDef[$key]['separator'],$val); - - // HTML schreiben - $out = ''; - foreach($this->tableDef[$key]['value'] as $k => $v) { - - $out .= "<option value='$k'>$v</option>\r\n"; - } - } - $new_record[$key] = $out; - break; - - case 'PASSWORD': - $new_record[$key] = ''; - break; - - default: - $new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']); - } - } - - } - - if($this->debug == 1) $this->dbg($new_record); - - return $new_record; - } - - /** - * Record in "maschinen lesbares" Format überführen - * und Werte gegen reguläre Ausdrücke prüfen. - * - * @param record = Datensatz als Array - * @return record - */ - function encode($record) { - - $this->errorMessage = ''; - - if(is_array($record)) { - foreach($record as $key => $val) { - switch ($this->tableDef[$key]['datatype']) { - case 'VARCHAR': - if(!is_array($val)) { - $new_record[$key] = mysql_real_escape_string($val); - } else { - $new_record[$key] = implode($this->tableDef[$key]['separator'],$val); - } - break; - case 'DATE': - if($val > 0) { - list($tag,$monat,$jahr) = explode('.',$val); - $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); - } - break; - case 'INTEGER': - $new_record[$key] = intval($val); - break; - case 'DOUBLE': - $new_record[$key] = mysql_real_escape_string($val); - break; - case 'CURRENCY': - $new_record[$key] = str_replace(",",".",$val); - break; - } - - if($this->tableDef[$key]['regex'] != '') { - // Enable that "." matches also newlines - $this->tableDef[$key]['regex'] .= 's'; - if(!preg_match($this->tableDef[$key]['regex'], $val)) { - $this->errorMessage .= $this->tableDef[$key]['errmsg']."<br>\r\n"; - } - } - } - - } - return $new_record; - } - - /** - * SQL Statement für Record erzeugen. - * - * @param record = Datensatz als Array - * @param action = INSERT oder UPDATE - * @param primary_id - * @return record - */ - function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { - - global $app; - - $record = $this->encode($record); - $sql_insert_key = ''; - $sql_insert_val = ''; - $sql_update = ''; - - if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); - - // gehe durch alle Felder des Records - if(is_array($record)) { - foreach($record as $key => $val) { - // Wenn es kein leeres Passwortfeld ist - if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { - // gehe durch alle Felder der TableDef - foreach($this->tableDef as $tk => $tv) { - // Wenn Feld in TableDef enthalten ist - if($tk == $key) { - // Erzeuge Insert oder Update Quelltext - if($action == "INSERT") { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_insert_key .= "`$key`, "; - // $sql_insert_val .= "'$val', "; - } else { - $sql_insert_key .= "`$key`, "; - $sql_insert_val .= "'$val', "; - } - - } else { - - if($this->tableDef[$key]['formtype'] == 'PASSWORD') { - $sql_update .= "`$key` = md5('$val'), "; - //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { - // $val = implode($this->tableDef[$key]['separator'],$val); - // $sql_update .= "`$key` = '$val', "; - } else { - $sql_update .= "`$key` = '$val', "; - } - - } - } - } - } - } - } - - // Füge Backticks nur bei unvollständigen Tabellennamen ein - if(stristr($this->table_name,'.')) { - $escape = ''; - } else { - $escape = '`'; - } - - - if($action == "INSERT") { - $sql_insert_key = substr($sql_insert_key,0,-2); - $sql_insert_val = substr($sql_insert_val,0,-2); - $sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; - } else { - if($primary_id != 0) { - $sql_update = substr($sql_update,0,-2); - $sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id; - if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; - } else { - $app->error("Primary ID fehlt!"); - } - } - - return $sql; - } - - /** - * Debugging arrays. - * - * @param array_data - */ - function dbg($array_data) { - - echo "<pre>"; - print_r($array_data); - echo "</pre>"; - - } - - - function showForm() { - global $app,$conf; - - if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); - - if($this->errorMessage == '') { - // wenn kein Fehler vorliegt - if($_REQUEST["next_tab"] != '') { - // wenn nächster Tab bekannt - $active_tab = $_REQUEST["next_tab"]; - } else { - // ansonsten ersten tab nehmen - $active_tab = $this->formDef["tabs"][0]["name"]; - } - } else { - // bei Fehlern den gleichen Tab nochmal anzeigen - $active_tab = $_SESSION["s"]["form"]["tab"]; - } - - // definiere Tabs - foreach( $this->formDef["tabs"] as $tab) { - - if($tab["name"] == $active_tab) { - $app->tpl->setInclude('content_tpl',$tab["template"]); - $tab["active"] = 1; - $_SESSION["s"]["form"]["tab"] = $tab["name"]; - } else { - $tab["active"] = 0; - } - - $frmTab[] = $tab; - } - - // setze Loop - $app->tpl->setLoop("formTab", $frmTab); - - // Formular action setzen - $app->tpl->setVar('form_action',$this->formDef["action"]); - } - - -} - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +/** +* Formularbehandlung +* +* Funktionen zur Umwandlung von Formulardaten +* sowie zum vorbereiten von HTML und SQL +* Ausgaben +* +* Tabellendefinition +* +* Datentypen: +* - INTEGER (Wandelt Ausdrücke in Int um) +* - DOUBLE +* - CURRENCY (Formatiert Zahlen nach Währungsnotation) +* - VARCHAR (kein weiterer Format Check) +* - DATE (Datumsformat, Timestamp Umwandlung) +* +* Formtype: +* - TEXT (normales Textfeld) +* - PASSWORD (Feldinhalt wird nicht angezeigt) +* - SELECT (Gibt Werte als option Feld aus) +* - MULTIPLE (Select-Feld mit nehreren Werten) +* +* VALUE: +* - Wert oder Array +* +* SEPARATOR +* - Trennzeichen für multiple Felder +* +* Hinweis: +* Das ID-Feld ist nicht bei den Table Values einzufügen. +* +* @package form +* @author Till Brehm +* @version 1.1 +*/ + +class form { + + /** + * Definition der Tabelle (array) + * @var tableDef + */ + var $tableDef; + + /** + * Private + * @var action + */ + var $action; + + /** + * Tabellenname (String) + * @var table_name + */ + var $table_name; + + /** + * Debug Variable + * @var debug + */ + var $debug = 0; + + /** + * name des primary Field der Tabelle (string) + * @var table_index + */ + var $table_index; + + /** + * enthält die Fehlermeldung bei Überprüfung + * der Variablen mit Regex + * @var errorMessage + */ + var $errorMessage; + + var $dateformat = "d.m.Y"; + var $formDef; + + /** + * Laden der Tabellendefinition + * + * @param file: Pfad zur Tabellendefinition + * @return true + */ + function loadTableDef($file) { + global $app,$conf; + + include_once($file); + $this->tableDef = $table; + $this->table_name = $table_name; + $this->table_index = $table_index; + return true; + } + + function loadFormDef($file) { + global $app,$conf; + + include_once($file); + $this->formDef = $form; + return true; + } + + + /** + * Konvertiert die Daten des übergebenen assoziativen + * Arrays in "menschenlesbare" Form. + * Datentyp Konvertierung, z.B. für Ausgabe in Listen. + * + * @param record + * @return record + */ + function decode($record) { + if(is_array($record)) { + foreach($record as $key => $val) { + switch ($this->tableDef[$key]['datatype']) { + case 'VARCHAR': + $new_record[$key] = stripslashes($val); + break; + + case 'DATE': + if($val > 0) { + $new_record[$key] = date($this->dateformat,$val); + } + break; + + case 'INTEGER': + $new_record[$key] = intval($val); + break; + + case 'DOUBLE': + $new_record[$key] = $val; + break; + + case 'CURRENCY': + $new_record[$key] = number_format($val, 2, ',', ''); + break; + + default: + $new_record[$key] = stripslashes($val); + } + } + + } + return $new_record; + } + + /** + * Record für Ausgabe in Formularen vorbereiten. + * + * @param record = Datensatz als Array + * @param action = NEW oder EDIT + * @return record + */ + function getHTML($record,$action = 'NEW') { + + global $app; + + if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); + + $new_record = array(); + if($action == 'EDIT') { + $record = $this->decode($record); + if(is_array($record)) { + foreach($record as $key => $val) { + switch ($this->tableDef[$key]['formtype']) { + case 'SELECT': + if(is_array($this->tableDef[$key]['value'])) { + $out = ''; + foreach($this->tableDef[$key]['value'] as $k => $v) { + $selected = ($k == $val)?' SELECTED':''; + $out .= "<option value='$k'$selected>$v</option>\r\n"; + } + } + $new_record[$key] = $out; + break; + case 'MULTIPLE': + if(is_array($this->tableDef[$key]['value'])) { + + // aufsplitten ergebnisse + $vals = explode($this->tableDef[$key]['separator'],$val); + + // HTML schreiben + $out = ''; + foreach($this->tableDef[$key]['value'] as $k => $v) { + + $selected = ''; + foreach($vals as $tvl) { + if(trim($tvl) == trim($k)) $selected = ' SELECTED'; + } + + $out .= "<option value='$k'$selected>$v</option>\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'PASSWORD': + $new_record[$key] = ''; + break; + + default: + $new_record[$key] = htmlspecialchars($val); + } + } + } + } else { + foreach($this->tableDef as $key => $val) { + switch ($this->tableDef[$key]['formtype']) { + case 'SELECT': + if(is_array($this->tableDef[$key]['value'])) { + $out = ''; + foreach($this->tableDef[$key]['value'] as $k => $v) { + $selected = ($k == $val)?' SELECTED':''; + $out .= "<option value='$k'$selected>$v</option>\r\n"; + } + } + $new_record[$key] = $out; + break; + case 'MULTIPLE': + if(is_array($this->tableDef[$key]['value'])) { + + // aufsplitten ergebnisse + $vals = explode($this->tableDef[$key]['separator'],$val); + + // HTML schreiben + $out = ''; + foreach($this->tableDef[$key]['value'] as $k => $v) { + + $out .= "<option value='$k'>$v</option>\r\n"; + } + } + $new_record[$key] = $out; + break; + + case 'PASSWORD': + $new_record[$key] = ''; + break; + + default: + $new_record[$key] = htmlspecialchars($this->tableDef[$key]['value']); + } + } + + } + + if($this->debug == 1) $this->dbg($new_record); + + return $new_record; + } + + /** + * Record in "maschinen lesbares" Format überführen + * und Werte gegen reguläre Ausdrücke prüfen. + * + * @param record = Datensatz als Array + * @return record + */ + function encode($record) { + + $this->errorMessage = ''; + + if(is_array($record)) { + foreach($record as $key => $val) { + switch ($this->tableDef[$key]['datatype']) { + case 'VARCHAR': + if(!is_array($val)) { + $new_record[$key] = mysql_real_escape_string($val); + } else { + $new_record[$key] = implode($this->tableDef[$key]['separator'],$val); + } + break; + case 'DATE': + if($val > 0) { + list($tag,$monat,$jahr) = explode('.',$val); + $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); + } + break; + case 'INTEGER': + $new_record[$key] = intval($val); + break; + case 'DOUBLE': + $new_record[$key] = mysql_real_escape_string($val); + break; + case 'CURRENCY': + $new_record[$key] = str_replace(",",".",$val); + break; + } + + if($this->tableDef[$key]['regex'] != '') { + // Enable that "." matches also newlines + $this->tableDef[$key]['regex'] .= 's'; + if(!preg_match($this->tableDef[$key]['regex'], $val)) { + $this->errorMessage .= $this->tableDef[$key]['errmsg']."<br>\r\n"; + } + } + } + + } + return $new_record; + } + + /** + * SQL Statement für Record erzeugen. + * + * @param record = Datensatz als Array + * @param action = INSERT oder UPDATE + * @param primary_id + * @return record + */ + function getSQL($record, $action = 'INSERT', $primary_id = 0, $sql_ext_where = '') { + + global $app; + + $record = $this->encode($record); + $sql_insert_key = ''; + $sql_insert_val = ''; + $sql_update = ''; + + if(!is_array($this->tableDef)) $app->error("Keine Tabellendefinition vorhanden."); + + // gehe durch alle Felder des Records + if(is_array($record)) { + foreach($record as $key => $val) { + // Wenn es kein leeres Passwortfeld ist + if (!($this->tableDef[$key]['formtype'] == 'PASSWORD' and $val == '')) { + // gehe durch alle Felder der TableDef + foreach($this->tableDef as $tk => $tv) { + // Wenn Feld in TableDef enthalten ist + if($tk == $key) { + // Erzeuge Insert oder Update Quelltext + if($action == "INSERT") { + + if($this->tableDef[$key]['formtype'] == 'PASSWORD') { + $sql_insert_key .= "`$key`, "; + $sql_insert_val .= "md5('$val'), "; + //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { + // $val = implode($this->tableDef[$key]['separator'],$val); + // $sql_insert_key .= "`$key`, "; + // $sql_insert_val .= "'$val', "; + } else { + $sql_insert_key .= "`$key`, "; + $sql_insert_val .= "'$val', "; + } + + } else { + + if($this->tableDef[$key]['formtype'] == 'PASSWORD') { + $sql_update .= "`$key` = md5('$val'), "; + //} elseif($this->tableDef[$key]['formtype'] == 'MULTIPLE') { + // $val = implode($this->tableDef[$key]['separator'],$val); + // $sql_update .= "`$key` = '$val', "; + } else { + $sql_update .= "`$key` = '$val', "; + } + + } + } + } + } + } + } + + // Füge Backticks nur bei unvollständigen Tabellennamen ein + if(stristr($this->table_name,'.')) { + $escape = ''; + } else { + $escape = '`'; + } + + + if($action == "INSERT") { + $sql_insert_key = substr($sql_insert_key,0,-2); + $sql_insert_val = substr($sql_insert_val,0,-2); + $sql = "INSERT INTO ".$escape.$this->table_name.$escape." ($sql_insert_key) VALUES ($sql_insert_val)"; + } else { + if($primary_id != 0) { + $sql_update = substr($sql_update,0,-2); + $sql = "UPDATE ".$escape.$this->table_name.$escape." SET ".$sql_update." WHERE ".$this->table_index ." = ".$primary_id; + if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; + } else { + $app->error("Primary ID fehlt!"); + } + } + + return $sql; + } + + /** + * Debugging arrays. + * + * @param array_data + */ + function dbg($array_data) { + + echo "<pre>"; + print_r($array_data); + echo "</pre>"; + + } + + + function showForm() { + global $app,$conf; + + if(!is_array($this->formDef)) die("Form Definition wurde nicht geladen."); + + if($this->errorMessage == '') { + // wenn kein Fehler vorliegt + if($_REQUEST["next_tab"] != '') { + // wenn nächster Tab bekannt + $active_tab = $_REQUEST["next_tab"]; + } else { + // ansonsten ersten tab nehmen + $active_tab = $this->formDef["tabs"][0]["name"]; + } + } else { + // bei Fehlern den gleichen Tab nochmal anzeigen + $active_tab = $_SESSION["s"]["form"]["tab"]; + } + + // definiere Tabs + foreach( $this->formDef["tabs"] as $tab) { + + if($tab["name"] == $active_tab) { + $app->tpl->setInclude('content_tpl',$tab["template"]); + $tab["active"] = 1; + $_SESSION["s"]["form"]["tab"] = $tab["name"]; + } else { + $tab["active"] = 0; + } + + $frmTab[] = $tab; + } + + // setze Loop + $app->tpl->setLoop("formTab", $frmTab); + + // Formular action setzen + $app->tpl->setVar('form_action',$this->formDef["action"]); + } + + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 7de83e9959..1839676eb3 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -1,111 +1,111 @@ -<?php - -/* -Copyright (c) 2010, Till Brehm, projektfarm Gmbh -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. -*/ - -//* The purpose of this library is to provide some general functions. -//* This class is loaded automatically by the ispconfig framework. - -class functions { - - - public function mail($to, $subject, $text, $from, $filepath = '', $filetype = 'application/pdf', $filename = '') { - global $app,$conf; - - if($conf['demo_mode'] == true) $app->error("Mail sending disabled in demo mode."); - - if($filepath != '') { - if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath); - - $content = file_get_contents($filepath); - $content = chunk_split(base64_encode($content)); - $uid = strtoupper(md5(uniqid(time()))); - - if($filename == '') { - $path_parts = pathinfo($filepath); - $filename = $path_parts["basename"]; - unset($path_parts); - } - - $header = "From: $from\nReply-To: $from\n"; - $header .= "MIME-Version: 1.0\n"; - $header .= "Content-Type: multipart/mixed; boundary=$uid\n"; - - $header .= "--$uid\n"; - $header .= "Content-Type: text/plain\n"; - $header .= "Content-Transfer-Encoding: 8bit\n\n"; - $header .= "$text\n"; - - $header .= "--$uid\n"; - $header .= "Content-Type: $filetype; name=\"$filename\"\n"; - - $header .= "Content-Transfer-Encoding: base64\n"; - $header .= "Content-Disposition: attachment; filename=\"$filename\"\n\n"; - $header .= "$content\n"; - - $header .= "--$uid--"; - - mail($to, $subject, "", $header); - } else { - $header = "From: $from\nReply-To: $from\n"; - mail($to, $subject, $text, $header); - } - - return true; - } - - public function array_merge($array1,$array2) { - $out = $array1; - foreach($array2 as $key => $val) { - $out[$key] = $val; - } - return $out; - } - - public function currency_format($number) { - global $app; - $number_format_decimals = (int)$app->lng('number_format_decimals'); - $number_format_dec_point = $app->lng('number_format_dec_point'); - $number_format_thousands_sep = $app->lng('number_format_thousands_sep'); - if($number_format_thousands_sep == 'number_format_thousands_sep') $number_format_thousands_sep = ''; - return number_format((double)$number, $number_format_decimals, $number_format_dec_point, $number_format_thousands_sep); - } - - public function get_ispconfig_url() { - $url = (stristr($_SERVER['SERVER_PROTOCOL'],'HTTPS'))?'https':'http'; - $url .= '://'.$_SERVER['SERVER_NAME']; - if($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) { - $url .= ':'.$_SERVER['SERVER_PORT']; - } - return $url; - } - - -} - +<?php + +/* +Copyright (c) 2010, Till Brehm, projektfarm Gmbh +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. +*/ + +//* The purpose of this library is to provide some general functions. +//* This class is loaded automatically by the ispconfig framework. + +class functions { + + + public function mail($to, $subject, $text, $from, $filepath = '', $filetype = 'application/pdf', $filename = '') { + global $app,$conf; + + if($conf['demo_mode'] == true) $app->error("Mail sending disabled in demo mode."); + + if($filepath != '') { + if(!file_exists($filepath)) $app->error("Mail attachement does not exist ".$filepath); + + $content = file_get_contents($filepath); + $content = chunk_split(base64_encode($content)); + $uid = strtoupper(md5(uniqid(time()))); + + if($filename == '') { + $path_parts = pathinfo($filepath); + $filename = $path_parts["basename"]; + unset($path_parts); + } + + $header = "From: $from\nReply-To: $from\n"; + $header .= "MIME-Version: 1.0\n"; + $header .= "Content-Type: multipart/mixed; boundary=$uid\n"; + + $header .= "--$uid\n"; + $header .= "Content-Type: text/plain\n"; + $header .= "Content-Transfer-Encoding: 8bit\n\n"; + $header .= "$text\n"; + + $header .= "--$uid\n"; + $header .= "Content-Type: $filetype; name=\"$filename\"\n"; + + $header .= "Content-Transfer-Encoding: base64\n"; + $header .= "Content-Disposition: attachment; filename=\"$filename\"\n\n"; + $header .= "$content\n"; + + $header .= "--$uid--"; + + mail($to, $subject, "", $header); + } else { + $header = "From: $from\nReply-To: $from\n"; + mail($to, $subject, $text, $header); + } + + return true; + } + + public function array_merge($array1,$array2) { + $out = $array1; + foreach($array2 as $key => $val) { + $out[$key] = $val; + } + return $out; + } + + public function currency_format($number) { + global $app; + $number_format_decimals = (int)$app->lng('number_format_decimals'); + $number_format_dec_point = $app->lng('number_format_dec_point'); + $number_format_thousands_sep = $app->lng('number_format_thousands_sep'); + if($number_format_thousands_sep == 'number_format_thousands_sep') $number_format_thousands_sep = ''; + return number_format((double)$number, $number_format_decimals, $number_format_dec_point, $number_format_thousands_sep); + } + + public function get_ispconfig_url() { + $url = (stristr($_SERVER['SERVER_PROTOCOL'],'HTTPS'))?'https':'http'; + $url .= '://'.$_SERVER['SERVER_NAME']; + if($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) { + $url .= ':'.$_SERVER['SERVER_PORT']; + } + return $url; + } + + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/plugin_base.inc.php b/interface/lib/classes/plugin_base.inc.php index cde853fc87..5b69e03c40 100644 --- a/interface/lib/classes/plugin_base.inc.php +++ b/interface/lib/classes/plugin_base.inc.php @@ -1,64 +1,64 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -class plugin_base { - - var $plugin_name; - var $options; - var $form; - - function onLoad() { - - } - - function onShow() { - - } - - function onInsert() { - - } - - function onUpdate() { - - } - - function onDelete() { - - } - - function setOptions($plugin_name, $options) { - $this->options = $options; - $this->plugin_name = $plugin_name; - } - -} - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +class plugin_base { + + var $plugin_name; + var $options; + var $form; + + function onLoad() { + + } + + function onShow() { + + } + + function onInsert() { + + } + + function onUpdate() { + + } + + function onDelete() { + + } + + function setOptions($plugin_name, $options) { + $this->options = $options; + $this->plugin_name = $plugin_name; + } + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/plugin_dbhistory.inc.php b/interface/lib/classes/plugin_dbhistory.inc.php index 876dcaf048..ebd9e745e6 100644 --- a/interface/lib/classes/plugin_dbhistory.inc.php +++ b/interface/lib/classes/plugin_dbhistory.inc.php @@ -1,69 +1,69 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -class plugin_dbhistory extends plugin_base { - - var $module; - var $form; - var $tab; - var $record_id; - var $formdef; - var $options; - - function onShow() { - - global $app, $conf; - - $content = ''; - - $db_table = $app->tform->formDef["db_table"]; - $db_table_idx = $app->tform->formDef["db_table_idx"]; - $primary_id = $this->form->id; - if($_SESSION["s"]["user"]["typ"] == 'admin') { - $sql = "SELECT action, tstamp, user, data FROM sys_datalog WHERE dbtable = '".$db_table."' AND dbidx = '".$db_table_idx.":".$primary_id."'"; - } else { - $sql = "SELECT action, tstamp, user, data FROM sys_datalog WHERE user = '".$_SESSION["s"]["user"]["username"]."' dbtable = '".$db_table."' AND dbidx = '".$db_table_idx.":".$primary_id."'"; - } - - $records = $app->db->queryAllRecords($sql); - if(is_array($records)) { - $content .= '<table>'; - foreach($records as $rec) { - $content .= "<tr><td>".date("d.m.Y",$rec["tstamp"])."</td><td>".$rec["user"]."</td></tr>"; - } - $content .= '</table>'; - } - - return $content; - - } -} - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +class plugin_dbhistory extends plugin_base { + + var $module; + var $form; + var $tab; + var $record_id; + var $formdef; + var $options; + + function onShow() { + + global $app, $conf; + + $content = ''; + + $db_table = $app->tform->formDef["db_table"]; + $db_table_idx = $app->tform->formDef["db_table_idx"]; + $primary_id = $this->form->id; + if($_SESSION["s"]["user"]["typ"] == 'admin') { + $sql = "SELECT action, tstamp, user, data FROM sys_datalog WHERE dbtable = '".$db_table."' AND dbidx = '".$db_table_idx.":".$primary_id."'"; + } else { + $sql = "SELECT action, tstamp, user, data FROM sys_datalog WHERE user = '".$_SESSION["s"]["user"]["username"]."' dbtable = '".$db_table."' AND dbidx = '".$db_table_idx.":".$primary_id."'"; + } + + $records = $app->db->queryAllRecords($sql); + if(is_array($records)) { + $content .= '<table>'; + foreach($records as $rec) { + $content .= "<tr><td>".date("d.m.Y",$rec["tstamp"])."</td><td>".$rec["user"]."</td></tr>"; + } + $content .= '</table>'; + } + + return $content; + + } +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 0a56dcf995..ce9aa4a2ef 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -1,150 +1,150 @@ -<?php - -/* -Copyright (c) 2007 - 2009, Till Brehm, projektfarm Gmbh -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. - ---UPDATED 08.2009-- -Full SOAP support for ISPConfig 3.1.4 b -Updated by Arkadiusz Roch & Artur Edelman -Copyright (c) Tri-Plex technology - -*/ - -class remoting { - - //* remote session timeout in seconds - private $session_timeout = 600; - - private $server; - public $oldDataRecord; - public $dataRecord; - public $id; - - /* - These variables shall stay global. - Please do not make them private variables. - - private $app; - private $conf; - */ - - public function __construct() - { - global $server; - $this->server = $server; - /* - $this->app = $app; - $this->conf = $conf; - */ - } - - //* remote login function - public function login($username, $password) - { - global $app, $conf, $server; - - if(empty($username)) { - $this->server->fault('login_username_empty', 'The login username is empty'); - return false; - } - - if(empty($password)) { - $this->server->fault('login_password_empty', 'The login password is empty'); - return false; - } - - //* Delete old remoting sessions - $sql = "DELETE FROM remote_session WHERE tstamp < ".time(); - $app->db->query($sql); - - $username = $app->db->quote($username); - $password = $app->db->quote($password); - - $sql = "SELECT * FROM remote_user WHERE remote_username = '$username' and remote_password = md5('$password')"; - $remote_user = $app->db->queryOneRecord($sql); - if($remote_user['remote_userid'] > 0) { - //* Create a remote user session - srand ((double)microtime()*1000000); - $remote_session = md5(rand()); - $remote_userid = $remote_user['remote_userid']; - $remote_functions = $remote_user['remote_functions']; - $tstamp = time() + $this->session_timeout; - $sql = 'INSERT INTO remote_session (remote_session,remote_userid,remote_functions,tstamp' - .') VALUES (' - ." '$remote_session',$remote_userid,'$remote_functions',$tstamp)"; - $app->db->query($sql); - return $remote_session; - } else { - $this->server->fault('login_failed', 'The login failed. Username or password wrong.'); - return false; - } - - } - - //* remote logout function - public function logout($session_id) - { - global $app; - - if(empty($session_id)) { - $this->server->fault('session_id_empty', 'The SessionID is empty.'); - return false; - } - - $session_id = $app->db->quote($session_id); - - $sql = "DELETE FROM remote_session WHERE remote_session = '$session_id'"; - $app->db->query($sql); - return ($app->db->affectedRows() == 1); - } - - - /** - Gets the server configuration - @param int session id - @param int server id - @param string section of the config field in the server table. Could be 'web', 'dns', 'mail', 'dns', 'cron', etc - @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function server_get($session_id, $server_id, $section ='') { - global $app; - if(!$this->checkPerm($session_id, 'server_get')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if (!empty($session_id) && !empty($server_id)) { - $app->uses('remoting_lib , getconf'); - $section_config = $app->getconf->get_server_config($server_id,$section); - return $section_config; - } else { - return false; - } - } - +<?php + +/* +Copyright (c) 2007 - 2009, Till Brehm, projektfarm Gmbh +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. + +--UPDATED 08.2009-- +Full SOAP support for ISPConfig 3.1.4 b +Updated by Arkadiusz Roch & Artur Edelman +Copyright (c) Tri-Plex technology + +*/ + +class remoting { + + //* remote session timeout in seconds + private $session_timeout = 600; + + private $server; + public $oldDataRecord; + public $dataRecord; + public $id; + + /* + These variables shall stay global. + Please do not make them private variables. + + private $app; + private $conf; + */ + + public function __construct() + { + global $server; + $this->server = $server; + /* + $this->app = $app; + $this->conf = $conf; + */ + } + + //* remote login function + public function login($username, $password) + { + global $app, $conf, $server; + + if(empty($username)) { + $this->server->fault('login_username_empty', 'The login username is empty'); + return false; + } + + if(empty($password)) { + $this->server->fault('login_password_empty', 'The login password is empty'); + return false; + } + + //* Delete old remoting sessions + $sql = "DELETE FROM remote_session WHERE tstamp < ".time(); + $app->db->query($sql); + + $username = $app->db->quote($username); + $password = $app->db->quote($password); + + $sql = "SELECT * FROM remote_user WHERE remote_username = '$username' and remote_password = md5('$password')"; + $remote_user = $app->db->queryOneRecord($sql); + if($remote_user['remote_userid'] > 0) { + //* Create a remote user session + srand ((double)microtime()*1000000); + $remote_session = md5(rand()); + $remote_userid = $remote_user['remote_userid']; + $remote_functions = $remote_user['remote_functions']; + $tstamp = time() + $this->session_timeout; + $sql = 'INSERT INTO remote_session (remote_session,remote_userid,remote_functions,tstamp' + .') VALUES (' + ." '$remote_session',$remote_userid,'$remote_functions',$tstamp)"; + $app->db->query($sql); + return $remote_session; + } else { + $this->server->fault('login_failed', 'The login failed. Username or password wrong.'); + return false; + } + + } + + //* remote logout function + public function logout($session_id) + { + global $app; + + if(empty($session_id)) { + $this->server->fault('session_id_empty', 'The SessionID is empty.'); + return false; + } + + $session_id = $app->db->quote($session_id); + + $sql = "DELETE FROM remote_session WHERE remote_session = '$session_id'"; + $app->db->query($sql); + return ($app->db->affectedRows() == 1); + } + + + /** + Gets the server configuration + @param int session id + @param int server id + @param string section of the config field in the server table. Could be 'web', 'dns', 'mail', 'dns', 'cron', etc + @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function server_get($session_id, $server_id, $section ='') { + global $app; + if(!$this->checkPerm($session_id, 'server_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if (!empty($session_id) && !empty($server_id)) { + $app->uses('remoting_lib , getconf'); + $section_config = $app->getconf->get_server_config($server_id,$section); + return $section_config; + } else { + return false; + } + } + public function server_get_serverid_by_ip($session_id, $ipaddress) { global $app; @@ -157,53 +157,53 @@ class remoting { return $all; } - //* Get mail domain details - public function mail_domain_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_domain_get')) { - $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('../mail/form/mail_domain.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a mail domain - public function mail_domain_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'mail_domain_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $primary_id = $this->insertQuery('../mail/form/mail_domain.tform.php',$client_id,$params); - return $primary_id; - } - - //* Update a mail domain - public function mail_domain_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'mail_domain_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_domain.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - //* Delete a mail domain - public function mail_domain_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'mail_domain_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_domain.tform.php', $primary_id); - return $affected_rows; - } - + //* Get mail domain details + public function mail_domain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_domain_get')) { + $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('../mail/form/mail_domain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a mail domain + public function mail_domain_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'mail_domain_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $primary_id = $this->insertQuery('../mail/form/mail_domain.tform.php',$client_id,$params); + return $primary_id; + } + + //* Update a mail domain + public function mail_domain_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'mail_domain_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_domain.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + //* Delete a mail domain + public function mail_domain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'mail_domain_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_domain.tform.php', $primary_id); + return $affected_rows; + } + //* Get mail mailinglist details public function mail_mailinglist_get($session_id, $primary_id) { @@ -251,2342 +251,2342 @@ class remoting { return $affected_rows; } - //* Get mail user details - public function mail_user_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_user_get')) { - $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('../mail/form/mail_user.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - - //* dodanie uzytkownika email - public function mail_user_add($session_id, $client_id, $params){ - if (!$this->checkPerm($session_id, 'mail_user_add')){ - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_user.tform.php', $client_id, $params); - return $affected_rows; - } - - //* edycja uzytkownika email - public function mail_user_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_user_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_user.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - //*usuniecie uzytkownika emial - public function mail_user_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_user_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_user.tform.php', $primary_id); - return $affected_rows; - } - - //* Get mail user filter details - public function mail_user_filter_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_user_filter_get')) { - $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('../mail/form/mail_user_filter.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - public function mail_user_filter_add($session_id, $client_id, $params) - { - global $app; - if (!$this->checkPerm($session_id, 'mail_user_filter_add')){ - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_user_filter.tform.php', $client_id, $params,'mail:mail_user_filter:on_after_insert'); - // $app->plugin->raiseEvent('mail:mail_user_filter:on_after_insert',$this); - return $affected_rows; - } - - public function mail_user_filter_update($session_id, $client_id, $primary_id, $params) - { - global $app; - if (!$this->checkPerm($session_id, 'mail_user_filter_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_user_filter.tform.php', $client_id, $primary_id, $params,'mail:mail_user_filter:on_after_update'); - // $app->plugin->raiseEvent('mail:mail_user_filter:on_after_update',$this); - return $affected_rows; - } - - public function mail_user_filter_delete($session_id, $primary_id) - { - global $app; - if (!$this->checkPerm($session_id, 'mail_user_filter_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_user_filter.tform.php', $primary_id); - $app->plugin->raiseEvent('mail:mail_user_filter:on_after_delete',$this); - return $affected_rows; - } - - //* Get alias details - public function mail_alias_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_alias_get')) { - $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('../mail/form/mail_alias.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* aliasy email - public function mail_alias_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_alias_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_alias.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_alias_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_alias_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_alias.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - public function mail_alias_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_alias_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_alias.tform.php', $primary_id); - return $affected_rows; - } - - //* Get mail forwarding details - public function mail_forward_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_forward_get')) { - $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('../mail/form/mail_forward.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* przekierowania email - public function mail_forward_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_forward_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_forward.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_forward_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_forward_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_forward.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_forward_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_forward_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_forward.tform.php', $primary_id); - return $affected_rows; - } - - //* Get catchall details - public function mail_catchall_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_catchall_get')) { - $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('../mail/form/mail_domain_catchall.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* catchall e-mail - public function mail_catchall_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_catchall_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_domain_catchall.tform.php', $client_id, $params); - return $affected_rows; - } - - public function mail_catchall_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_catchall_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_domain_catchall.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - public function mail_catchall_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_catchall_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_domain_catchall.tform.php', $primary_id); - return $affected_rows; - } - - //* Get transport details - public function mail_transport_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_transport_get')) { - $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('../mail/form/mail_transport.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* przeniesienia e-mail - public function mail_transport_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_transport_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_transport.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_transport_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_transport_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_transport.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_transport_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_transport_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_transport.tform.php', $primary_id); - return $affected_rows; - } - - //* Get spamfilter whitelist details - public function mail_spamfilter_whitelist_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_get')) { - $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('../mail/form/spamfilter_whitelist.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* biaÅ‚a lista e-mail - public function mail_spamfilter_whitelist_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/spamfilter_whitelist.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_whitelist_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/spamfilter_whitelist.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_whitelist_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/spamfilter_whitelist.tform.php', $primary_id); - return $affected_rows; - } - - //* Get spamfilter blacklist details - public function mail_spamfilter_blacklist_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_get')) { - $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('../mail/form/spamfilter_blacklist.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* czarna lista e-mail - public function mail_spamfilter_blacklist_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/spamfilter_blacklist.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_blacklist_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/spamfilter_blacklist.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_blacklist_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/spamfilter_blacklist.tform.php', $primary_id); - return $affected_rows; - } - - //* Get spamfilter user details - public function mail_spamfilter_user_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_spamfilter_user_get')) { - $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('../mail/form/spamfilter_users.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* filtr spamu użytkowników e-mail - public function mail_spamfilter_user_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_user_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/spamfilter_users.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_user_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_user_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/spamfilter_users.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_spamfilter_user_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_spamfilter_user_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/spamfilter_users.tform.php', $primary_id); - return $affected_rows; - } - - //* Get policy details - public function mail_policy_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_policy_get')) { - $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('../mail/form/spamfilter_policy.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* polityki filtrów spamu e-mail - public function mail_policy_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_policy_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/spamfilter_policy.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_policy_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_policy_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/spamfilter_policy.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_policy_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_policy_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/spamfilter_policy.tform.php', $primary_id); - return $affected_rows; - } - - //* Get fetchmail details - public function mail_fetchmail_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_fetchmail_get')) { - $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('../mail/form/mail_get.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* fetchmail - public function mail_fetchmail_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_fetchmail_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_get.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_fetchmail_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_fetchmail_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_get.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_fetchmail_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_fetchmail_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_get.tform.php', $primary_id); - return $affected_rows; - } - - //* Get whitelist details - public function mail_whitelist_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_whitelist_get')) { - $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('../mail/form/mail_whitelist.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* wpisy biaÅ‚ej listy - public function mail_whitelist_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_whitelist_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_whitelist.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_whitelist_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_whitelist_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_whitelist.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_whitelist_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_whitelist_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_whitelist.tform.php', $primary_id); - return $affected_rows; - } - - //* Get Blacklist details - public function mail_blacklist_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_blacklist_get')) { - $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('../mail/form/mail_blacklist.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* wpisy biaÅ‚ej listy - public function mail_blacklist_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_blacklist_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_blacklist.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_blacklist_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_blacklist_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_blacklist.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_blacklist_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_blacklist_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_blacklist.tform.php', $primary_id); - return $affected_rows; - } - - //* Get filter details - public function mail_filter_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'mail_filter_get')) { - $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('../mail/form/mail_content_filter.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* wpisy filtrow e-mail - public function mail_filter_add($session_id, $client_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_filter_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->insertQuery('../mail/form/mail_content_filter.tform.php', $client_id, $params); - return $affected_rows; - } - - - public function mail_filter_update($session_id, $client_id, $primary_id, $params) - { - if (!$this->checkPerm($session_id, 'mail_filter_update')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../mail/form/mail_content_filter.tform.php', $client_id, $primary_id, $params); - return $affected_rows; - } - - - public function mail_filter_delete($session_id, $primary_id) - { - if (!$this->checkPerm($session_id, 'mail_filter_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../mail/form/mail_content_filter.tform.php', $primary_id); - return $affected_rows; - } - - - - -/* - * - * - * - * * Client functions - * - * - */ - //* Get client details - public function client_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; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../client/form/client.tform.php'); - return $app->remoting_lib->getDataRecord($client_id); - } - - public function client_get_id($session_id, $sys_userid) - { - global $app; - if(!$this->checkPerm($session_id, 'client_get_id')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - - $sys_userid = intval($sys_userid); - - $rec = $app->db->queryOneRecord("SELECT client_id FROM sys_user WHERE userid = ".$sys_userid); - if(isset($rec['client_id'])) { - return intval($rec['client_id']); - } else { - $this->server->fault('no_client_found', 'There is no sysuser account for this client ID.'); - return false; - } - - } - - - public function client_add($session_id, $reseller_id, $params) - { - if (!$this->checkPerm($session_id, 'client_add')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->klientadd('../client/form/client.tform.php',$reseller_id, $params); - return $affected_rows; - - } - - public function client_update($session_id, $client_id, $reseller_id, $params) - { - 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; - } - $affected_rows = $this->updateQuery('../client/form/client.tform.php', $reseller_id, $client_id, $params); - - $app->remoting_lib->ispconfig_sysuser_update($params,$client_id); - - return $affected_rows; - } - - - public function client_delete($session_id,$client_id) - { - global $app; - - if (!$this->checkPerm($session_id, 'client_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../client/form/client.tform.php',$client_id); - - $app->remoting_lib->ispconfig_sysuser_delete($client_id); - - return $affected_rows; - } - - // ----------------------------------------------------------------------------------------------- - - public function client_delete_everything($session_id, $client_id) + //* Get mail user details + public function mail_user_get($session_id, $primary_id) { - global $app, $conf; - if(!$this->checkPerm($session_id, 'client_delete_everything')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $client_id = intval($client_id); - $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); - - $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; - $tables_array = explode(',',$tables); - $client_group_id = intval($client_group['groupid']); + global $app; - $table_list = array(); - if($client_group_id > 1) { - foreach($tables_array as $table) { - if($table != '') { - $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); - $number = count($records); - if($number > 0) $table_list[] = array('table' => $table."(".$number.")"); - } - } + if(!$this->checkPerm($session_id, 'mail_user_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; } - - - if($client_id > 0) { - // remove the group of the client from the resellers group - $parent_client_id = intval($this->dataRecord['parent_client_id']); - $parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id"); - $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); - $app->auth->remove_group_from_user($parent_user['userid'],$client_group['groupid']); - - // delete the group of the client - $app->db->query("DELETE FROM sys_group WHERE client_id = $client_id"); - - // delete the sys user(s) of the client - $app->db->query("DELETE FROM sys_user WHERE client_id = $client_id"); - - // Delete all records (sub-clients, mail, web, etc....) of this client. - $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; - $tables_array = explode(',',$tables); - $client_group_id = intval($client_group['groupid']); - if($client_group_id > 1) { - foreach($tables_array as $table) { - if($table != '') { - $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); - // find the primary ID of the table - $table_info = $app->db->tableInfo($table); - $index_field = ''; - foreach($table_info as $tmp) { - if($tmp['option'] == 'primary') $index_field = $tmp['name']; - } - // Delete the records - if($index_field != '') { - if(is_array($records)) { - foreach($records as $rec) { - $app->db->datalogDelete($table, $index_field, $rec[$index_field]); - } - } - } - - } - } - } - - - + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../mail/form/mail_user.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + + //* dodanie uzytkownika email + public function mail_user_add($session_id, $client_id, $params){ + if (!$this->checkPerm($session_id, 'mail_user_add')){ + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; } - - if (!$this->checkPerm($session_id, 'client_delete')) - { - $this->server->fault('permission_denied','You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../client/form/client.tform.php',$client_id); - - // $app->remoting_lib->ispconfig_sysuser_delete($client_id); - + $affected_rows = $this->insertQuery('../mail/form/mail_user.tform.php', $client_id, $params); + return $affected_rows; + } - return false; + //* edycja uzytkownika email + public function mail_user_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_user_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_user.tform.php', $client_id, $primary_id, $params); + return $affected_rows; } + - // Website functions --------------------------------------------------------------------------------------- - - //* Get cron details - public function sites_cron_get($session_id, $cron_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_cron_get')) { - $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('../sites/form/cron.tform.php'); - return $app->remoting_lib->getDataRecord($cron_id); - } - - //* Add a cron record - public function sites_cron_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_cron_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/cron.tform.php',$client_id,$params); - } - - //* Update cron record - public function sites_cron_update($session_id, $client_id, $cron_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_cron_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/cron.tform.php',$client_id,$cron_id,$params); - return $affected_rows; - } - - //* Delete cron record - public function sites_cron_delete($session_id, $cron_id) - { - if(!$this->checkPerm($session_id, 'sites_cron_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/cron.tform.php',$cron_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_database_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_database_get')) { - $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('../sites/form/database.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_database_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_database_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/database.tform.php',$client_id,$params); - } - - //* Update a record - public function sites_database_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_database_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/database.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_database_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_database_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/database.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_ftp_user_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_ftp_user_get')) { - $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('../sites/form/ftp_user.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_ftp_user_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_ftp_user_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/ftp_user.tform.php',$client_id,$params); - } - - //* Update a record - public function sites_ftp_user_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_ftp_user_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/ftp_user.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_ftp_user_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_ftp_user_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/ftp_user.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_shell_user_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_shell_user_get')) { - $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('../sites/form/shell_user.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_shell_user_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_shell_user_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/shell_user.tform.php',$client_id,$params); - } - - //* Update a record - public function sites_shell_user_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_shell_user_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/shell_user.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_shell_user_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_shell_user_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/shell_user.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_web_domain_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_web_domain_get')) { - $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('../sites/form/web_domain.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_web_domain_add($session_id, $client_id, $params, $readonly = false) + //*usuniecie uzytkownika emial + public function mail_user_delete($session_id, $primary_id) { - global $app; - if(!$this->checkPerm($session_id, 'sites_web_domain_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $domain_id = $this->insertQuery('../sites/form/web_domain.tform.php',$client_id,$params, 'sites:web_domain:on_after_insert'); - if ($readonly === true) - $app->db->query("UPDATE web_domain SET `sys_userid` = '1' WHERE domain_id = ".$domain_id); - return $domain_id; + if (!$this->checkPerm($session_id, 'mail_user_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; } + $affected_rows = $this->deleteQuery('../mail/form/mail_user.tform.php', $primary_id); + return $affected_rows; + } - //* Update a record - public function sites_web_domain_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_web_domain_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/web_domain.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_web_domain_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_web_domain_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/web_domain.tform.php',$primary_id); - return $affected_rows; - } - - // ----------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_web_aliasdomain_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_get')) { - $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('../sites/form/web_aliasdomain.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_web_aliasdomain_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/web_aliasdomain.tform.php',$client_id,$params); - } - - //* Update a record - public function sites_web_aliasdomain_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/web_aliasdomain.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_web_aliasdomain_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/web_aliasdomain.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------- - - //* Get record details - public function sites_web_subdomain_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'sites_web_subdomain_get')) { - $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('../sites/form/web_subdomain.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function sites_web_subdomain_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_web_subdomain_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../sites/form/web_subdomain.tform.php',$client_id,$params); - } - - //* Update a record - public function sites_web_subdomain_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'sites_web_subdomain_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../sites/form/web_subdomain.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function sites_web_subdomain_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'sites_web_subdomain_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../sites/form/web_subdomain.tform.php',$primary_id); - return $affected_rows; - } - - // ----------------------------------------------------------------------------------------------- - - //* Get record details - public function domains_domain_get($session_id, $primary_id) + //* Get mail user filter details + public function mail_user_filter_get($session_id, $primary_id) { global $app; - if(!$this->checkPerm($session_id, 'domains_domain_get')) { + if(!$this->checkPerm($session_id, 'mail_user_filter_get')) { $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('../domain/form/domain.tform.php'); + $app->remoting_lib->loadFormDef('../mail/form/mail_user_filter.tform.php'); return $app->remoting_lib->getDataRecord($primary_id); } + + public function mail_user_filter_add($session_id, $client_id, $params) + { + global $app; + if (!$this->checkPerm($session_id, 'mail_user_filter_add')){ + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_user_filter.tform.php', $client_id, $params,'mail:mail_user_filter:on_after_insert'); + // $app->plugin->raiseEvent('mail:mail_user_filter:on_after_insert',$this); + return $affected_rows; + } - //* Add a record - public function domains_domain_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'domains_domain_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + public function mail_user_filter_update($session_id, $client_id, $primary_id, $params) + { + global $app; + if (!$this->checkPerm($session_id, 'mail_user_filter_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); return false; } - return $this->insertQuery('../domain/form/domain.tform.php',$client_id,$params); + $affected_rows = $this->updateQuery('../mail/form/mail_user_filter.tform.php', $client_id, $primary_id, $params,'mail:mail_user_filter:on_after_update'); + // $app->plugin->raiseEvent('mail:mail_user_filter:on_after_update',$this); + return $affected_rows; } - //* Delete a record - public function domains_domain_delete($session_id, $primary_id) + public function mail_user_filter_delete($session_id, $primary_id) + { + global $app; + if (!$this->checkPerm($session_id, 'mail_user_filter_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_user_filter.tform.php', $primary_id); + $app->plugin->raiseEvent('mail:mail_user_filter:on_after_delete',$this); + return $affected_rows; + } + + //* Get alias details + public function mail_alias_get($session_id, $primary_id) { - if(!$this->checkPerm($session_id, 'domains_domain_delete')) { + global $app; + + if(!$this->checkPerm($session_id, 'mail_alias_get')) { $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - $affected_rows = $this->deleteQuery('../domain/form/domain.tform.php',$primary_id); + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../mail/form/mail_alias.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* aliasy email + public function mail_alias_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_alias_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_alias.tform.php', $client_id, $params); return $affected_rows; } -// ----------------------------------------------------------------------------------------------- - public function domains_get_all_by_user($session_id, $group_id) + public function mail_alias_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_alias_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_alias.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + public function mail_alias_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_alias_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_alias.tform.php', $primary_id); + return $affected_rows; + } + + //* Get mail forwarding details + public function mail_forward_get($session_id, $primary_id) { - global $app; - if(!$this->checkPerm($session_id, 'domains_get_all_by_user')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; + global $app; + + if(!$this->checkPerm($session_id, 'mail_forward_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; } - $group_id = intval($group_id); - $sql = "SELECT domain_id, domain FROM domain WHERE sys_groupid = $group_id "; - $all = $app->db->queryAllRecords($sql); - return $all; + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../mail/form/mail_forward.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); } - - // DNS Function -------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_zone_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_zone_get')) { - $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('../dns/form/dns_soa.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_zone_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_zone_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_soa.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_zone_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_zone_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_soa.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_zone_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_zone_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_soa.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_aaaa_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_aaaa_get')) { - $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('../dns/form/dns_aaaa.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_aaaa_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_aaaa.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_aaaa_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_aaaa.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_aaaa_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_aaaa.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_a_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_a_get')) { - $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('../dns/form/dns_a.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_a_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_a_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_a.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_a_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_a_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_a.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_a_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_a_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_a.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_alias_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_alias_get')) { - $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('../dns/form/dns_alias.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_alias_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_alias_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_alias.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_alias_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_alias_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_alias.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_alias_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_alias_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_alias.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_cname_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_cname_get')) { - $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('../dns/form/dns_cname.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_cname_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_cname_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_cname.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_cname_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_cname_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_cname.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_cname_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_cname_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_cname.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_hinfo_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_hinfo_get')) { - $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('../dns/form/dns_hinfo.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_hinfo_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_hinfo.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_hinfo_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_hinfo.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_hinfo_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_hinfo.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_mx_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_mx_get')) { - $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('../dns/form/dns_mx.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_mx_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_mx_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_mx.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_mx_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_mx_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_mx.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_mx_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_mx_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_mx.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_ns_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_ns_get')) { - $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('../dns/form/dns_ns.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_ns_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_ns_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_ns.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_ns_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_ns_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_ns.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_ns_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_ns_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_ns.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_ptr_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_ptr_get')) { - $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('../dns/form/dns_ptr.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_ptr_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_ptr_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_ptr.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_ptr_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_ptr_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_ptr.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_ptr_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_ptr_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_ptr.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_rp_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_rp_get')) { - $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('../dns/form/dns_rp.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_rp_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_rp_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_rp.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_rp_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_rp_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_rp.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_rp_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_rp_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_rp.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_srv_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_srv_get')) { - $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('../dns/form/dns_srv.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_srv_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_srv_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_srv.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_srv_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_srv_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_srv.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_srv_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_srv_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_srv.tform.php',$primary_id); - return $affected_rows; - } - - // ---------------------------------------------------------------------------------------------------------------- - - //* Get record details - public function dns_txt_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_txt_get')) { - $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('../dns/form/dns_txt.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); - } - - //* Add a record - public function dns_txt_add($session_id, $client_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_txt_add')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return $this->insertQuery('../dns/form/dns_txt.tform.php',$client_id,$params); - } - - //* Update a record - public function dns_txt_update($session_id, $client_id, $primary_id, $params) - { - if(!$this->checkPerm($session_id, 'dns_txt_update')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->updateQuery('../dns/form/dns_txt.tform.php',$client_id,$primary_id,$params); - return $affected_rows; - } - - //* Delete a record - public function dns_txt_delete($session_id, $primary_id) - { - if(!$this->checkPerm($session_id, 'dns_txt_delete')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_txt.tform.php',$primary_id); - return $affected_rows; - } - - - - - - - - - - - - - - //** private functions ----------------------------------------------------------------------------------- - - - - - private function klientadd($formdef_file, $reseller_id, $params) - { - global $app, $tform, $remoting_lib; - $app->uses('remoting_lib'); - - //* Load the form definition - $app->remoting_lib->loadFormDef($formdef_file); - - //* load the user profile of the client - $app->remoting_lib->loadUserProfile($reseller_id); - - //* load the client template - if(isset($params['template_master']) and $params['template_master'] > 0) - { - $template=$app->db->queryOneRecord("SELECT * FROM client_template WHERE template_id=".intval($params['template_master'])); - $params=array_merge($params,$template); - } - - //* Get the SQL query - $sql = $app->remoting_lib->getSQL($params,'INSERT',0); - if($app->remoting_lib->errorMessage != '') { - $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); - return false; - } - - $app->db->query($sql); - - if($app->db->errorMessage != '') { - $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); - return false; - } - - - - $insert_id = $app->db->insertID(); - //$app->uses('tform'); - //* Save changes to Datalog - if($app->remoting_lib->formDef["db_history"] == 'yes') { - $new_rec = $app->remoting_lib->getDataRecord($insert_id); - $app->remoting_lib->datalogSave('INSERT',$primary_id,array(),$new_rec); - $app->remoting_lib->ispconfig_sysuser_add($params,$insert_id); - - if($reseller_id) { - $client_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = ".$insert_id); - $reseller_user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE client_id = ".$reseller_id); - $app->auth->add_group_to_user($reseller_user['userid'], $client_group['groupid']); - $app->db->query("UPDATE client SET parent_client_id = ".$reseller_id." WHERE client_id = ".$insert_id); - } - - } - return $insert_id; - } - - private function insertQuery($formdef_file, $client_id, $params,$event_identifier = '') - { - global $app, $tform, $remoting_lib; - - $app->uses('remoting_lib'); - - //* load the user profile of the client - $app->remoting_lib->loadUserProfile($client_id); - - //* Load the form definition - $app->remoting_lib->loadFormDef($formdef_file); - - //* Get the SQL query - $sql = $app->remoting_lib->getSQL($params,'INSERT',0); - if($app->remoting_lib->errorMessage != '') { - $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); - return false; - } - - $app->db->query($sql); - - if($app->db->errorMessage != '') { - $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); - return false; - } - - $insert_id = $app->db->insertID(); - - // set a few values for compatibility with tform actions, mostly used by plugins - $this->id = $insert_id; - $this->dataRecord = $params; - - if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this); - - //$app->uses('tform'); - //* Save changes to Datalog - if($app->remoting_lib->formDef["db_history"] == 'yes') { - $new_rec = $app->remoting_lib->getDataRecord($insert_id); - $app->remoting_lib->datalogSave('INSERT',$primary_id,array(),$new_rec); - } - return $insert_id; - } - - - private function updateQuery($formdef_file, $client_id, $primary_id, $params, $event_identifier = '') - { - global $app; - - $app->uses('remoting_lib'); - - //* load the user profile of the client - $app->remoting_lib->loadUserProfile($client_id); - - //* Load the form definition - $app->remoting_lib->loadFormDef($formdef_file); - - //* Get the SQL query - $sql = $app->remoting_lib->getSQL($params,'UPDATE',$primary_id); - if($app->remoting_lib->errorMessage != '') { - $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); - return false; - } - - $old_rec = $app->remoting_lib->getDataRecord($primary_id); - - // set a few values for compatibility with tform actions, mostly used by plugins - $this->oldDataRecord = $old_rec; - $this->id = $primary_id; - $this->dataRecord = $params; - - $app->db->query($sql); - - if($app->db->errorMessage != '') { - $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); - return false; - } - - $affected_rows = $app->db->affectedRows(); - - if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this); - - //* Save changes to Datalog - if($app->remoting_lib->formDef["db_history"] == 'yes') { - $new_rec = $app->remoting_lib->getDataRecord($primary_id); - $app->remoting_lib->datalogSave('UPDATE',$primary_id,$old_rec,$new_rec); - } - - return $affected_rows; - } - - private function deleteQuery($formdef_file, $primary_id) - { - global $app; - - $app->uses('remoting_lib'); - - //* load the user profile of the client - $app->remoting_lib->loadUserProfile(0); - - //* Load the form definition - $app->remoting_lib->loadFormDef($formdef_file); - - $old_rec = $app->remoting_lib->getDataRecord($primary_id); - - // set a few values for compatibility with tform actions, mostly used by plugins - $this->oldDataRecord = $old_rec; - $this->id = $primary_id; - $this->dataRecord = $params; - - //* Get the SQL query - $sql = $app->remoting_lib->getDeleteSQL($primary_id); - - $app->db->query($sql); - - if($app->db->errorMessage != '') { - $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); - return false; - } - - $affected_rows = $app->db->affectedRows(); - - //* Save changes to Datalog - if($app->remoting_lib->formDef["db_history"] == 'yes') { - $app->remoting_lib->datalogSave('DELETE',$primary_id,$old_rec,array()); - } - - - return $affected_rows; - } - - - private function checkPerm($session_id, $function_name) - { - $dobre=array(); - $session = $this->getSession($session_id); - if(!$session){ - return false; - } - - $dobre= str_replace(';',',',$session['remote_functions']); - return in_array($function_name, explode(',', $dobre) ); - } - - - private function getSession($session_id) - { - global $app; - - if(empty($session_id)) { - $this->server->fault('session_id_empty','The SessionID is empty.'); - return false; - } - - $session_id = $app->db->quote($session_id); - - $now = time(); - $sql = "SELECT * FROM remote_session WHERE remote_session = '$session_id' AND tstamp >= $now"; - $session = $app->db->queryOneRecord($sql); - if($session['remote_userid'] > 0) { - return $session; - } else { - $this->server->fault('session_does_not_exist','The Session is expired or does not exist.'); - return false; - } - } - - //--- - - - /** - * Gets sites by $sys_userid & $sys_groupid - * @param int session id - * @param int user id - * @param array list of groups - * @return mixed array with sites by user - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function client_get_sites_by_user($session_id, $sys_userid, $sys_groupid) { - global $app; - if(!$this->checkPerm($session_id, 'client_get_sites_by_user')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $sys_userid = intval($sys_userid); - $sys_groupid = explode(',', $sys_groupid); - $new_group = array(); - foreach($sys_groupid as $group_id) { - $new_group[] = intval( $group_id); - } - $group_list = implode(',', $new_group); - $sql ="SELECT domain, domain_id, document_root, active FROM web_domain WHERE ( (sys_userid = $sys_userid AND sys_perm_user LIKE '%r%') OR (sys_groupid IN ($group_list) AND sys_perm_group LIKE '%r%') OR sys_perm_other LIKE '%r%') AND type = 'vhost'"; - $result = $app->db->queryAllRecords($sql); - if(isset($result)) { - return $result; - } else { - $this->server->fault('no_client_found', 'There is no site for this user'); - return false; - } - } - - /** - * Change domains status - * @param int session id - * @param int site id - * @param string active or inactive string - * @return mixed false if error - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - - public function sites_web_domain_set_status($session_id, $primary_id, $status) { - global $app; - if(!$this->checkPerm($session_id, 'sites_web_domain_set_status')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if(in_array($status, array('active', 'inactive'))) { - if ($status == 'active') { - $status = 'y'; - } else { - $status = 'n'; - } - $sql = "UPDATE web_domain SET active = '$status' WHERE domain_id = ".intval($primary_id); - $app->db->query($sql); - $result = $app->db->affectedRows(); - return $result; - } else { - $this->server->fault('status_undefined', 'The status is not available'); - return false; - } - } - - /** - * Get sys_user information by username - * @param int session id - * @param string user's name - * @return mixed false if error - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function client_get_by_username($session_id, $username) { - global $app; - if(!$this->checkPerm($session_id, 'client_get_by_username')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $username = $app->db->quote($username); - $rec = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE username = '".$username."'"); - if (isset($rec)) { - return $rec; - } else { - $this->server->fault('no_client_found', 'There is no user account for this user name.'); - return false; - } - } - - /** - * Changes client password - * - * @param int session id - * @param int client id - * @param string new password - * @return bool true if success - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - * - */ - public function client_change_password($session_id, $client_id, $new_password) { - global $app; - - if(!$this->checkPerm($session_id, 'client_change_password')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $client_id = intval($client_id); - $client = $app->db->queryOneRecord("SELECT client_id FROM client WHERE client_id = ".$client_id); - if($client['client_id'] > 0) { - $new_password = $app->db->quote($new_password); - $sql = "UPDATE client SET password = md5('".($new_password)."') WHERE client_id = ".$client_id; - $app->db->query($sql); - $sql = "UPDATE sys_user SET passwort = md5('".($new_password)."') WHERE client_id = ".$client_id; - $app->db->query($sql); - return true; - } else { - $this->server->fault('no_client_found', 'There is no user account for this client_id'); - return false; - } - } - - public function mail_domain_get_by_domain($session_id, $domain) { - global $app; - if(!$this->checkPerm($session_id, 'mail_domain_get_by_domain')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if (!empty($domain_id)) { - $domain = $app->db->quote($domain); - $sql = "SELECT * FROM mail_domain WHERE domain = $domain"; - $result = $app->db->queryAllRecords($sql); - return $result; - } - return false; - } - - - - /** - * Get a list of functions - * @param int session id - * @return mixed array of the available functions - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function get_function_list($session_id) - { - if(!$this->checkPerm($session_id, 'get_function_list')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - return get_class_methods($this); - } - - /** - * Get all databases by user - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function sites_database_get_all_by_user($session_id, $client_id) - { - global $app; - if(!$this->checkPerm($session_id, 'sites_database_get_all_by_user')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $client_id = intval($client_id); - $sql = "SELECT database_id, database_name, database_user, database_password FROM web_database WHERE sys_userid = $client_id "; - $all = $app->db->queryAllRecords($sql); - return $all; - } - - /** - * Get all client templates - * @param int session id - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function client_templates_get_all($session_id) { - global $app; - if(!$this->checkPerm($session_id, 'client_templates_get_all')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $sql = "SELECT * FROM client_template"; - $result = $app->db->queryAllRecords($sql); - return $result; - } - - /** - * Get all DNS zone by user - *@author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - public function dns_zone_get_by_user($session_id, $client_id, $server_id) { - global $app; - if(!$this->checkPerm($session_id, 'dns_zone_get')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if (!empty($client_id) && !empty($server_id)) { - $server_id = intval($server_id); - $client_id = intval($client_id); - $sql = "SELECT id, origin FROM dns_soa d INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id AND server_id = $server_id"; - $result = $app->db->queryAllRecords($sql); - return $result; - } - return false; - } - - - /** - * Changes DNS zone status - * @param int session id - * @param int dns soa id - * @param string status active or inactive string - * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 - */ - - public function dns_zone_set_status($session_id, $primary_id, $status) { - global $app; - if(!$this->checkPerm($session_id, 'dns_zone_set_status')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if(in_array($status, array('active', 'inactive'))) { - if ($status == 'active') { - $status = 'Y'; - } else { - $status = 'N'; - } - $sql = "UPDATE dns_soa SET active = '$status' WHERE id = ".intval($primary_id); - $app->db->query($sql); - $result = $app->db->affectedRows(); - return $result; - } else { - $this->server->fault('status_undefined', 'The status is not available'); - return false; - } - } - - public function mail_domain_set_status($session_id, $primary_id, $status) { - global $app; - if(!$this->checkPerm($session_id, 'mail_domain_set_status')) { - $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if(in_array($status, array('active', 'inactive'))) { - if ($status == 'active') { - $status = 'y'; - } else { - $status = 'n'; - } - $sql = "UPDATE mail_domain SET active = '$status' WHERE domain_id = ".intval($primary_id); - $app->db->query($sql); - $result = $app->db->affectedRows(); - return $result; - } else { - $this->server->fault('status_undefined', 'The status is not available'); - return false; - } - } -} + //* przekierowania email + public function mail_forward_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_forward_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_forward.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_forward_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_forward_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_forward.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_forward_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_forward_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_forward.tform.php', $primary_id); + return $affected_rows; + } + + //* Get catchall details + public function mail_catchall_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_catchall_get')) { + $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('../mail/form/mail_domain_catchall.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* catchall e-mail + public function mail_catchall_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_catchall_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_domain_catchall.tform.php', $client_id, $params); + return $affected_rows; + } + + public function mail_catchall_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_catchall_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_domain_catchall.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + public function mail_catchall_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_catchall_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_domain_catchall.tform.php', $primary_id); + return $affected_rows; + } + + //* Get transport details + public function mail_transport_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_transport_get')) { + $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('../mail/form/mail_transport.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* przeniesienia e-mail + public function mail_transport_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_transport_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_transport.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_transport_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_transport_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_transport.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_transport_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_transport_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_transport.tform.php', $primary_id); + return $affected_rows; + } + + //* Get spamfilter whitelist details + public function mail_spamfilter_whitelist_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_get')) { + $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('../mail/form/spamfilter_whitelist.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* biaÅ‚a lista e-mail + public function mail_spamfilter_whitelist_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/spamfilter_whitelist.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_whitelist_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/spamfilter_whitelist.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_whitelist_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_whitelist_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/spamfilter_whitelist.tform.php', $primary_id); + return $affected_rows; + } + + //* Get spamfilter blacklist details + public function mail_spamfilter_blacklist_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_get')) { + $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('../mail/form/spamfilter_blacklist.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* czarna lista e-mail + public function mail_spamfilter_blacklist_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/spamfilter_blacklist.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_blacklist_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/spamfilter_blacklist.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_blacklist_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/spamfilter_blacklist.tform.php', $primary_id); + return $affected_rows; + } + + //* Get spamfilter user details + public function mail_spamfilter_user_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_spamfilter_user_get')) { + $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('../mail/form/spamfilter_users.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* filtr spamu użytkowników e-mail + public function mail_spamfilter_user_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_user_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/spamfilter_users.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_user_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_user_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/spamfilter_users.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_spamfilter_user_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_spamfilter_user_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/spamfilter_users.tform.php', $primary_id); + return $affected_rows; + } + + //* Get policy details + public function mail_policy_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_policy_get')) { + $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('../mail/form/spamfilter_policy.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* polityki filtrów spamu e-mail + public function mail_policy_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_policy_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/spamfilter_policy.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_policy_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_policy_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/spamfilter_policy.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_policy_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_policy_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/spamfilter_policy.tform.php', $primary_id); + return $affected_rows; + } + + //* Get fetchmail details + public function mail_fetchmail_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_fetchmail_get')) { + $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('../mail/form/mail_get.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* fetchmail + public function mail_fetchmail_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_fetchmail_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_get.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_fetchmail_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_fetchmail_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_get.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_fetchmail_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_fetchmail_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_get.tform.php', $primary_id); + return $affected_rows; + } + + //* Get whitelist details + public function mail_whitelist_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_whitelist_get')) { + $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('../mail/form/mail_whitelist.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* wpisy biaÅ‚ej listy + public function mail_whitelist_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_whitelist_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_whitelist.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_whitelist_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_whitelist_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_whitelist.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_whitelist_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_whitelist_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_whitelist.tform.php', $primary_id); + return $affected_rows; + } + + //* Get Blacklist details + public function mail_blacklist_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_blacklist_get')) { + $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('../mail/form/mail_blacklist.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* wpisy biaÅ‚ej listy + public function mail_blacklist_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_blacklist_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_blacklist.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_blacklist_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_blacklist_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_blacklist.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_blacklist_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_blacklist_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_blacklist.tform.php', $primary_id); + return $affected_rows; + } + + //* Get filter details + public function mail_filter_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_filter_get')) { + $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('../mail/form/mail_content_filter.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* wpisy filtrow e-mail + public function mail_filter_add($session_id, $client_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_filter_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->insertQuery('../mail/form/mail_content_filter.tform.php', $client_id, $params); + return $affected_rows; + } + + + public function mail_filter_update($session_id, $client_id, $primary_id, $params) + { + if (!$this->checkPerm($session_id, 'mail_filter_update')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../mail/form/mail_content_filter.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + + public function mail_filter_delete($session_id, $primary_id) + { + if (!$this->checkPerm($session_id, 'mail_filter_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../mail/form/mail_content_filter.tform.php', $primary_id); + return $affected_rows; + } + + + + +/* + * + * + * + * * Client functions + * + * + */ + //* Get client details + public function client_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; + } + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../client/form/client.tform.php'); + return $app->remoting_lib->getDataRecord($client_id); + } + + public function client_get_id($session_id, $sys_userid) + { + global $app; + if(!$this->checkPerm($session_id, 'client_get_id')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $sys_userid = intval($sys_userid); + + $rec = $app->db->queryOneRecord("SELECT client_id FROM sys_user WHERE userid = ".$sys_userid); + if(isset($rec['client_id'])) { + return intval($rec['client_id']); + } else { + $this->server->fault('no_client_found', 'There is no sysuser account for this client ID.'); + return false; + } + + } + + + public function client_add($session_id, $reseller_id, $params) + { + if (!$this->checkPerm($session_id, 'client_add')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->klientadd('../client/form/client.tform.php',$reseller_id, $params); + return $affected_rows; + + } + + public function client_update($session_id, $client_id, $reseller_id, $params) + { + 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; + } + $affected_rows = $this->updateQuery('../client/form/client.tform.php', $reseller_id, $client_id, $params); + + $app->remoting_lib->ispconfig_sysuser_update($params,$client_id); + + return $affected_rows; + } + + + public function client_delete($session_id,$client_id) + { + global $app; + + if (!$this->checkPerm($session_id, 'client_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../client/form/client.tform.php',$client_id); + + $app->remoting_lib->ispconfig_sysuser_delete($client_id); + + return $affected_rows; + } + + // ----------------------------------------------------------------------------------------------- + + public function client_delete_everything($session_id, $client_id) + { + global $app, $conf; + if(!$this->checkPerm($session_id, 'client_delete_everything')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $client_id = intval($client_id); + $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); + + $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; + $tables_array = explode(',',$tables); + $client_group_id = intval($client_group['groupid']); + + $table_list = array(); + if($client_group_id > 1) { + foreach($tables_array as $table) { + if($table != '') { + $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); + $number = count($records); + if($number > 0) $table_list[] = array('table' => $table."(".$number.")"); + } + } + } + + + if($client_id > 0) { + // remove the group of the client from the resellers group + $parent_client_id = intval($this->dataRecord['parent_client_id']); + $parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id"); + $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); + $app->auth->remove_group_from_user($parent_user['userid'],$client_group['groupid']); + + // delete the group of the client + $app->db->query("DELETE FROM sys_group WHERE client_id = $client_id"); + + // delete the sys user(s) of the client + $app->db->query("DELETE FROM sys_user WHERE client_id = $client_id"); + + // Delete all records (sub-clients, mail, web, etc....) of this client. + $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; + $tables_array = explode(',',$tables); + $client_group_id = intval($client_group['groupid']); + if($client_group_id > 1) { + foreach($tables_array as $table) { + if($table != '') { + $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); + // find the primary ID of the table + $table_info = $app->db->tableInfo($table); + $index_field = ''; + foreach($table_info as $tmp) { + if($tmp['option'] == 'primary') $index_field = $tmp['name']; + } + // Delete the records + if($index_field != '') { + if(is_array($records)) { + foreach($records as $rec) { + $app->db->datalogDelete($table, $index_field, $rec[$index_field]); + } + } + } + + } + } + } + + + + } + + if (!$this->checkPerm($session_id, 'client_delete')) + { + $this->server->fault('permission_denied','You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../client/form/client.tform.php',$client_id); + + // $app->remoting_lib->ispconfig_sysuser_delete($client_id); + + + return false; + } + + // Website functions --------------------------------------------------------------------------------------- + + //* Get cron details + public function sites_cron_get($session_id, $cron_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_cron_get')) { + $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('../sites/form/cron.tform.php'); + return $app->remoting_lib->getDataRecord($cron_id); + } + + //* Add a cron record + public function sites_cron_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_cron_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/cron.tform.php',$client_id,$params); + } + + //* Update cron record + public function sites_cron_update($session_id, $client_id, $cron_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_cron_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/cron.tform.php',$client_id,$cron_id,$params); + return $affected_rows; + } + + //* Delete cron record + public function sites_cron_delete($session_id, $cron_id) + { + if(!$this->checkPerm($session_id, 'sites_cron_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/cron.tform.php',$cron_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_database_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_database_get')) { + $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('../sites/form/database.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_database_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_database_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/database.tform.php',$client_id,$params); + } + + //* Update a record + public function sites_database_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_database_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/database.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_database_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_database_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/database.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_ftp_user_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_ftp_user_get')) { + $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('../sites/form/ftp_user.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_ftp_user_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_ftp_user_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/ftp_user.tform.php',$client_id,$params); + } + + //* Update a record + public function sites_ftp_user_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_ftp_user_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/ftp_user.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_ftp_user_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_ftp_user_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/ftp_user.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_shell_user_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_shell_user_get')) { + $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('../sites/form/shell_user.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_shell_user_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_shell_user_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/shell_user.tform.php',$client_id,$params); + } + + //* Update a record + public function sites_shell_user_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_shell_user_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/shell_user.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_shell_user_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_shell_user_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/shell_user.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_web_domain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_domain_get')) { + $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('../sites/form/web_domain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_web_domain_add($session_id, $client_id, $params, $readonly = false) + { + global $app; + if(!$this->checkPerm($session_id, 'sites_web_domain_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $domain_id = $this->insertQuery('../sites/form/web_domain.tform.php',$client_id,$params, 'sites:web_domain:on_after_insert'); + if ($readonly === true) + $app->db->query("UPDATE web_domain SET `sys_userid` = '1' WHERE domain_id = ".$domain_id); + return $domain_id; + } + + //* Update a record + public function sites_web_domain_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_domain_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/web_domain.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_web_domain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_web_domain_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/web_domain.tform.php',$primary_id); + return $affected_rows; + } + + // ----------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_web_aliasdomain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_get')) { + $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('../sites/form/web_aliasdomain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_web_aliasdomain_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/web_aliasdomain.tform.php',$client_id,$params); + } + + //* Update a record + public function sites_web_aliasdomain_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/web_aliasdomain.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_web_aliasdomain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/web_aliasdomain.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_web_subdomain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_subdomain_get')) { + $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('../sites/form/web_subdomain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_web_subdomain_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_subdomain_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/web_subdomain.tform.php',$client_id,$params); + } + + //* Update a record + public function sites_web_subdomain_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_subdomain_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/web_subdomain.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function sites_web_subdomain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_web_subdomain_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/web_subdomain.tform.php',$primary_id); + return $affected_rows; + } + + // ----------------------------------------------------------------------------------------------- + + //* Get record details + public function domains_domain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'domains_domain_get')) { + $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('../domain/form/domain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function domains_domain_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'domains_domain_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../domain/form/domain.tform.php',$client_id,$params); + } + + //* Delete a record + public function domains_domain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'domains_domain_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../domain/form/domain.tform.php',$primary_id); + return $affected_rows; + } + +// ----------------------------------------------------------------------------------------------- + + public function domains_get_all_by_user($session_id, $group_id) + { + global $app; + if(!$this->checkPerm($session_id, 'domains_get_all_by_user')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $group_id = intval($group_id); + $sql = "SELECT domain_id, domain FROM domain WHERE sys_groupid = $group_id "; + $all = $app->db->queryAllRecords($sql); + return $all; + } + + + // DNS Function -------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_zone_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_zone_get')) { + $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('../dns/form/dns_soa.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_zone_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_zone_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_soa.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_zone_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_zone_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_soa.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_zone_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_zone_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_soa.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_aaaa_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_aaaa_get')) { + $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('../dns/form/dns_aaaa.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_aaaa_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_aaaa_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_aaaa.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_aaaa_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_aaaa_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_aaaa.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_aaaa_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_aaaa_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_aaaa.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_a_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_a_get')) { + $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('../dns/form/dns_a.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_a_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_a_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_a.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_a_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_a_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_a.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_a_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_a_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_a.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_alias_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_alias_get')) { + $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('../dns/form/dns_alias.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_alias_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_alias_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_alias.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_alias_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_alias_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_alias.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_alias_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_alias_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_alias.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_cname_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_cname_get')) { + $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('../dns/form/dns_cname.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_cname_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_cname_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_cname.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_cname_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_cname_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_cname.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_cname_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_cname_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_cname.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_hinfo_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_hinfo_get')) { + $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('../dns/form/dns_hinfo.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_hinfo_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_hinfo_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_hinfo.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_hinfo_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_hinfo_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_hinfo.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_hinfo_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_hinfo_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_hinfo.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_mx_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_mx_get')) { + $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('../dns/form/dns_mx.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_mx_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_mx_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_mx.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_mx_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_mx_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_mx.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_mx_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_mx_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_mx.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_ns_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_ns_get')) { + $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('../dns/form/dns_ns.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_ns_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_ns_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_ns.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_ns_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_ns_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_ns.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_ns_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_ns_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_ns.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_ptr_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_ptr_get')) { + $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('../dns/form/dns_ptr.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_ptr_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_ptr_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_ptr.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_ptr_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_ptr_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_ptr.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_ptr_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_ptr_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_ptr.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_rp_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_rp_get')) { + $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('../dns/form/dns_rp.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_rp_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_rp_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_rp.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_rp_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_rp_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_rp.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_rp_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_rp_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_rp.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_srv_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_srv_get')) { + $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('../dns/form/dns_srv.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_srv_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_srv_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_srv.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_srv_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_srv_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_srv.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_srv_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_srv_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_srv.tform.php',$primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_txt_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'dns_txt_get')) { + $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('../dns/form/dns_txt.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function dns_txt_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_txt_add')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../dns/form/dns_txt.tform.php',$client_id,$params); + } + + //* Update a record + public function dns_txt_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'dns_txt_update')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../dns/form/dns_txt.tform.php',$client_id,$primary_id,$params); + return $affected_rows; + } + + //* Delete a record + public function dns_txt_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'dns_txt_delete')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../dns/form/dns_txt.tform.php',$primary_id); + return $affected_rows; + } + + + + + + + + + + + + + + //** private functions ----------------------------------------------------------------------------------- + + + + + private function klientadd($formdef_file, $reseller_id, $params) + { + global $app, $tform, $remoting_lib; + $app->uses('remoting_lib'); + + //* Load the form definition + $app->remoting_lib->loadFormDef($formdef_file); + + //* load the user profile of the client + $app->remoting_lib->loadUserProfile($reseller_id); + + //* load the client template + if(isset($params['template_master']) and $params['template_master'] > 0) + { + $template=$app->db->queryOneRecord("SELECT * FROM client_template WHERE template_id=".intval($params['template_master'])); + $params=array_merge($params,$template); + } + + //* Get the SQL query + $sql = $app->remoting_lib->getSQL($params,'INSERT',0); + if($app->remoting_lib->errorMessage != '') { + $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); + return false; + } + + $app->db->query($sql); + + if($app->db->errorMessage != '') { + $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); + return false; + } + + + + $insert_id = $app->db->insertID(); + //$app->uses('tform'); + //* Save changes to Datalog + if($app->remoting_lib->formDef["db_history"] == 'yes') { + $new_rec = $app->remoting_lib->getDataRecord($insert_id); + $app->remoting_lib->datalogSave('INSERT',$primary_id,array(),$new_rec); + $app->remoting_lib->ispconfig_sysuser_add($params,$insert_id); + + if($reseller_id) { + $client_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = ".$insert_id); + $reseller_user = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE client_id = ".$reseller_id); + $app->auth->add_group_to_user($reseller_user['userid'], $client_group['groupid']); + $app->db->query("UPDATE client SET parent_client_id = ".$reseller_id." WHERE client_id = ".$insert_id); + } + + } + return $insert_id; + } + + private function insertQuery($formdef_file, $client_id, $params,$event_identifier = '') + { + global $app, $tform, $remoting_lib; + + $app->uses('remoting_lib'); + + //* load the user profile of the client + $app->remoting_lib->loadUserProfile($client_id); + + //* Load the form definition + $app->remoting_lib->loadFormDef($formdef_file); + + //* Get the SQL query + $sql = $app->remoting_lib->getSQL($params,'INSERT',0); + if($app->remoting_lib->errorMessage != '') { + $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); + return false; + } + + $app->db->query($sql); + + if($app->db->errorMessage != '') { + $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); + return false; + } + + $insert_id = $app->db->insertID(); + + // set a few values for compatibility with tform actions, mostly used by plugins + $this->id = $insert_id; + $this->dataRecord = $params; + + if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this); + + //$app->uses('tform'); + //* Save changes to Datalog + if($app->remoting_lib->formDef["db_history"] == 'yes') { + $new_rec = $app->remoting_lib->getDataRecord($insert_id); + $app->remoting_lib->datalogSave('INSERT',$primary_id,array(),$new_rec); + } + return $insert_id; + } + + + private function updateQuery($formdef_file, $client_id, $primary_id, $params, $event_identifier = '') + { + global $app; + + $app->uses('remoting_lib'); + + //* load the user profile of the client + $app->remoting_lib->loadUserProfile($client_id); + + //* Load the form definition + $app->remoting_lib->loadFormDef($formdef_file); + + //* Get the SQL query + $sql = $app->remoting_lib->getSQL($params,'UPDATE',$primary_id); + if($app->remoting_lib->errorMessage != '') { + $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); + return false; + } + + $old_rec = $app->remoting_lib->getDataRecord($primary_id); + + // set a few values for compatibility with tform actions, mostly used by plugins + $this->oldDataRecord = $old_rec; + $this->id = $primary_id; + $this->dataRecord = $params; + + $app->db->query($sql); + + if($app->db->errorMessage != '') { + $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); + return false; + } + + $affected_rows = $app->db->affectedRows(); + + if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this); + + //* Save changes to Datalog + if($app->remoting_lib->formDef["db_history"] == 'yes') { + $new_rec = $app->remoting_lib->getDataRecord($primary_id); + $app->remoting_lib->datalogSave('UPDATE',$primary_id,$old_rec,$new_rec); + } + + return $affected_rows; + } + + private function deleteQuery($formdef_file, $primary_id) + { + global $app; + + $app->uses('remoting_lib'); + + //* load the user profile of the client + $app->remoting_lib->loadUserProfile(0); + + //* Load the form definition + $app->remoting_lib->loadFormDef($formdef_file); + + $old_rec = $app->remoting_lib->getDataRecord($primary_id); + + // set a few values for compatibility with tform actions, mostly used by plugins + $this->oldDataRecord = $old_rec; + $this->id = $primary_id; + $this->dataRecord = $params; + + //* Get the SQL query + $sql = $app->remoting_lib->getDeleteSQL($primary_id); + + $app->db->query($sql); + + if($app->db->errorMessage != '') { + $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); + return false; + } + + $affected_rows = $app->db->affectedRows(); + + //* Save changes to Datalog + if($app->remoting_lib->formDef["db_history"] == 'yes') { + $app->remoting_lib->datalogSave('DELETE',$primary_id,$old_rec,array()); + } + + + return $affected_rows; + } + + + private function checkPerm($session_id, $function_name) + { + $dobre=array(); + $session = $this->getSession($session_id); + if(!$session){ + return false; + } + + $dobre= str_replace(';',',',$session['remote_functions']); + return in_array($function_name, explode(',', $dobre) ); + } + + + private function getSession($session_id) + { + global $app; + + if(empty($session_id)) { + $this->server->fault('session_id_empty','The SessionID is empty.'); + return false; + } + + $session_id = $app->db->quote($session_id); + + $now = time(); + $sql = "SELECT * FROM remote_session WHERE remote_session = '$session_id' AND tstamp >= $now"; + $session = $app->db->queryOneRecord($sql); + if($session['remote_userid'] > 0) { + return $session; + } else { + $this->server->fault('session_does_not_exist','The Session is expired or does not exist.'); + return false; + } + } + + //--- + + + /** + * Gets sites by $sys_userid & $sys_groupid + * @param int session id + * @param int user id + * @param array list of groups + * @return mixed array with sites by user + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function client_get_sites_by_user($session_id, $sys_userid, $sys_groupid) { + global $app; + if(!$this->checkPerm($session_id, 'client_get_sites_by_user')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $sys_userid = intval($sys_userid); + $sys_groupid = explode(',', $sys_groupid); + $new_group = array(); + foreach($sys_groupid as $group_id) { + $new_group[] = intval( $group_id); + } + $group_list = implode(',', $new_group); + $sql ="SELECT domain, domain_id, document_root, active FROM web_domain WHERE ( (sys_userid = $sys_userid AND sys_perm_user LIKE '%r%') OR (sys_groupid IN ($group_list) AND sys_perm_group LIKE '%r%') OR sys_perm_other LIKE '%r%') AND type = 'vhost'"; + $result = $app->db->queryAllRecords($sql); + if(isset($result)) { + return $result; + } else { + $this->server->fault('no_client_found', 'There is no site for this user'); + return false; + } + } + + /** + * Change domains status + * @param int session id + * @param int site id + * @param string active or inactive string + * @return mixed false if error + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + + public function sites_web_domain_set_status($session_id, $primary_id, $status) { + global $app; + if(!$this->checkPerm($session_id, 'sites_web_domain_set_status')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if(in_array($status, array('active', 'inactive'))) { + if ($status == 'active') { + $status = 'y'; + } else { + $status = 'n'; + } + $sql = "UPDATE web_domain SET active = '$status' WHERE domain_id = ".intval($primary_id); + $app->db->query($sql); + $result = $app->db->affectedRows(); + return $result; + } else { + $this->server->fault('status_undefined', 'The status is not available'); + return false; + } + } + + /** + * Get sys_user information by username + * @param int session id + * @param string user's name + * @return mixed false if error + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function client_get_by_username($session_id, $username) { + global $app; + if(!$this->checkPerm($session_id, 'client_get_by_username')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $username = $app->db->quote($username); + $rec = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE username = '".$username."'"); + if (isset($rec)) { + return $rec; + } else { + $this->server->fault('no_client_found', 'There is no user account for this user name.'); + return false; + } + } + + /** + * Changes client password + * + * @param int session id + * @param int client id + * @param string new password + * @return bool true if success + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + * + */ + public function client_change_password($session_id, $client_id, $new_password) { + global $app; + + if(!$this->checkPerm($session_id, 'client_change_password')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $client_id = intval($client_id); + $client = $app->db->queryOneRecord("SELECT client_id FROM client WHERE client_id = ".$client_id); + if($client['client_id'] > 0) { + $new_password = $app->db->quote($new_password); + $sql = "UPDATE client SET password = md5('".($new_password)."') WHERE client_id = ".$client_id; + $app->db->query($sql); + $sql = "UPDATE sys_user SET passwort = md5('".($new_password)."') WHERE client_id = ".$client_id; + $app->db->query($sql); + return true; + } else { + $this->server->fault('no_client_found', 'There is no user account for this client_id'); + return false; + } + } + + public function mail_domain_get_by_domain($session_id, $domain) { + global $app; + if(!$this->checkPerm($session_id, 'mail_domain_get_by_domain')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if (!empty($domain_id)) { + $domain = $app->db->quote($domain); + $sql = "SELECT * FROM mail_domain WHERE domain = $domain"; + $result = $app->db->queryAllRecords($sql); + return $result; + } + return false; + } + + + + /** + * Get a list of functions + * @param int session id + * @return mixed array of the available functions + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function get_function_list($session_id) + { + if(!$this->checkPerm($session_id, 'get_function_list')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return get_class_methods($this); + } + + /** + * Get all databases by user + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function sites_database_get_all_by_user($session_id, $client_id) + { + global $app; + if(!$this->checkPerm($session_id, 'sites_database_get_all_by_user')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $client_id = intval($client_id); + $sql = "SELECT database_id, database_name, database_user, database_password FROM web_database WHERE sys_userid = $client_id "; + $all = $app->db->queryAllRecords($sql); + return $all; + } + + /** + * Get all client templates + * @param int session id + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function client_templates_get_all($session_id) { + global $app; + if(!$this->checkPerm($session_id, 'client_templates_get_all')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $sql = "SELECT * FROM client_template"; + $result = $app->db->queryAllRecords($sql); + return $result; + } + + /** + * Get all DNS zone by user + *@author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + public function dns_zone_get_by_user($session_id, $client_id, $server_id) { + global $app; + if(!$this->checkPerm($session_id, 'dns_zone_get')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if (!empty($client_id) && !empty($server_id)) { + $server_id = intval($server_id); + $client_id = intval($client_id); + $sql = "SELECT id, origin FROM dns_soa d INNER JOIN sys_user s on(d.sys_groupid = s.default_group) WHERE client_id = $client_id AND server_id = $server_id"; + $result = $app->db->queryAllRecords($sql); + return $result; + } + return false; + } + + + /** + * Changes DNS zone status + * @param int session id + * @param int dns soa id + * @param string status active or inactive string + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + + public function dns_zone_set_status($session_id, $primary_id, $status) { + global $app; + if(!$this->checkPerm($session_id, 'dns_zone_set_status')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if(in_array($status, array('active', 'inactive'))) { + if ($status == 'active') { + $status = 'Y'; + } else { + $status = 'N'; + } + $sql = "UPDATE dns_soa SET active = '$status' WHERE id = ".intval($primary_id); + $app->db->query($sql); + $result = $app->db->affectedRows(); + return $result; + } else { + $this->server->fault('status_undefined', 'The status is not available'); + return false; + } + } + + public function mail_domain_set_status($session_id, $primary_id, $status) { + global $app; + if(!$this->checkPerm($session_id, 'mail_domain_set_status')) { + $this->server->fault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + if(in_array($status, array('active', 'inactive'))) { + if ($status == 'active') { + $status = 'y'; + } else { + $status = 'n'; + } + $sql = "UPDATE mail_domain SET active = '$status' WHERE domain_id = ".intval($primary_id); + $app->db->query($sql); + $result = $app->db->affectedRows(); + return $result; + } else { + $this->server->fault('status_undefined', 'The status is not available'); + return false; + } + } +} ?> \ No newline at end of file diff --git a/interface/lib/classes/session.inc.php b/interface/lib/classes/session.inc.php index 34dfaa5ed6..9c9fdf0a62 100644 --- a/interface/lib/classes/session.inc.php +++ b/interface/lib/classes/session.inc.php @@ -1,129 +1,129 @@ -<?php - -/* -Copyright (c) 2010, Till Brehm, projektfarm Gmbh -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. -*/ - -class session { - - private $session_array = array(); - private $db; - - function __construct() { - $this->db = new db; - } - - function open ($save_path, $session_name) { - return true; - } - - function close () { - - if (!empty($this->session_array)) { - $result = $this->gc(ini_get('session.gc_maxlifetime')); - return $result; - } - return false; - } - - function read ($session_id) { - - $rec = $this->db->queryOneRecord("SELECT * FROM sys_session WHERE session_id = '".$this->db->quote($session_id)."'"); - - if (is_array($rec)) { - $this->session_array = $rec; - return $this->session_array['session_data']; - } else { - return ''; - } - } - - function write ($session_id, $session_data) { - - if (!empty($this->session_array) && $this->session_array['session_id'] != $session_id) { - $this->session_array = array(); - } - - // Dont write session_data to DB if session data has not been changed after reading it. - if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) { - $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); - $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'"); - return true; - } - - - if ($this->session_array['session_id'] == '') { - $session_id = $this->db->quote($session_id); - $date_created = date('Y-m-d H:i:s'); - $last_updated = date('Y-m-d H:i:s'); - $session_data = $this->db->quote($session_data); - $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data) VALUES ('$session_id','$date_created','$last_updated','$session_data')"; - $this->db->query($sql); - - } else { - $session_id = $this->db->quote($session_id); - $last_updated = date('Y-m-d H:i:s'); - $session_data = $this->db->quote($session_data); - $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data' WHERE session_id = '$session_id'"; - $this->db->query($sql); - - } - - return true; - } - - function destroy ($session_id) { - - $session_id = $this->db->quote($session_id); - $sql = "DELETE FROM sys_session WHERE session_id = '$session_id'"; - $this->db->query($sql); - - return true; - } - - function gc ($max_lifetime) { - - $real_now = date('Y-m-d H:i:s'); - $dt1 = strtotime("$real_now -$max_lifetime seconds"); - $dt2 = date('Y-m-d H:i:s', $dt1); - - $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2'"; - $this->db->query($sql); - - return true; - - } - - function __destruct () { - @session_write_close(); - - } - -} - +<?php + +/* +Copyright (c) 2010, Till Brehm, projektfarm Gmbh +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. +*/ + +class session { + + private $session_array = array(); + private $db; + + function __construct() { + $this->db = new db; + } + + function open ($save_path, $session_name) { + return true; + } + + function close () { + + if (!empty($this->session_array)) { + $result = $this->gc(ini_get('session.gc_maxlifetime')); + return $result; + } + return false; + } + + function read ($session_id) { + + $rec = $this->db->queryOneRecord("SELECT * FROM sys_session WHERE session_id = '".$this->db->quote($session_id)."'"); + + if (is_array($rec)) { + $this->session_array = $rec; + return $this->session_array['session_data']; + } else { + return ''; + } + } + + function write ($session_id, $session_data) { + + if (!empty($this->session_array) && $this->session_array['session_id'] != $session_id) { + $this->session_array = array(); + } + + // Dont write session_data to DB if session data has not been changed after reading it. + if(isset($this->session_array['session_data']) && $this->session_array['session_data'] != '' && $this->session_array['session_data'] == $session_data) { + $session_id = $this->db->quote($session_id); + $last_updated = date('Y-m-d H:i:s'); + $this->db->query("UPDATE sys_session SET last_updated = '$last_updated' WHERE session_id = '$session_id'"); + return true; + } + + + if ($this->session_array['session_id'] == '') { + $session_id = $this->db->quote($session_id); + $date_created = date('Y-m-d H:i:s'); + $last_updated = date('Y-m-d H:i:s'); + $session_data = $this->db->quote($session_data); + $sql = "INSERT INTO sys_session (session_id,date_created,last_updated,session_data) VALUES ('$session_id','$date_created','$last_updated','$session_data')"; + $this->db->query($sql); + + } else { + $session_id = $this->db->quote($session_id); + $last_updated = date('Y-m-d H:i:s'); + $session_data = $this->db->quote($session_data); + $sql = "UPDATE sys_session SET last_updated = '$last_updated', session_data = '$session_data' WHERE session_id = '$session_id'"; + $this->db->query($sql); + + } + + return true; + } + + function destroy ($session_id) { + + $session_id = $this->db->quote($session_id); + $sql = "DELETE FROM sys_session WHERE session_id = '$session_id'"; + $this->db->query($sql); + + return true; + } + + function gc ($max_lifetime) { + + $real_now = date('Y-m-d H:i:s'); + $dt1 = strtotime("$real_now -$max_lifetime seconds"); + $dt2 = date('Y-m-d H:i:s', $dt1); + + $sql = "DELETE FROM sys_session WHERE last_updated < '$dt2'"; + $this->db->query($sql); + + return true; + + } + + function __destruct () { + @session_write_close(); + + } + +} + ?> \ No newline at end of file diff --git a/interface/lib/classes/tpl_cache.inc.php b/interface/lib/classes/tpl_cache.inc.php index 18e7d385f9..a3999466a7 100644 --- a/interface/lib/classes/tpl_cache.inc.php +++ b/interface/lib/classes/tpl_cache.inc.php @@ -1,186 +1,186 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 2002 Active Fish Group | -// +----------------------------------------------------------------------+ -// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | -// +----------------------------------------------------------------------+ -// -// $Id: cache.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ - -/** - * Class uses all of vlibTemplate's functionality but caches the template files. - * It creates an identical tree structure to your filesystem but with cached files. - * - * @author Kelvin Jones <kelvin@kelvinjones.co.uk> - * @since 22/02/2002 - * @package vLIB - * @access public - */ - -class tplc extends tpl { - -/*-----------------------------------------------------------------------------\ -| DO NOT TOUCH ANYTHING IN THIS CLASS, IT MAY NOT WORK OTHERWISE | -\-----------------------------------------------------------------------------*/ - - var $_cache = 1; // tells vlibTemplate that we're caching - var $_cachefile; // full path to current cache file (even if it doesn't yet exist) - var $_cacheexists; // has this file been cached before - var $_cachefilelocked; // is this file currently locked whilst writing - var $_cachefiledir; // dir of current cache file - var $_clearcache = 0; - - - /** - * FUNCTION: clearCache - * will unset a file, and set $this->_cacheexists to 0. - * - * @access public - * @return boolean - */ - function clearCache() { - $this->_clearcache = 1; - return true; - } - - /** - * FUNCTION: recache - * alias for clearCache(). - * - * @access public - * @return boolean - */ - function recache() { - return $this->clearCache(); - } - - /** - * FUNCTION: setCacheLifeTime - * sets the lifetime of the cached file - * - * @param int $int number of seconds to set lifetime to - * @access public - * @return boolean - */ - function setCacheLifeTime($int = null) { - if ($int == null || !is_int($int)) return false; - if ($int == 0) $int = 60; - if ($int == -1) $int = 157680000; // set to 5 yrs time - $this->OPTIONS['CACHE_LIFETIME'] = $int; - return true; - } - - /** - * FUNCTION: setCacheExtension - * sets the extention of the cache file - * - * @param str $str name of new cache extention - * @access public - * @return boolean - */ - function setCacheExtension($str = null) { - if ($str == null || !preg_match('/^[a-z0-9]+$/', strtolower($str))) return false; - $this->OPTIONS['CACHE_EXTENSION'] = strtolower($str); - return true; - } - - -/*----------------------------------------\ - Private Functions ------------------------------------------*/ - - /** - * FUNCTION: _checkCache - * checks if there's a cache, if there is then it will read the cache file as the template. - */ - function _checkCache ($tmplfile) { - $this->_cachefile = $this->_getFilename($tmplfile); - if ($this->_clearcache) { - if (file_exists($this->_cachefile)) unlink($this->_cachefile); - return false; - } - - if (file_exists($this->_cachefile)) { - $this->_cacheexists = 1; - - // if it's expired - if ((filemtime($this->_cachefile) + $this->OPTIONS['CACHE_LIFETIME']) < date ('U') - || filectime($this->_cachefile) < filemtime($tmplfile)) { - $this->_cacheexists = 0; - return false; // so that we know to recache - } - else { - return true; - } - - } else { - $this->_cacheexists = 0; - return false; - } - } - - - /** - * FUNCTION: _getFilename - * gets the full pathname for the cached file - * - */ - function _getFilename($tmplfile) { - return $this->OPTIONS['CACHE_DIRECTORY'].'/'.md5('vlibCachestaR'.realpath($tmplfile)).'.'.$this->OPTIONS['CACHE_EXTENSION']; - } - - /** - * FUNCTION: _createCache - * creates the cached file - * - */ - function _createCache($data) { - $cache_file = $this->_cachefile; - if(!$this->_prepareDirs($cache_file)) return false; // prepare all of the directories - - $f = fopen ($cache_file, "w"); - flock($f, 2); // set an EXclusive lock - if (!$f) vlibTemplateError::raiseError('VT_ERROR_NO_CACHE_WRITE',KILL,$cache_file); - fputs ($f, $data); // write the parsed string from vlibTemplate - flock($f, 3); // UNlock file - fclose ($f); - touch ($cache_file); - return true; - } - - /** - * FUNCTION: _prepareDirs - * prepares the directory structure - * - */ - function _prepareDirs($file) { - if (empty($file)) die('no filename'); //do error in future - $filepath = dirname($file); - if (is_dir($filepath)) return true; - - $dirs = preg_split('/[\\/]/', $filepath); - $currpath; - foreach ($dirs as $dir) { - $currpath .= $dir .'/'; - $type = @filetype($currpath); - - ($type=='link') and $type = 'dir'; - if ($type != 'dir' && $type != false && !empty($type)) { - vlibTemplateError::raiseError('VT_ERROR_WRONG_CACHE_TYPE',KILL,'directory: '.$currpath.', type: '.$type); - } - if ($type == 'dir') { - continue; - } - else { - $s = @mkdir($currpath, 0775); - if (!$s) vlibTemplateError::raiseError('VT_ERROR_CACHE_MKDIR_FAILURE',KILL,'directory: '.$currpath); - } - } - return true; - } - -} // -- end vlibTemplateCache class +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP version 4.0 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 2002 Active Fish Group | +// +----------------------------------------------------------------------+ +// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | +// +----------------------------------------------------------------------+ +// +// $Id: cache.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ + +/** + * Class uses all of vlibTemplate's functionality but caches the template files. + * It creates an identical tree structure to your filesystem but with cached files. + * + * @author Kelvin Jones <kelvin@kelvinjones.co.uk> + * @since 22/02/2002 + * @package vLIB + * @access public + */ + +class tplc extends tpl { + +/*-----------------------------------------------------------------------------\ +| DO NOT TOUCH ANYTHING IN THIS CLASS, IT MAY NOT WORK OTHERWISE | +\-----------------------------------------------------------------------------*/ + + var $_cache = 1; // tells vlibTemplate that we're caching + var $_cachefile; // full path to current cache file (even if it doesn't yet exist) + var $_cacheexists; // has this file been cached before + var $_cachefilelocked; // is this file currently locked whilst writing + var $_cachefiledir; // dir of current cache file + var $_clearcache = 0; + + + /** + * FUNCTION: clearCache + * will unset a file, and set $this->_cacheexists to 0. + * + * @access public + * @return boolean + */ + function clearCache() { + $this->_clearcache = 1; + return true; + } + + /** + * FUNCTION: recache + * alias for clearCache(). + * + * @access public + * @return boolean + */ + function recache() { + return $this->clearCache(); + } + + /** + * FUNCTION: setCacheLifeTime + * sets the lifetime of the cached file + * + * @param int $int number of seconds to set lifetime to + * @access public + * @return boolean + */ + function setCacheLifeTime($int = null) { + if ($int == null || !is_int($int)) return false; + if ($int == 0) $int = 60; + if ($int == -1) $int = 157680000; // set to 5 yrs time + $this->OPTIONS['CACHE_LIFETIME'] = $int; + return true; + } + + /** + * FUNCTION: setCacheExtension + * sets the extention of the cache file + * + * @param str $str name of new cache extention + * @access public + * @return boolean + */ + function setCacheExtension($str = null) { + if ($str == null || !preg_match('/^[a-z0-9]+$/', strtolower($str))) return false; + $this->OPTIONS['CACHE_EXTENSION'] = strtolower($str); + return true; + } + + +/*----------------------------------------\ + Private Functions +-----------------------------------------*/ + + /** + * FUNCTION: _checkCache + * checks if there's a cache, if there is then it will read the cache file as the template. + */ + function _checkCache ($tmplfile) { + $this->_cachefile = $this->_getFilename($tmplfile); + if ($this->_clearcache) { + if (file_exists($this->_cachefile)) unlink($this->_cachefile); + return false; + } + + if (file_exists($this->_cachefile)) { + $this->_cacheexists = 1; + + // if it's expired + if ((filemtime($this->_cachefile) + $this->OPTIONS['CACHE_LIFETIME']) < date ('U') + || filectime($this->_cachefile) < filemtime($tmplfile)) { + $this->_cacheexists = 0; + return false; // so that we know to recache + } + else { + return true; + } + + } else { + $this->_cacheexists = 0; + return false; + } + } + + + /** + * FUNCTION: _getFilename + * gets the full pathname for the cached file + * + */ + function _getFilename($tmplfile) { + return $this->OPTIONS['CACHE_DIRECTORY'].'/'.md5('vlibCachestaR'.realpath($tmplfile)).'.'.$this->OPTIONS['CACHE_EXTENSION']; + } + + /** + * FUNCTION: _createCache + * creates the cached file + * + */ + function _createCache($data) { + $cache_file = $this->_cachefile; + if(!$this->_prepareDirs($cache_file)) return false; // prepare all of the directories + + $f = fopen ($cache_file, "w"); + flock($f, 2); // set an EXclusive lock + if (!$f) vlibTemplateError::raiseError('VT_ERROR_NO_CACHE_WRITE',KILL,$cache_file); + fputs ($f, $data); // write the parsed string from vlibTemplate + flock($f, 3); // UNlock file + fclose ($f); + touch ($cache_file); + return true; + } + + /** + * FUNCTION: _prepareDirs + * prepares the directory structure + * + */ + function _prepareDirs($file) { + if (empty($file)) die('no filename'); //do error in future + $filepath = dirname($file); + if (is_dir($filepath)) return true; + + $dirs = preg_split('/[\\/]/', $filepath); + $currpath; + foreach ($dirs as $dir) { + $currpath .= $dir .'/'; + $type = @filetype($currpath); + + ($type=='link') and $type = 'dir'; + if ($type != 'dir' && $type != false && !empty($type)) { + vlibTemplateError::raiseError('VT_ERROR_WRONG_CACHE_TYPE',KILL,'directory: '.$currpath.', type: '.$type); + } + if ($type == 'dir') { + continue; + } + else { + $s = @mkdir($currpath, 0775); + if (!$s) vlibTemplateError::raiseError('VT_ERROR_CACHE_MKDIR_FAILURE',KILL,'directory: '.$currpath); + } + } + return true; + } + +} // -- end vlibTemplateCache class ?> \ No newline at end of file diff --git a/interface/lib/classes/tpl_error.inc.php b/interface/lib/classes/tpl_error.inc.php index 29a9ae0fc4..5f6360978c 100644 --- a/interface/lib/classes/tpl_error.inc.php +++ b/interface/lib/classes/tpl_error.inc.php @@ -1,92 +1,92 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 2002 Active Fish Group | -// +----------------------------------------------------------------------+ -// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | -// +----------------------------------------------------------------------+ -// -// $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ - -define('FATAL', E_USER_ERROR); -define('WARNING', E_USER_WARNING); -define('NOTICE', E_USER_NOTICE); -define('KILL', -1); // used for killing inside parsing. - -/** - * Class is used by vlibTemplate. - * It handles all of the error reporting for vlibTemplate. - * - * @author Kelvin Jones <kelvin@kelvinjones.co.uk> - * @since 06/03/2002 - * @package vLIB - * @access private - */ - -class vlibTemplateError { - -/*-----------------------------------------------------------------------------\ -| DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE | -\-----------------------------------------------------------------------------*/ - - function raiseError ($code, $level = null, $extra=null) { - if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level - - $error_codes = array( - 'VT_ERROR_NOFILE' => 'vlibTemplate Error: Template ('.$extra.') file not found.', - 'VT_ERROR_PARSE' => 'vlibTemplate Error: Parse error!<br />To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).', - 'VT_NOTICE_INVALID_TAG' => 'vlibTemplate Notice: Invalid tag ('.$extra.').', - 'VT_ERROR_INVALID_TAG' => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.', - 'VT_NOTICE_INVALID_ATT' => 'vlibTemplate Notice: Invalid attribute ('.$extra.').', - 'VT_WARNING_INVALID_ARR' => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').', - 'VT_ERROR_INVALID_ERROR_CODE' => 'vlibTemplate Error: Invalid error raised.', - 'VT_ERROR_WRONG_NO_PARAMS' => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.', - 'VT_ERROR_UNKNOWN_VAR' => 'vlibTemplate Error: template var not found.', - 'VT_ERROR_NO_CACHE_WRITE' => 'vlibTemplate Error: unable to write to cache file ('.$extra.').', - 'VT_ERROR_WRONG_CACHE_TYPE' => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').', - 'VT_ERROR_CACHE_MKDIR_FAILURE' => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').', - 'VT_WARNING_NOT_CACHE_OBJ' => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.', - 'VT_WARNING_LOOP_NOT_SET' => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.', - 'VT_WARNING_INVALID_RESOURCE' => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".', - 'VT_WARNING_INVALID_LOOP_DB' => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.', - 'VT_WARNING_INVALID_IF_OP' => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.' - ); - - $error_levels = array( - 'VT_ERROR_NOFILE' => FATAL, - 'VT_ERROR_PARSE' => FATAL, - 'VT_NOTICE_INVALID_TAG' => NOTICE, - 'VT_ERROR_INVALID_TAG' => FATAL, - 'VT_NOTICE_INVALID_ATT' => NOTICE, - 'VT_WARNING_INVALID_ARR' => WARNING, - 'VT_ERROR_INVALID_ERROR_CODE' => FATAL, - 'VT_ERROR_WRONG_NO_PARAMS' => WARNING, - 'VT_ERROR_UNKNOWN_VAR' => WARNING, - 'VT_ERROR_NO_CACHE_WRITE' => KILL, - 'VT_ERROR_WRONG_CACHE_TYPE' => KILL, - 'VT_ERROR_CACHE_MKDIR_FAILURE' => KILL, - 'VT_WARNING_NOT_CACHE_OBJ' => WARNING, - 'VT_WARNING_LOOP_NOT_SET' => WARNING, - 'VT_WARNING_INVALID_RESOURCE' => WARNING, - 'VT_WARNING_INVALID_LOOP_DB' => WARNING, - 'VT_WARNING_INVALID_IF_OP' => WARNING - ); - - ($level === null) and $level = $error_levels[$code]; - if ($level == KILL) { - die ($error_codes[$code]); - } - - if ($msg = $error_codes[$code]) { - trigger_error($msg, $level); - } else { - $level = $error_levels['VT_ERROR_INVALID_ERROR_CODE']; - $msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE']; - trigger_error($msg, $level); - } - return; - } -} +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP version 4.0 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 2002 Active Fish Group | +// +----------------------------------------------------------------------+ +// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | +// +----------------------------------------------------------------------+ +// +// $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ + +define('FATAL', E_USER_ERROR); +define('WARNING', E_USER_WARNING); +define('NOTICE', E_USER_NOTICE); +define('KILL', -1); // used for killing inside parsing. + +/** + * Class is used by vlibTemplate. + * It handles all of the error reporting for vlibTemplate. + * + * @author Kelvin Jones <kelvin@kelvinjones.co.uk> + * @since 06/03/2002 + * @package vLIB + * @access private + */ + +class vlibTemplateError { + +/*-----------------------------------------------------------------------------\ +| DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE | +\-----------------------------------------------------------------------------*/ + + function raiseError ($code, $level = null, $extra=null) { + if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level + + $error_codes = array( + 'VT_ERROR_NOFILE' => 'vlibTemplate Error: Template ('.$extra.') file not found.', + 'VT_ERROR_PARSE' => 'vlibTemplate Error: Parse error!<br />To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).', + 'VT_NOTICE_INVALID_TAG' => 'vlibTemplate Notice: Invalid tag ('.$extra.').', + 'VT_ERROR_INVALID_TAG' => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.', + 'VT_NOTICE_INVALID_ATT' => 'vlibTemplate Notice: Invalid attribute ('.$extra.').', + 'VT_WARNING_INVALID_ARR' => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').', + 'VT_ERROR_INVALID_ERROR_CODE' => 'vlibTemplate Error: Invalid error raised.', + 'VT_ERROR_WRONG_NO_PARAMS' => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.', + 'VT_ERROR_UNKNOWN_VAR' => 'vlibTemplate Error: template var not found.', + 'VT_ERROR_NO_CACHE_WRITE' => 'vlibTemplate Error: unable to write to cache file ('.$extra.').', + 'VT_ERROR_WRONG_CACHE_TYPE' => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').', + 'VT_ERROR_CACHE_MKDIR_FAILURE' => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').', + 'VT_WARNING_NOT_CACHE_OBJ' => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.', + 'VT_WARNING_LOOP_NOT_SET' => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.', + 'VT_WARNING_INVALID_RESOURCE' => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".', + 'VT_WARNING_INVALID_LOOP_DB' => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.', + 'VT_WARNING_INVALID_IF_OP' => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.' + ); + + $error_levels = array( + 'VT_ERROR_NOFILE' => FATAL, + 'VT_ERROR_PARSE' => FATAL, + 'VT_NOTICE_INVALID_TAG' => NOTICE, + 'VT_ERROR_INVALID_TAG' => FATAL, + 'VT_NOTICE_INVALID_ATT' => NOTICE, + 'VT_WARNING_INVALID_ARR' => WARNING, + 'VT_ERROR_INVALID_ERROR_CODE' => FATAL, + 'VT_ERROR_WRONG_NO_PARAMS' => WARNING, + 'VT_ERROR_UNKNOWN_VAR' => WARNING, + 'VT_ERROR_NO_CACHE_WRITE' => KILL, + 'VT_ERROR_WRONG_CACHE_TYPE' => KILL, + 'VT_ERROR_CACHE_MKDIR_FAILURE' => KILL, + 'VT_WARNING_NOT_CACHE_OBJ' => WARNING, + 'VT_WARNING_LOOP_NOT_SET' => WARNING, + 'VT_WARNING_INVALID_RESOURCE' => WARNING, + 'VT_WARNING_INVALID_LOOP_DB' => WARNING, + 'VT_WARNING_INVALID_IF_OP' => WARNING + ); + + ($level === null) and $level = $error_levels[$code]; + if ($level == KILL) { + die ($error_codes[$code]); + } + + if ($msg = $error_codes[$code]) { + trigger_error($msg, $level); + } else { + $level = $error_levels['VT_ERROR_INVALID_ERROR_CODE']; + $msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE']; + trigger_error($msg, $level); + } + return; + } +} ?> \ No newline at end of file diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php index 4606a0cefe..faab6a058f 100644 --- a/interface/lib/classes/validate_dns.inc.php +++ b/interface/lib/classes/validate_dns.inc.php @@ -1,287 +1,287 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - DNS validation -*/ - -class validate_dns { - -function validate_field($field, $area, $zoneid, $wildcard_allowed = 1){ - //$desc: Name, Data, RP mbox, RP txtref, SRV target, Zone origin, Name server, Admin email - global $app, $conf; - - switch ($area) { - case "Name": - $desc = $app->tform->wordbook['name_txt']; - break; - case "Data": - $desc = $app->tform->wordbook['data_txt']; - break; - case "RP mbox": - $desc = $app->tform->wordbook['rp_mbox_txt']; - break; - case "RP txtref": - $desc = $app->tform->wordbook['rp_txtref_txt']; - break; - case "SRV target": - $desc = $app->tform->wordbook['srv_target_txt']; - break; - case "Zone origin": - $desc = $app->tform->wordbook['zone_origin_txt']; - break; - case "Name server": - $desc = $app->tform->wordbook['ns_txt']; - break; - case "Admin email": - $desc = $app->tform->wordbook['mbox_txt']; - break; - } - - $error = ''; - - $valid_characters = "*ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_"; - - if(strlen($field) > 255) $error .= $desc." ".$app->tform->wordbook['error_255_characters']."<br>\r\n"; - - $parts = explode(".", $field); - $i = 0; - $empty = 0; - foreach ($parts as $part){ - $i++; - - if(trim($part) == '') $empty += 1; - - if(strlen($part) > 63) $error .= $desc." ".$app->tform->wordbook['error_63_characters']."<br>\r\n"; - - if(strspn($part, $valid_characters) != strlen($part)) $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; - - if(substr($part, 0, 1) == '-') $error .= $desc." ".$app->tform->wordbook['error_hyphen_begin']."<br>\r\n"; - if(substr($part, -1) == '-') $error .= $desc." ".$app->tform->wordbook['error_hyphen_end']."<br>\r\n"; - - if(strstr($part, "*")){ - if($wildcard_allowed){ - if($i != 1) $error .= $desc." ".$app->tform->wordbook['error_wildcard_non_initial_part']."<br>\r\n"; - - if($part != "*") $error .= $desc." ".$app->tform->wordbook['error_wildcard_mix']."<br>\r\n"; - } else { - $error .= $desc." ".$app->tform->wordbook['error_no_wildcard_allowed']."<br>\r\n"; - } - } - } - - if(substr($field, -1) == '.'){ - if($i > 2 && $empty > 1) $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; - } else { - if($empty > 0 && $field != '') $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; - } - - if(substr($field, -1) == '.' && $area == 'Name'){ - $soa = $app->db->queryOneRecord("SELECT * FROM soa WHERE id = ".$zoneid); - if(substr($field, (strlen($field) - strlen($soa['origin']))) != $soa['origin']) $error .= $desc." ".$app->tform->wordbook['error_out_of_zone']."<br>\r\n"; - } - - return $error; -} - -function validate_rp_data(&$data, $zoneid){ - global $app, $conf; - $error = ''; - $fields = explode(" ", trim($data)); - if(count($fields) != 2) return $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_invalid_rp']."<br>\r\n"; - $mbox = $fields[0]; - $txtref = $fields[1]; - - $error .= $this->validate_field($mbox, 'RP mbox', $zoneid, 0); - $error .= $this->validate_field($txtref, 'RP txtref', $zoneid, 0); - - $data = $mbox." ".$txtref; - return $error; -} - -function validate_srv_data(&$data, $zoneid){ - global $app, $conf; - $error = ''; - - $fields = explode(" ", trim($data)); - if(count($fields) != 3) return $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_invalid_srv']."<br>\r\n"; - - $weight = $fields[0]; - $port = $fields[1]; - $target = $fields[2]; - if($weight < 0 || $weight > 65535) $error .= $app->tform->wordbook['weight_txt']." (\"<i>" . htmlentities($weight,ENT_QUOTES,$conf["html_content_encoding"])."</i>\") ".$app->tform->wordbook['error_srv_out_of_range']."<br>\r\n"; - if($port < 0 || $port > 65535) $error .= $app->tform->wordbook['port_txt']." (\"<i>".htmlentities($port,ENT_QUOTES,$conf["html_content_encoding"])."</i>\") ".$app->tform->wordbook['error_srv_out_of_range']."<br>\r\n"; - - $error .= $this->validate_field($target, "SRV target", $zoneid, 0); - - $data = (int)$weight." ".(int)$port." ".$target; - return $error; -} - -function is_integer($value, $fieldname, $zero_allowed = 0){ - global $app, $conf; - - $error = ''; - - if(intval($value) != $value || !is_numeric($value)) $error .= $fieldname." ".$app->tform->wordbook['error_must_be_integer']."<br>\r\n"; - if($value > 2147483647) $error .= $fieldname." ".$app->tform->wordbook['error_must_not_be_greater_than_2147483647']."<br>\r\n"; - if(!$zero_allowed){ - if($value <= 0) $error .= $fieldname." ".$app->tform->wordbook['error_must_be_positive']."<br>\r\n"; - } else { - if($value < 0) $error .= $fieldname." ".$app->tform->wordbook['error_must_not_be_negative']."<br>\r\n"; - } - - return $error; -} - -function validate_rr(&$rr){ - global $app, $conf; - - $error = ''; - - $tmp_rr = $rr; - foreach($tmp_rr as $key => $val){ - $rr[$key] = trim($val); - } - unset($tmp_rr); - - $error .= $this->validate_field($rr['name'], 'Name', $rr['zone'], 1); - - switch ($rr['type']) { - case "A": - $ip_parts = explode(".", $rr['data']); - if(count($ip_parts) != 4){ - $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_a']."<br>\r\n"; - } else { - for($n = 0; $n < 4; $n++){ - $q = $ip_parts[$n]; - if(!is_numeric($q) || (int)$q < 0 || (int)$q > 255 || trim($q) !== $q) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_a']."<br>\r\n"; - } - } - $rr['data'] = (int)$ip_parts[0].".".(int)$ip_parts[1].".".(int)$ip_parts[2].".".(int)$ip_parts[3]; - break; - case "AAAA": - $valid_chars = "ABCDEFabcdef1234567890:"; - - if(strspn($rr['data'], $valid_chars) != strlen($rr['data'])) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_aaaa']."<br>\r\n"; - break; - case "ALIAS": - $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); - break; - case "CNAME": - $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); - break; - case "HINFO": - if(!strchr($rr['data'], ' ')) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_hinfo']."<br>\r\n"; - break; - case "MX": - $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); - $error .= $this->is_integer($rr['aux'], $app->tform->wordbook['aux_txt'], 1); - break; - case "NS": - $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); - break; - case "PTR": - $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); - if(substr($rr['data'], -1) != '.') $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_ptr']."<br>\r\n"; - break; - case "RP": - $error .= $this->validate_rp_data($rr['data'], $rr['zone']); - break; - case "SRV": - $error .= $this->validate_srv_data($rr['data'], $rr['zone']); - $error .= $this->is_integer($rr['aux'], $app->tform->wordbook['aux_txt'], 1); - break; - case "TXT": - break; - } - - $error .= $this->is_integer($rr['ttl'], $app->tform->wordbook['ttl_txt']); - - - return $error; -} - -function validate_soa(&$soa){ - global $app, $conf; - - $error = ''; - - $tmp_soa = $soa; - foreach($tmp_soa as $key => $val){ - if($key != 'active') $soa[$key] = trim($val); - } - unset($tmp_soa); - - if($soa['origin'] == '') $error .= $app->tform->wordbook['origin_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; - if(substr($soa['origin'], -1) != '.') $error .= $app->tform->wordbook['origin_txt']." ".$app->tform->wordbook['error_dot']."<br>\r\n"; - $error .= $this->validate_field($soa['origin'], "Zone origin", $soa['id'], 0); - - $error .= $this->is_integer($soa['ttl'], $app->tform->wordbook['ttl_txt']); - - if($soa['ns'] == '') $error .= $app->tform->wordbook['ns_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; - $error .= $this->validate_field($soa['ns'], "Name server", $soa['id'], 0); - - if($soa['mbox'] == '') $error .= $app->tform->wordbook['mbox_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; - $error .= $this->validate_field($soa['mbox'], "Admin email", $soa['id'], 0); - - $error .= $this->is_integer($soa['refresh'], $app->tform->wordbook['refresh_txt']); - - $error .= $this->is_integer($soa['retry'], $app->tform->wordbook['retry_txt']); - - $error .= $this->is_integer($soa['expire'], $app->tform->wordbook['expire_txt']); - - $error .= $this->is_integer($soa['minimum'], $app->tform->wordbook['minimum_txt']); - - return $error; -} - -function increase_serial($serial){ - global $app, $conf; - - // increase serial - $serial_date = substr($serial, 0, 8); - $count = intval(substr($serial, 8, 2)); - $current_date = date("Ymd"); - if($serial_date >= $current_date){ - $count += 1; - if ($count > 99) { - $serial_date += 1; - $count = 0; - } - $count = str_pad($count, 2, "0", STR_PAD_LEFT); - $new_serial = $serial_date.$count; - } else { - $new_serial = $current_date.'01'; - } - return $new_serial; -} - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + DNS validation +*/ + +class validate_dns { + +function validate_field($field, $area, $zoneid, $wildcard_allowed = 1){ + //$desc: Name, Data, RP mbox, RP txtref, SRV target, Zone origin, Name server, Admin email + global $app, $conf; + + switch ($area) { + case "Name": + $desc = $app->tform->wordbook['name_txt']; + break; + case "Data": + $desc = $app->tform->wordbook['data_txt']; + break; + case "RP mbox": + $desc = $app->tform->wordbook['rp_mbox_txt']; + break; + case "RP txtref": + $desc = $app->tform->wordbook['rp_txtref_txt']; + break; + case "SRV target": + $desc = $app->tform->wordbook['srv_target_txt']; + break; + case "Zone origin": + $desc = $app->tform->wordbook['zone_origin_txt']; + break; + case "Name server": + $desc = $app->tform->wordbook['ns_txt']; + break; + case "Admin email": + $desc = $app->tform->wordbook['mbox_txt']; + break; + } + + $error = ''; + + $valid_characters = "*ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_"; + + if(strlen($field) > 255) $error .= $desc." ".$app->tform->wordbook['error_255_characters']."<br>\r\n"; + + $parts = explode(".", $field); + $i = 0; + $empty = 0; + foreach ($parts as $part){ + $i++; + + if(trim($part) == '') $empty += 1; + + if(strlen($part) > 63) $error .= $desc." ".$app->tform->wordbook['error_63_characters']."<br>\r\n"; + + if(strspn($part, $valid_characters) != strlen($part)) $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; + + if(substr($part, 0, 1) == '-') $error .= $desc." ".$app->tform->wordbook['error_hyphen_begin']."<br>\r\n"; + if(substr($part, -1) == '-') $error .= $desc." ".$app->tform->wordbook['error_hyphen_end']."<br>\r\n"; + + if(strstr($part, "*")){ + if($wildcard_allowed){ + if($i != 1) $error .= $desc." ".$app->tform->wordbook['error_wildcard_non_initial_part']."<br>\r\n"; + + if($part != "*") $error .= $desc." ".$app->tform->wordbook['error_wildcard_mix']."<br>\r\n"; + } else { + $error .= $desc." ".$app->tform->wordbook['error_no_wildcard_allowed']."<br>\r\n"; + } + } + } + + if(substr($field, -1) == '.'){ + if($i > 2 && $empty > 1) $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; + } else { + if($empty > 0 && $field != '') $error .= $desc." ".$app->tform->wordbook['error_invalid_characters']."<br>\r\n"; + } + + if(substr($field, -1) == '.' && $area == 'Name'){ + $soa = $app->db->queryOneRecord("SELECT * FROM soa WHERE id = ".$zoneid); + if(substr($field, (strlen($field) - strlen($soa['origin']))) != $soa['origin']) $error .= $desc." ".$app->tform->wordbook['error_out_of_zone']."<br>\r\n"; + } + + return $error; +} + +function validate_rp_data(&$data, $zoneid){ + global $app, $conf; + $error = ''; + $fields = explode(" ", trim($data)); + if(count($fields) != 2) return $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_invalid_rp']."<br>\r\n"; + $mbox = $fields[0]; + $txtref = $fields[1]; + + $error .= $this->validate_field($mbox, 'RP mbox', $zoneid, 0); + $error .= $this->validate_field($txtref, 'RP txtref', $zoneid, 0); + + $data = $mbox." ".$txtref; + return $error; +} + +function validate_srv_data(&$data, $zoneid){ + global $app, $conf; + $error = ''; + + $fields = explode(" ", trim($data)); + if(count($fields) != 3) return $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_invalid_srv']."<br>\r\n"; + + $weight = $fields[0]; + $port = $fields[1]; + $target = $fields[2]; + if($weight < 0 || $weight > 65535) $error .= $app->tform->wordbook['weight_txt']." (\"<i>" . htmlentities($weight,ENT_QUOTES,$conf["html_content_encoding"])."</i>\") ".$app->tform->wordbook['error_srv_out_of_range']."<br>\r\n"; + if($port < 0 || $port > 65535) $error .= $app->tform->wordbook['port_txt']." (\"<i>".htmlentities($port,ENT_QUOTES,$conf["html_content_encoding"])."</i>\") ".$app->tform->wordbook['error_srv_out_of_range']."<br>\r\n"; + + $error .= $this->validate_field($target, "SRV target", $zoneid, 0); + + $data = (int)$weight." ".(int)$port." ".$target; + return $error; +} + +function is_integer($value, $fieldname, $zero_allowed = 0){ + global $app, $conf; + + $error = ''; + + if(intval($value) != $value || !is_numeric($value)) $error .= $fieldname." ".$app->tform->wordbook['error_must_be_integer']."<br>\r\n"; + if($value > 2147483647) $error .= $fieldname." ".$app->tform->wordbook['error_must_not_be_greater_than_2147483647']."<br>\r\n"; + if(!$zero_allowed){ + if($value <= 0) $error .= $fieldname." ".$app->tform->wordbook['error_must_be_positive']."<br>\r\n"; + } else { + if($value < 0) $error .= $fieldname." ".$app->tform->wordbook['error_must_not_be_negative']."<br>\r\n"; + } + + return $error; +} + +function validate_rr(&$rr){ + global $app, $conf; + + $error = ''; + + $tmp_rr = $rr; + foreach($tmp_rr as $key => $val){ + $rr[$key] = trim($val); + } + unset($tmp_rr); + + $error .= $this->validate_field($rr['name'], 'Name', $rr['zone'], 1); + + switch ($rr['type']) { + case "A": + $ip_parts = explode(".", $rr['data']); + if(count($ip_parts) != 4){ + $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_a']."<br>\r\n"; + } else { + for($n = 0; $n < 4; $n++){ + $q = $ip_parts[$n]; + if(!is_numeric($q) || (int)$q < 0 || (int)$q > 255 || trim($q) !== $q) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_a']."<br>\r\n"; + } + } + $rr['data'] = (int)$ip_parts[0].".".(int)$ip_parts[1].".".(int)$ip_parts[2].".".(int)$ip_parts[3]; + break; + case "AAAA": + $valid_chars = "ABCDEFabcdef1234567890:"; + + if(strspn($rr['data'], $valid_chars) != strlen($rr['data'])) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_aaaa']."<br>\r\n"; + break; + case "ALIAS": + $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); + break; + case "CNAME": + $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); + break; + case "HINFO": + if(!strchr($rr['data'], ' ')) $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_hinfo']."<br>\r\n"; + break; + case "MX": + $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); + $error .= $this->is_integer($rr['aux'], $app->tform->wordbook['aux_txt'], 1); + break; + case "NS": + $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); + break; + case "PTR": + $error .= $this->validate_field($rr['data'], 'Data', $rr['zone'], 0); + if(substr($rr['data'], -1) != '.') $error .= $app->tform->wordbook['data_txt']." ".$app->tform->wordbook['error_ptr']."<br>\r\n"; + break; + case "RP": + $error .= $this->validate_rp_data($rr['data'], $rr['zone']); + break; + case "SRV": + $error .= $this->validate_srv_data($rr['data'], $rr['zone']); + $error .= $this->is_integer($rr['aux'], $app->tform->wordbook['aux_txt'], 1); + break; + case "TXT": + break; + } + + $error .= $this->is_integer($rr['ttl'], $app->tform->wordbook['ttl_txt']); + + + return $error; +} + +function validate_soa(&$soa){ + global $app, $conf; + + $error = ''; + + $tmp_soa = $soa; + foreach($tmp_soa as $key => $val){ + if($key != 'active') $soa[$key] = trim($val); + } + unset($tmp_soa); + + if($soa['origin'] == '') $error .= $app->tform->wordbook['origin_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; + if(substr($soa['origin'], -1) != '.') $error .= $app->tform->wordbook['origin_txt']." ".$app->tform->wordbook['error_dot']."<br>\r\n"; + $error .= $this->validate_field($soa['origin'], "Zone origin", $soa['id'], 0); + + $error .= $this->is_integer($soa['ttl'], $app->tform->wordbook['ttl_txt']); + + if($soa['ns'] == '') $error .= $app->tform->wordbook['ns_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; + $error .= $this->validate_field($soa['ns'], "Name server", $soa['id'], 0); + + if($soa['mbox'] == '') $error .= $app->tform->wordbook['mbox_txt']." ".$app->tform->wordbook['error_empty']."<br>\r\n"; + $error .= $this->validate_field($soa['mbox'], "Admin email", $soa['id'], 0); + + $error .= $this->is_integer($soa['refresh'], $app->tform->wordbook['refresh_txt']); + + $error .= $this->is_integer($soa['retry'], $app->tform->wordbook['retry_txt']); + + $error .= $this->is_integer($soa['expire'], $app->tform->wordbook['expire_txt']); + + $error .= $this->is_integer($soa['minimum'], $app->tform->wordbook['minimum_txt']); + + return $error; +} + +function increase_serial($serial){ + global $app, $conf; + + // increase serial + $serial_date = substr($serial, 0, 8); + $count = intval(substr($serial, 8, 2)); + $current_date = date("Ymd"); + if($serial_date >= $current_date){ + $count += 1; + if ($count > 99) { + $serial_date += 1; + $count = 0; + } + $count = str_pad($count, 2, "0", STR_PAD_LEFT); + $new_serial = $serial_date.$count; + } else { + $new_serial = $current_date.'01'; + } + return $new_serial; +} + } \ No newline at end of file diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php index 2ff9d0e409..4112a2a497 100644 --- a/interface/web/admin/form/firewall.tform.php +++ b/interface/web/admin/form/firewall.tform.php @@ -1,112 +1,112 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "Firewall"; -$form["description"] = ""; -$form["name"] = "firewall"; -$form["action"] = "firewall_edit.php"; -$form["db_table"] = "firewall"; -$form["db_table_idx"] = "firewall_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "firewall"; -$form["list_default"] = "firewall_list.php"; -$form["auth"] = 'yes'; // yes / no - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['firewall'] = array ( - 'title' => "Firewall", - 'width' => 100, - 'template' => "templates/firewall_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'firewall_error_unique'), - ), - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'tcp_port' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\s0-9\,\:]{0,255}$/', - 'errmsg'=> 'tcp_ports_error_regex'), - ), - 'default' => '20,21,22,25,53,80,110,143,443,3306,8080,8081,10000', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'udp_port' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\s0-9\,\:]{0,255}$/', - 'errmsg'=> 'tcp_ports_error_regex'), - ), - 'default' => '53,3306', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Firewall"; +$form["description"] = ""; +$form["name"] = "firewall"; +$form["action"] = "firewall_edit.php"; +$form["db_table"] = "firewall"; +$form["db_table_idx"] = "firewall_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "firewall"; +$form["list_default"] = "firewall_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['firewall'] = array ( + 'title' => "Firewall", + 'width' => 100, + 'template' => "templates/firewall_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'firewall_error_unique'), + ), + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'tcp_port' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[\s0-9\,\:]{0,255}$/', + 'errmsg'=> 'tcp_ports_error_regex'), + ), + 'default' => '20,21,22,25,53,80,110,143,443,3306,8080,8081,10000', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'udp_port' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[\s0-9\,\:]{0,255}$/', + 'errmsg'=> 'tcp_ports_error_regex'), + ), + 'default' => '53,3306', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + ?> \ No newline at end of file diff --git a/interface/web/admin/form/remote_user.tform.php b/interface/web/admin/form/remote_user.tform.php index 3cc3e6dc87..1a3824a60b 100644 --- a/interface/web/admin/form/remote_user.tform.php +++ b/interface/web/admin/form/remote_user.tform.php @@ -1,162 +1,162 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$function_list = array(); -$function_list['mail_domain_get,mail_domain_add,mail_domain_update,mail_domain_delete,mail_domain_set_status,mail_domain_get_by_domain'] = 'Mail domain functions'; -$function_list['mail_mailinglist_get,mail_mailinglist_add,mail_mailinglist_update,mail_mailinglist_delete'] = 'Mail mailinglist functions'; -$function_list['mail_user_get,mail_user_add,mail_user_update,mail_user_delete'] = 'Mail user functions'; -$function_list['mail_alias_get,mail_alias_add,mail_alias_update,mail_alias_delete'] = 'Mail alias functions'; -$function_list['mail_forward_get,mail_forward_add,mail_forward_update,mail_forward_delete'] = 'Mail forward functions'; -$function_list['mail_catchall_get,mail_catchall_add,mail_catchall_update,mail_catchall_delete'] = 'Mail catchall functions'; -$function_list['mail_transport_get,mail_transport_add,mail_transport_update,mail_transport_delete'] = 'Mail transport functions'; -$function_list['mail_whitelist_get,mail_whitelist_add,mail_whitelist_update,mail_whitelist_delete'] = 'Mail whitelist functions'; -$function_list['mail_blacklist_get,mail_blacklist_add,mail_blacklist_update,mail_blacklist_delete'] = 'Mail blacklist functions'; -$function_list['mail_spamfilter_user_get,mail_spamfilter_user_add,mail_spamfilter_user_update,mail_spamfilter_user_delete'] = 'Mail spamfilter user functions'; -$function_list['mail_policy_get,mail_policy_add,mail_policy_update,mail_policy_delete'] = 'Mail spamfilter policy functions'; -$function_list['mail_fetchmail_get,mail_fetchmail_add,mail_fetchmail_update,mail_fetchmail_delete'] = 'Mail fetchmail functions'; -$function_list['mail_spamfilter_whitelist_get,mail_spamfilter_whitelist_add,mail_spamfilter_whitelist_update,mail_spamfilter_whitelist_delete'] = 'Mail spamfilter whitelist functions'; -$function_list['mail_spamfilter_blacklist_get,mail_spamfilter_blacklist_add,mail_spamfilter_blacklist_update,mail_spamfilter_blacklist_delete'] = 'Mail spamfilter blacklist functions'; -$function_list['mail_user_filter_get,mail_user_filter_add,mail_user_filter_update,mail_user_filter_delete'] = 'Mail user filter functions'; -$function_list['mail_filter_get,mail_filter_add,mail_filter_update,mail_filter_delete'] = 'Mail filter functions'; +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$function_list = array(); +$function_list['mail_domain_get,mail_domain_add,mail_domain_update,mail_domain_delete,mail_domain_set_status,mail_domain_get_by_domain'] = 'Mail domain functions'; +$function_list['mail_mailinglist_get,mail_mailinglist_add,mail_mailinglist_update,mail_mailinglist_delete'] = 'Mail mailinglist functions'; +$function_list['mail_user_get,mail_user_add,mail_user_update,mail_user_delete'] = 'Mail user functions'; +$function_list['mail_alias_get,mail_alias_add,mail_alias_update,mail_alias_delete'] = 'Mail alias functions'; +$function_list['mail_forward_get,mail_forward_add,mail_forward_update,mail_forward_delete'] = 'Mail forward functions'; +$function_list['mail_catchall_get,mail_catchall_add,mail_catchall_update,mail_catchall_delete'] = 'Mail catchall functions'; +$function_list['mail_transport_get,mail_transport_add,mail_transport_update,mail_transport_delete'] = 'Mail transport functions'; +$function_list['mail_whitelist_get,mail_whitelist_add,mail_whitelist_update,mail_whitelist_delete'] = 'Mail whitelist functions'; +$function_list['mail_blacklist_get,mail_blacklist_add,mail_blacklist_update,mail_blacklist_delete'] = 'Mail blacklist functions'; +$function_list['mail_spamfilter_user_get,mail_spamfilter_user_add,mail_spamfilter_user_update,mail_spamfilter_user_delete'] = 'Mail spamfilter user functions'; +$function_list['mail_policy_get,mail_policy_add,mail_policy_update,mail_policy_delete'] = 'Mail spamfilter policy functions'; +$function_list['mail_fetchmail_get,mail_fetchmail_add,mail_fetchmail_update,mail_fetchmail_delete'] = 'Mail fetchmail functions'; +$function_list['mail_spamfilter_whitelist_get,mail_spamfilter_whitelist_add,mail_spamfilter_whitelist_update,mail_spamfilter_whitelist_delete'] = 'Mail spamfilter whitelist functions'; +$function_list['mail_spamfilter_blacklist_get,mail_spamfilter_blacklist_add,mail_spamfilter_blacklist_update,mail_spamfilter_blacklist_delete'] = 'Mail spamfilter blacklist functions'; +$function_list['mail_user_filter_get,mail_user_filter_add,mail_user_filter_update,mail_user_filter_delete'] = 'Mail user filter functions'; +$function_list['mail_filter_get,mail_filter_add,mail_filter_update,mail_filter_delete'] = 'Mail filter functions'; $function_list['client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_change_password,client_get_id,client_delete_everything'] = 'Client functions'; $function_list['server_get,get_function_list,client_templates_get_all,server_get_serverid_by_ip'] = 'Server functions'; -$function_list['sites_cron_get,sites_cron_add,sites_cron_update,sites_cron_delete'] = 'Sites cron functions'; -$function_list['sites_database_get,sites_database_add,sites_database_update,sites_database_delete, sites_database_get_all_by_user'] = 'Sites database functions'; -$function_list['sites_ftp_user_get,sites_ftp_user_add,sites_ftp_user_update,sites_ftp_user_delete'] = 'Sites FTP-User functions'; -$function_list['sites_shell_user_get,sites_shell_user_add,sites_shell_user_update,sites_shell_user_delete'] = 'Sites Shell-User functions'; -$function_list['sites_web_domain_get,sites_web_domain_add,sites_web_domain_update,sites_web_domain_delete,sites_web_domain_set_status'] = 'Sites Domain functions'; -$function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; -$function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; -$function_list['dns_zone_get,dns_zone_add,dns_zone_update,dns_zone_delete,dns_zone_set_status'] = 'DNS zone functions'; -$function_list['dns_a_get,dns_a_add,dns_a_update,dns_a_delete'] = 'DNS a functions'; -$function_list['dns_aaaa_get,dns_aaaa_add,dns_aaaa_update,dns_aaaa_delete'] = 'DNS aaaa functions'; -$function_list['dns_alias_get,dns_alias_add,dns_alias_update,dns_alias_delete'] = 'DNS alias functions'; -$function_list['dns_cname_get,dns_cname_add,dns_cname_update,dns_cname_delete'] = 'DNS cname functions'; -$function_list['dns_hinfo_get,dns_hinfo_add,dns_hinfo_update,dns_hinfo_delete'] = 'DNS hinfo functions'; -$function_list['dns_mx_get,dns_mx_add,dns_mx_update,dns_mx_delete'] = 'DNS mx functions'; -$function_list['dns_ns_get,dns_ns_add,dns_ns_update,dns_ns_delete'] = 'DNS ns functions'; -$function_list['dns_ptr_get,dns_ptr_add,dns_ptr_update,dns_ptr_delete'] = 'DNS ptr functions'; -$function_list['dns_rp_get,dns_rp_add,dns_rp_update,dns_rp_delete'] = 'DNS rp functions'; -$function_list['dns_srv_get,dns_srv_add,dns_srv_update,dns_srv_delete'] = 'DNS srv functions'; -$function_list['dns_txt_get,dns_txt_add,dns_txt_update,dns_txt_delete'] = 'DNS txt functions'; +$function_list['sites_cron_get,sites_cron_add,sites_cron_update,sites_cron_delete'] = 'Sites cron functions'; +$function_list['sites_database_get,sites_database_add,sites_database_update,sites_database_delete, sites_database_get_all_by_user'] = 'Sites database functions'; +$function_list['sites_ftp_user_get,sites_ftp_user_add,sites_ftp_user_update,sites_ftp_user_delete'] = 'Sites FTP-User functions'; +$function_list['sites_shell_user_get,sites_shell_user_add,sites_shell_user_update,sites_shell_user_delete'] = 'Sites Shell-User functions'; +$function_list['sites_web_domain_get,sites_web_domain_add,sites_web_domain_update,sites_web_domain_delete,sites_web_domain_set_status'] = 'Sites Domain functions'; +$function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; +$function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; +$function_list['dns_zone_get,dns_zone_add,dns_zone_update,dns_zone_delete,dns_zone_set_status'] = 'DNS zone functions'; +$function_list['dns_a_get,dns_a_add,dns_a_update,dns_a_delete'] = 'DNS a functions'; +$function_list['dns_aaaa_get,dns_aaaa_add,dns_aaaa_update,dns_aaaa_delete'] = 'DNS aaaa functions'; +$function_list['dns_alias_get,dns_alias_add,dns_alias_update,dns_alias_delete'] = 'DNS alias functions'; +$function_list['dns_cname_get,dns_cname_add,dns_cname_update,dns_cname_delete'] = 'DNS cname functions'; +$function_list['dns_hinfo_get,dns_hinfo_add,dns_hinfo_update,dns_hinfo_delete'] = 'DNS hinfo functions'; +$function_list['dns_mx_get,dns_mx_add,dns_mx_update,dns_mx_delete'] = 'DNS mx functions'; +$function_list['dns_ns_get,dns_ns_add,dns_ns_update,dns_ns_delete'] = 'DNS ns functions'; +$function_list['dns_ptr_get,dns_ptr_add,dns_ptr_update,dns_ptr_delete'] = 'DNS ptr functions'; +$function_list['dns_rp_get,dns_rp_add,dns_rp_update,dns_rp_delete'] = 'DNS rp functions'; +$function_list['dns_srv_get,dns_srv_add,dns_srv_update,dns_srv_delete'] = 'DNS srv functions'; +$function_list['dns_txt_get,dns_txt_add,dns_txt_update,dns_txt_delete'] = 'DNS txt functions'; $function_list['domains_domain_get,domains_domain_add,domains_domain_delete,domains_get_all_by_user'] = 'Domaintool functions'; - -$form["title"] = "Remote user"; -$form["description"] = ""; -$form["name"] = "remote_user"; -$form["action"] = "remote_user_edit.php"; -$form["db_table"] = "remote_user"; -$form["db_table_idx"] = "remote_userid"; -$form["db_history"] = "yes"; -$form["tab_default"] = "remote_user"; -$form["list_default"] = "remote_user_list.php"; -$form["auth"] = 'yes'; // yes / no - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['remote_user'] = array ( - 'title' => "Remote User", - 'width' => 100, - 'template' => "templates/remote_user_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'remote_userid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT remote_userid,remote_username FROM remote_user WHERE {AUTHSQL} ORDER BY remote_username', - 'keyfield'=> 'remote_userid', - 'valuefield'=> 'remote_username' - ), - 'value' => '' - ), - - 'remote_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_error_unique'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'username_error_regex'), -2 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'remote_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'MD5', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'remote_functions' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $function_list, - 'separator' => ';', - 'width' => '', - 'maxlength' => '', - 'rows' => '5', - 'cols' => '30' - ) - - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - - - -?> + +$form["title"] = "Remote user"; +$form["description"] = ""; +$form["name"] = "remote_user"; +$form["action"] = "remote_user_edit.php"; +$form["db_table"] = "remote_user"; +$form["db_table_idx"] = "remote_userid"; +$form["db_history"] = "yes"; +$form["tab_default"] = "remote_user"; +$form["list_default"] = "remote_user_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['remote_user'] = array ( + 'title' => "Remote User", + 'width' => 100, + 'template' => "templates/remote_user_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'remote_userid' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT remote_userid,remote_username FROM remote_user WHERE {AUTHSQL} ORDER BY remote_username', + 'keyfield'=> 'remote_userid', + 'valuefield'=> 'remote_username' + ), + 'value' => '' + ), + + 'remote_username' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'username_error_unique'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-]{0,64}$/', + 'errmsg'=> 'username_error_regex'), +2 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'username_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'remote_password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption' => 'MD5', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'remote_functions' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'CHECKBOXARRAY', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $function_list, + 'separator' => ';', + 'width' => '', + 'maxlength' => '', + 'rows' => '5', + 'cols' => '30' + ) + + ################################## + # ENDE Datatable fields + ################################## + ) +); + + + + + +?> diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 7c080ccbdf..bc3e972f80 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -1,270 +1,270 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "System Config"; -$form["description"] = ""; -$form["name"] = "system_config"; -$form["action"] = "system_config_edit.php"; -$form["db_table"] = "sys_ini"; -$form["db_table_idx"] = "sysini_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "sites"; -$form["list_default"] = "server_list.php"; -$form["auth"] = 'yes'; // yes / no - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['sites'] = array ( - 'title' => "Sites", - 'width' => 70, - 'template' => "templates/system_config_sites_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'dbname_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'dbname_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dbuser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'dbuser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ftpuser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'ftpuser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'shelluser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'shelluser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'webdavuser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'webdavuser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dblist_phpmyadmin_link' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'phpmyadmin_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'phpmyadmin_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'webftp_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'webftp_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['mail'] = array ( - 'title' => "Mail", - 'width' => 70, - 'template' => "templates/system_config_mail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'mailboxlist_webmail_link' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'webmail_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'webmail_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'mailmailinglist_link' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'mailmailinglist_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'mailinglist_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'admin_mail' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'admin_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['domains'] = array ( - 'title' => "Domains", - 'width' => 70, - 'template' => "templates/system_config_domains_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'use_domain_module' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'new_domain_html' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['misc'] = array ( - 'title' => "Misc", - 'width' => 70, - 'template' => "templates/system_config_misc_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'dashboard_atom_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'http://www.ispconfig.org/atom', - 'value' => '' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "System Config"; +$form["description"] = ""; +$form["name"] = "system_config"; +$form["action"] = "system_config_edit.php"; +$form["db_table"] = "sys_ini"; +$form["db_table_idx"] = "sysini_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "sites"; +$form["list_default"] = "server_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['sites'] = array ( + 'title' => "Sites", + 'width' => 70, + 'template' => "templates/system_config_sites_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'dbname_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'errmsg'=> 'dbname_prefix_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'dbuser_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'errmsg'=> 'dbuser_prefix_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ftpuser_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'errmsg'=> 'ftpuser_prefix_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'shelluser_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'errmsg'=> 'shelluser_prefix_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'webdavuser_prefix' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', + 'errmsg'=> 'webdavuser_prefix_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'dblist_phpmyadmin_link' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'phpmyadmin_url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', + 'errmsg'=> 'phpmyadmin_url_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'webftp_url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', + 'errmsg'=> 'webftp_url_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + +$form["tabs"]['mail'] = array ( + 'title' => "Mail", + 'width' => 70, + 'template' => "templates/system_config_mail_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'mailboxlist_webmail_link' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'webmail_url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', + 'errmsg'=> 'webmail_url_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'mailmailinglist_link' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'mailmailinglist_url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', + 'errmsg'=> 'mailinglist_url_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'admin_mail' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'admin_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + +$form["tabs"]['domains'] = array ( + 'title' => "Domains", + 'width' => 70, + 'template' => "templates/system_config_domains_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'use_domain_module' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'new_domain_html' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + +$form["tabs"]['misc'] = array ( + 'title' => "Misc", + 'width' => 70, + 'template' => "templates/system_config_misc_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'dashboard_atom_url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'http://www.ispconfig.org/atom', + 'value' => '' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + +?> diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php index 1edbb0cc43..afe5956310 100644 --- a/interface/web/admin/form/users.tform.php +++ b/interface/web/admin/form/users.tform.php @@ -1,456 +1,456 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - Form Definition - - Tabellendefinition - - Datentypen: - - INTEGER (Wandelt Ausdr�cke in Int um) - - DOUBLE - - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) - - VARCHAR (kein weiterer Format Check) - - TEXT (kein weiterer Format Check) - - DATE (Datumsformat, Timestamp Umwandlung) - - Formtype: - - TEXT (normales Textfeld) - - TEXTAREA (normales Textfeld) - - PASSWORD (Feldinhalt wird nicht angezeigt) - - SELECT (Gibt Werte als option Feld aus) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hinweis: - Das ID-Feld ist nicht bei den Table Values einzuf�gen. - - -*/ - -$form['title'] = 'Users'; -$form['description'] = 'Form to edit systemusers.'; -$form['name'] = 'users'; -$form['action'] = 'users_edit.php'; -$form['db_table'] = 'sys_user'; -$form['db_table_idx'] = 'userid'; -$form["db_history"] = "no"; -$form['tab_default'] = 'users'; -$form['list_default'] = 'users_list.php'; -$form['auth'] = 'yes'; - -//* 0 = id of the user, > 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Pick out modules -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer') { - $modules_list[$file] = $file; - } - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir ($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - $themes_list[$file] = $file; - } - } -} - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Pick out groups -$groups_list = array(); -$tmp_records = $app->db->queryAllRecords('SELECT groupid, name FROM sys_group ORDER BY name'); -if(is_array($tmp_records)) { - foreach($tmp_records as $tmp_rec) { - $groups_list[$tmp_rec['groupid']] = $tmp_rec['name']; - } -} - -$form['tabs']['users'] = array ( - 'title' => 'Users', - 'width' => 80, - 'template' => 'templates/users_user_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_err'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'passwort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '100', - 'rows' => '', - 'cols' => '' - ), - 'modules' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => 'admin,forms', - 'value' => $modules_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'startmodule' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $modules_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'app_theme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'RADIO', - 'regex' => '', - 'errmsg' => '', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'typ' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'RADIO', - 'regex' => '', - 'errmsg' => '', - 'default' => 'user', - 'value' => array ('user' => 'user', 'admin' => 'admin'), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '2', - 'rows' => '', - 'cols' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -/* -$form['tabs']['address'] = array ( - 'title' => 'Address', - 'width' => 80, - 'template' => 'templates/users_address_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'vorname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'unternehmen' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'strasse' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'plz' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'land' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'telefon' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -*/ - -$form['tabs']['groups'] = array ( - 'title' => 'Groups', - 'width' => 80, - 'template' => 'templates/users_groups_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'default_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $groups_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'groups' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $groups_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + Form Definition + + Tabellendefinition + + Datentypen: + - INTEGER (Wandelt Ausdr�cke in Int um) + - DOUBLE + - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) + - VARCHAR (kein weiterer Format Check) + - TEXT (kein weiterer Format Check) + - DATE (Datumsformat, Timestamp Umwandlung) + + Formtype: + - TEXT (normales Textfeld) + - TEXTAREA (normales Textfeld) + - PASSWORD (Feldinhalt wird nicht angezeigt) + - SELECT (Gibt Werte als option Feld aus) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hinweis: + Das ID-Feld ist nicht bei den Table Values einzuf�gen. + + +*/ + +$form['title'] = 'Users'; +$form['description'] = 'Form to edit systemusers.'; +$form['name'] = 'users'; +$form['action'] = 'users_edit.php'; +$form['db_table'] = 'sys_user'; +$form['db_table_idx'] = 'userid'; +$form["db_history"] = "no"; +$form['tab_default'] = 'users'; +$form['list_default'] = 'users_list.php'; +$form['auth'] = 'yes'; + +//* 0 = id of the user, > 0 id must match with id of current user +$form['auth_preset']['userid'] = 0; +//* 0 = default groupid of the user, > 0 id must match with groupid of current user +$form['auth_preset']['groupid'] = 0; + +//** Permissions are: r = read, i = insert, u = update, d = delete +$form['auth_preset']['perm_user'] = 'riud'; +$form['auth_preset']['perm_group'] = 'riud'; +$form['auth_preset']['perm_other'] = ''; + +//* Pick out modules +$modules_list = array(); +$handle = @opendir(ISPC_WEB_PATH); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir(ISPC_WEB_PATH."/$file")) { + if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer') { + $modules_list[$file] = $file; + } + } + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir ($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + $themes_list[$file] = $file; + } + } +} + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +//* Pick out groups +$groups_list = array(); +$tmp_records = $app->db->queryAllRecords('SELECT groupid, name FROM sys_group ORDER BY name'); +if(is_array($tmp_records)) { + foreach($tmp_records as $tmp_rec) { + $groups_list[$tmp_rec['groupid']] = $tmp_rec['name']; + } +} + +$form['tabs']['users'] = array ( + 'title' => 'Users', + 'width' => 80, + 'template' => 'templates/users_user_edit.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + 'username' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'username_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'username_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-\_]{0,64}$/', + 'errmsg'=> 'username_err'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '15', + 'maxlength' => '30', + 'rows' => '', + 'cols' => '' + ), + 'passwort' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption'=> 'CRYPT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '15', + 'maxlength' => '100', + 'rows' => '', + 'cols' => '' + ), + 'modules' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'regex' => '', + 'errmsg' => '', + 'default' => 'admin,forms', + 'value' => $modules_list, + 'separator' => ',', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'startmodule' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $modules_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'app_theme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'RADIO', + 'regex' => '', + 'errmsg' => '', + 'default' => 'default', + 'value' => $themes_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'typ' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'RADIO', + 'regex' => '', + 'errmsg' => '', + 'default' => 'user', + 'value' => array ('user' => 'user', 'admin' => 'admin'), + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'active' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'CHECKBOX', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => array(0 => 0,1 => 1), + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'language' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $language_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '2', + 'rows' => '', + 'cols' => '' + ) + ################################## + # ENDE Datenbankfelder + ################################## + ) +); +/* +$form['tabs']['address'] = array ( + 'title' => 'Address', + 'width' => 80, + 'template' => 'templates/users_address_edit.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'vorname' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'unternehmen' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'strasse' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'ort' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'plz' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'land' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'email' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'url' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'telefon' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'fax' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ) + + ################################## + # ENDE Datenbankfelder + ################################## + ) +); +*/ + +$form['tabs']['groups'] = array ( + 'title' => 'Groups', + 'width' => 80, + 'template' => 'templates/users_groups_edit.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + 'default_group' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $groups_list, + 'separator' => ',', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'groups' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $groups_list, + 'separator' => ',', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ) + + ################################## + # ENDE Datenbankfelder + ################################## + ) +); + ?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index c97ca0e5ec..f672e9943c 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -1,84 +1,84 @@ -<?php -$wb["try_rescue_txt"] = 'Activate rescue of all services installed at this server'; -$wb["do_not_try_rescue_apache_txt"] = 'If rescue ist activated, do NOT try to rescue Apache'; -$wb["do_not_try_rescue_mysql_txt"] = 'If rescue ist activated, do NOT try to rescue mysql'; -$wb["do_not_try_rescue_mail_txt"] = 'If rescue ist activated, do NOT try to rescue mail'; -$wb["jailkit_chroot_home_txt"] = 'Jailkit chroot home'; -$wb["jailkit_chroot_app_sections_txt"] = 'Jailkit chroot app sections'; -$wb["jailkit_chroot_app_programs_txt"] = 'Jailkit chrooted applications'; -$wb["jailkit_chroot_cron_programs_txt"] = 'Jailkit cron chrooted applications'; -$wb["website_path_txt"] = 'Website path'; -$wb["website_symlinks_txt"] = 'Website symlinks'; -$wb["website_basedir_txt"] = 'Website basedir'; -$wb["vhost_conf_dir_txt"] = 'Vhost config dir'; -$wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir'; -$wb["getmail_config_dir_txt"] = 'Getmail config dir'; -$wb["fastcgi_starter_path_txt"] = 'FastCGI starter path'; -$wb["fastcgi_starter_script_txt"] = 'FastCGI starter script'; -$wb["fastcgi_alias_txt"] = 'FastCGI Alias'; -$wb["fastcgi_phpini_path_txt"] = 'FastCGI php.ini Path'; -$wb["fastcgi_children_txt"] = 'FastCGI Children'; -$wb["fastcgi_max_requests_txt"] = 'FastCGI max. Requests'; -$wb["fastcgi_bin_txt"] = 'FastCGI Bin'; -$wb["module_txt"] = 'Module'; -$wb["maildir_path_txt"] = 'Maildir Path'; -$wb["homedir_path_txt"] = 'Homedir Path'; -$wb["mailuser_uid_txt"] = 'Mailuser UID'; -$wb["mailuser_gid_txt"] = 'Mailuser GID'; -$wb["mailuser_name_txt"] = 'Mailuser Name'; -$wb["mailuser_group_txt"] = 'Mailuser Group'; -$wb["relayhost_txt"] = 'Relayhost'; -$wb["relayhost_user_txt"] = 'Relayhost User'; -$wb["relayhost_password_txt"] = 'Relayhost Password'; -$wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit'; -$wb["message_size_limit_txt"] = 'Message Size Limit'; -$wb["ip_address_txt"] = 'IP Address'; -$wb["netmask_txt"] = 'Netmask'; -$wb["gateway_txt"] = 'Gateway'; -$wb["hostname_txt"] = 'Hostname'; -$wb["nameservers_txt"] = 'Nameservers'; -$wb["auto_network_configuration_txt"] = 'Network Configuration'; -$wb["ip_address_error_wrong"] = 'Invalid IP address format.'; -$wb["netmask_error_wrong"] = 'Invalid Netmask format.'; -$wb["gateway_error_wrong"] = 'Invalid Gateway format.'; -$wb["hostname_error_empty"] = 'Hostname is empty.'; -$wb["nameservers_error_empty"] = 'Nameserver is empty.'; -$wb["config_dir_txt"] = 'Config directory'; -$wb["init_script_txt"] = 'Cron init script name'; -$wb["crontab_dir_txt"] = 'Path for individual crontabs'; -$wb["wget_txt"] = 'Path to wget program'; -$wb["web_user_txt"] = 'Apache user'; -$wb["web_group_txt"] = 'Apache group'; -$wb["security_level_txt"] = 'Security level'; -$wb["loglevel_txt"] = 'Loglevel'; -$wb["apps_vhost_port_txt"] = 'Apps-vhost port'; -$wb["apps_vhost_ip_txt"] = 'Apps-vhost IP'; -$wb["apps_vhost_servername_txt"] = 'Apps-vhost Domain'; -$wb["bind_user_txt"] = 'BIND User'; -$wb["bind_group_txt"] = 'BIND Group'; -$wb["bind_zonefiles_dir_txt"] = 'BIND zonefiles directory'; -$wb["named_conf_path_txt"] = 'BIND named.conf path'; -$wb["bind_user_error_empty"] = 'BIND user is empty.'; -$wb["bind_group_error_empty"] = 'BIND group is empty.'; -$wb["bind_zonefiles_dir_error_empty"] = 'BIND zonefiles directory is empty.'; -$wb["named_conf_path_error_empty"] = 'BIND named.conf path is empty.'; -$wb["named_conf_local_path_error_empty"] = 'BIND named.conf.local path is empty.'; -$wb["mail_filter_syntax_txt"] = 'Mailfilter Syntax'; -$wb["pop3_imap_daemon_txt"] = 'POP3/IMAP Daemon'; -$wb["php_open_basedir_txt"] = 'PHP open_basedir'; -$wb["php_open_basedir_error_empty"] = 'PHP open_basedir is empty.'; -$wb["htaccess_allow_override_txt"] = '.htaccess AllowOverride'; -$wb["htaccess_allow_override_error_empty"] = '.htaccess AllowOverride is empty.'; -$wb["awstats_conf_dir_txt"] = 'awstats conf folder'; -$wb["awstats_data_dir_txt"] = 'awstats data folder'; -$wb["awstats_pl_txt"] = 'awstats.pl script'; -$wb["awstats_buildstaticpages_pl_txt"] = 'awstats_buildstaticpages.pl script'; -$wb["backup_dir_txt"] = 'Backup directory'; -$wb["named_conf_local_path_txt"] = 'BIND named.conf.local path'; -$wb["php_ini_path_cgi_txt"] = 'CGI php.ini path'; -$wb["php_ini_path_apache_txt"] = 'Apache php.ini path'; -$wb["check_apache_config_txt"] = 'Test apache configuration on restart'; -$wb["network_config_warning_txt"] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.'; +<?php +$wb["try_rescue_txt"] = 'Activate rescue of all services installed at this server'; +$wb["do_not_try_rescue_apache_txt"] = 'If rescue ist activated, do NOT try to rescue Apache'; +$wb["do_not_try_rescue_mysql_txt"] = 'If rescue ist activated, do NOT try to rescue mysql'; +$wb["do_not_try_rescue_mail_txt"] = 'If rescue ist activated, do NOT try to rescue mail'; +$wb["jailkit_chroot_home_txt"] = 'Jailkit chroot home'; +$wb["jailkit_chroot_app_sections_txt"] = 'Jailkit chroot app sections'; +$wb["jailkit_chroot_app_programs_txt"] = 'Jailkit chrooted applications'; +$wb["jailkit_chroot_cron_programs_txt"] = 'Jailkit cron chrooted applications'; +$wb["website_path_txt"] = 'Website path'; +$wb["website_symlinks_txt"] = 'Website symlinks'; +$wb["website_basedir_txt"] = 'Website basedir'; +$wb["vhost_conf_dir_txt"] = 'Vhost config dir'; +$wb["vhost_conf_enabled_dir_txt"] = 'Vhost config enabled dir'; +$wb["getmail_config_dir_txt"] = 'Getmail config dir'; +$wb["fastcgi_starter_path_txt"] = 'FastCGI starter path'; +$wb["fastcgi_starter_script_txt"] = 'FastCGI starter script'; +$wb["fastcgi_alias_txt"] = 'FastCGI Alias'; +$wb["fastcgi_phpini_path_txt"] = 'FastCGI php.ini Path'; +$wb["fastcgi_children_txt"] = 'FastCGI Children'; +$wb["fastcgi_max_requests_txt"] = 'FastCGI max. Requests'; +$wb["fastcgi_bin_txt"] = 'FastCGI Bin'; +$wb["module_txt"] = 'Module'; +$wb["maildir_path_txt"] = 'Maildir Path'; +$wb["homedir_path_txt"] = 'Homedir Path'; +$wb["mailuser_uid_txt"] = 'Mailuser UID'; +$wb["mailuser_gid_txt"] = 'Mailuser GID'; +$wb["mailuser_name_txt"] = 'Mailuser Name'; +$wb["mailuser_group_txt"] = 'Mailuser Group'; +$wb["relayhost_txt"] = 'Relayhost'; +$wb["relayhost_user_txt"] = 'Relayhost User'; +$wb["relayhost_password_txt"] = 'Relayhost Password'; +$wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit'; +$wb["message_size_limit_txt"] = 'Message Size Limit'; +$wb["ip_address_txt"] = 'IP Address'; +$wb["netmask_txt"] = 'Netmask'; +$wb["gateway_txt"] = 'Gateway'; +$wb["hostname_txt"] = 'Hostname'; +$wb["nameservers_txt"] = 'Nameservers'; +$wb["auto_network_configuration_txt"] = 'Network Configuration'; +$wb["ip_address_error_wrong"] = 'Invalid IP address format.'; +$wb["netmask_error_wrong"] = 'Invalid Netmask format.'; +$wb["gateway_error_wrong"] = 'Invalid Gateway format.'; +$wb["hostname_error_empty"] = 'Hostname is empty.'; +$wb["nameservers_error_empty"] = 'Nameserver is empty.'; +$wb["config_dir_txt"] = 'Config directory'; +$wb["init_script_txt"] = 'Cron init script name'; +$wb["crontab_dir_txt"] = 'Path for individual crontabs'; +$wb["wget_txt"] = 'Path to wget program'; +$wb["web_user_txt"] = 'Apache user'; +$wb["web_group_txt"] = 'Apache group'; +$wb["security_level_txt"] = 'Security level'; +$wb["loglevel_txt"] = 'Loglevel'; +$wb["apps_vhost_port_txt"] = 'Apps-vhost port'; +$wb["apps_vhost_ip_txt"] = 'Apps-vhost IP'; +$wb["apps_vhost_servername_txt"] = 'Apps-vhost Domain'; +$wb["bind_user_txt"] = 'BIND User'; +$wb["bind_group_txt"] = 'BIND Group'; +$wb["bind_zonefiles_dir_txt"] = 'BIND zonefiles directory'; +$wb["named_conf_path_txt"] = 'BIND named.conf path'; +$wb["bind_user_error_empty"] = 'BIND user is empty.'; +$wb["bind_group_error_empty"] = 'BIND group is empty.'; +$wb["bind_zonefiles_dir_error_empty"] = 'BIND zonefiles directory is empty.'; +$wb["named_conf_path_error_empty"] = 'BIND named.conf path is empty.'; +$wb["named_conf_local_path_error_empty"] = 'BIND named.conf.local path is empty.'; +$wb["mail_filter_syntax_txt"] = 'Mailfilter Syntax'; +$wb["pop3_imap_daemon_txt"] = 'POP3/IMAP Daemon'; +$wb["php_open_basedir_txt"] = 'PHP open_basedir'; +$wb["php_open_basedir_error_empty"] = 'PHP open_basedir is empty.'; +$wb["htaccess_allow_override_txt"] = '.htaccess AllowOverride'; +$wb["htaccess_allow_override_error_empty"] = '.htaccess AllowOverride is empty.'; +$wb["awstats_conf_dir_txt"] = 'awstats conf folder'; +$wb["awstats_data_dir_txt"] = 'awstats data folder'; +$wb["awstats_pl_txt"] = 'awstats.pl script'; +$wb["awstats_buildstaticpages_pl_txt"] = 'awstats_buildstaticpages.pl script'; +$wb["backup_dir_txt"] = 'Backup directory'; +$wb["named_conf_local_path_txt"] = 'BIND named.conf.local path'; +$wb["php_ini_path_cgi_txt"] = 'CGI php.ini path'; +$wb["php_ini_path_apache_txt"] = 'Apache php.ini path'; +$wb["check_apache_config_txt"] = 'Test apache configuration on restart'; +$wb["network_config_warning_txt"] = 'The network configuration option is only available for Debian and Ubuntu Servers. Do not enable this option if your network interface is not eth0.'; $wb["CA_path_txt"] = 'CA Path'; $wb["CA_pass_txt"] = 'CA passphrase'; ?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_users.lng b/interface/web/admin/lib/lang/en_users.lng index 0f9a1c5b56..df00438811 100644 --- a/interface/web/admin/lib/lang/en_users.lng +++ b/interface/web/admin/lib/lang/en_users.lng @@ -1,28 +1,28 @@ -<?php -$wb["username_txt"] = 'Username'; -$wb["username_err"] = 'The username is too long or contains invalid characters.'; -$wb["username_empty"] = 'The username is empty.'; -$wb["username_unique"] = 'There is already a user with this username.'; -$wb["passwort_txt"] = 'Password'; -$wb["password_strength_txt"] = 'Password strength'; -$wb["modules_txt"] = 'Module'; -$wb["startmodule_txt"] = 'Startmodule'; -$wb["app_theme_txt"] = 'Design'; -$wb["typ_txt"] = 'Type'; -$wb["active_txt"] = 'Active'; -$wb["language_txt"] = 'Language'; -$wb["name_txt"] = 'Name'; -$wb["vorname_txt"] = 'Forename'; -$wb["unternehmen_txt"] = 'Company'; -$wb["strasse_txt"] = 'Street'; -$wb["ort_txt"] = 'City'; -$wb["plz_txt"] = 'ZIP'; -$wb["land_txt"] = 'Country'; -$wb["email_txt"] = 'Email'; -$wb["url_txt"] = 'Url'; -$wb["telefon_txt"] = 'Telephone'; -$wb["fax_txt"] = 'Fax'; -$wb["groups_txt"] = 'Groups'; -$wb["default_group_txt"] = 'Default Group'; -$wb["startmodule_err"] = 'Start module is not within modules.'; -?> +<?php +$wb["username_txt"] = 'Username'; +$wb["username_err"] = 'The username is too long or contains invalid characters.'; +$wb["username_empty"] = 'The username is empty.'; +$wb["username_unique"] = 'There is already a user with this username.'; +$wb["passwort_txt"] = 'Password'; +$wb["password_strength_txt"] = 'Password strength'; +$wb["modules_txt"] = 'Module'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +$wb["typ_txt"] = 'Type'; +$wb["active_txt"] = 'Active'; +$wb["language_txt"] = 'Language'; +$wb["name_txt"] = 'Name'; +$wb["vorname_txt"] = 'Forename'; +$wb["unternehmen_txt"] = 'Company'; +$wb["strasse_txt"] = 'Street'; +$wb["ort_txt"] = 'City'; +$wb["plz_txt"] = 'ZIP'; +$wb["land_txt"] = 'Country'; +$wb["email_txt"] = 'Email'; +$wb["url_txt"] = 'Url'; +$wb["telefon_txt"] = 'Telephone'; +$wb["fax_txt"] = 'Fax'; +$wb["groups_txt"] = 'Groups'; +$wb["default_group_txt"] = 'Default Group'; +$wb["startmodule_err"] = 'Start module is not within modules.'; +?> diff --git a/interface/web/admin/templates/firewall_edit.htm b/interface/web/admin/templates/firewall_edit.htm index 554f7d0a0c..4c59b55764 100644 --- a/interface/web/admin/templates/firewall_edit.htm +++ b/interface/web/admin/templates/firewall_edit.htm @@ -1,38 +1,38 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_firewall"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="tcp_port">{tmpl_var name='tcp_port_txt'}</label> - <input name="tcp_port" id="tcp_port" value="{tmpl_var name='tcp_port'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="udp_port">{tmpl_var name='udp_port_txt'}</label> - <input name="udp_port" id="udp_port" value="{tmpl_var name='udp_port'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/firewall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/firewall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_firewall"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="tcp_port">{tmpl_var name='tcp_port_txt'}</label> + <input name="tcp_port" id="tcp_port" value="{tmpl_var name='tcp_port'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="udp_port">{tmpl_var name='udp_port_txt'}</label> + <input name="udp_port" id="udp_port" value="{tmpl_var name='udp_port'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/firewall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/firewall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/groups_edit.htm b/interface/web/admin/templates/groups_edit.htm index 6a3434714f..34f1d81efb 100644 --- a/interface/web/admin/templates/groups_edit.htm +++ b/interface/web/admin/templates/groups_edit.htm @@ -1,26 +1,26 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_groups"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="description">{tmpl_var name='description_txt'}</label> - <textarea name="description" id="description" rows='5' cols='30'>{tmpl_var name='description'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/groups_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/groups_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_groups"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="name">{tmpl_var name='name_txt'}</label> + <input name="name" id="name" value="{tmpl_var name='name'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="description">{tmpl_var name='description_txt'}</label> + <textarea name="description" id="description" rows='5' cols='30'>{tmpl_var name='description'}</textarea> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/groups_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/groups_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/language_add.htm b/interface/web/admin/templates/language_add.htm index b0ebde4ff7..e395c6918c 100644 --- a/interface/web/admin/templates/language_add.htm +++ b/interface/web/admin/templates/language_add.htm @@ -1,32 +1,32 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Language Add</legend> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="language" class="selectInput withicons"> - {tmpl_var name='language_option'} - </select> - </div> - <div class="ctrlHolder"> - <label for="lng_new">{tmpl_var name='language_new_txt'}</label> - <input name="lng_new" id="lng_new" value="" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - <p class="formHint">{tmpl_var name='language_new_hint_txt'}</p> - </div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_add.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - - </fieldset> - - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_language_add"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Language Add</legend> + <div class="ctrlHolder"> + <label for="lng_select">{tmpl_var name='language_select_txt'}</label> + <select name="lng_select" id="language" class="selectInput withicons"> + {tmpl_var name='language_option'} + </select> + </div> + <div class="ctrlHolder"> + <label for="lng_new">{tmpl_var name='language_new_txt'}</label> + <input name="lng_new" id="lng_new" value="" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + <p class="formHint">{tmpl_var name='language_new_hint_txt'}</p> + </div> + + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_add.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + + </fieldset> + + </div> + +</div> diff --git a/interface/web/admin/templates/language_edit.htm b/interface/web/admin/templates/language_edit.htm index 1e5d306bb8..75376dfaa7 100644 --- a/interface/web/admin/templates/language_edit.htm +++ b/interface/web/admin/templates/language_edit.htm @@ -1,32 +1,32 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_edit"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_language_edit"><legend>Language File Edit: {tmpl_var name="file_path"}</legend> - <span class="wf_oneField"> - <tmpl_loop name="records"> - <span class="wf_oneField"> - <label for="records[{tmpl_var name="key"}]" class="wf_preField">{tmpl_var name="key"}</label> - <input type="text" id="records[{tmpl_var name="key"}]" name="records[{tmpl_var name="key"}]" value="{tmpl_var name='val'}" size="50" maxlength="255"> - </span> - </tmpl_loop> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="lang" value="{tmpl_var name='lang'}"> - <input type="hidden" name="lang_file" value="{tmpl_var name='lang_file'}"> - <input type="hidden" name="module" value="{tmpl_var name='module'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php?lng_select={tmpl_var name='lang'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - - - - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_language_edit"> + + <div class="pnl_formsarea"> + <fieldset id="wf_area_language_edit"><legend>Language File Edit: {tmpl_var name="file_path"}</legend> + <span class="wf_oneField"> + <tmpl_loop name="records"> + <span class="wf_oneField"> + <label for="records[{tmpl_var name="key"}]" class="wf_preField">{tmpl_var name="key"}</label> + <input type="text" id="records[{tmpl_var name="key"}]" name="records[{tmpl_var name="key"}]" value="{tmpl_var name='val'}" size="50" maxlength="255"> + </span> + </tmpl_loop> + </span> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="lang" value="{tmpl_var name='lang'}"> + <input type="hidden" name="lang_file" value="{tmpl_var name='lang_file'}"> + <input type="hidden" name="module" value="{tmpl_var name='module'}"> + + <div class="wf_actions buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/language_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/language_list.php?lng_select={tmpl_var name='lang'}');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + + + + </div> + +</div> diff --git a/interface/web/admin/templates/language_list.htm b/interface/web/admin/templates/language_list.htm index 4c8fb0c312..1c05fd3878 100644 --- a/interface/web/admin/templates/language_list.htm +++ b/interface/web/admin/templates/language_list.htm @@ -1,47 +1,47 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_language_groups"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend>Tools</legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="lng_select">{tmpl_var name='language_select_txt'}</label> - <select name="lng_select" id="language" class="selectInput withicons" onChange="submitForm('pageForm','admin/language_list.php');"> - {tmpl_var name='language_option'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_module" scope="col"><tmpl_var name="module_txt"></th> - <th class="tbl_col_lang_file" scope="col"><tmpl_var name="lang_file_txt"></th> - <th scope="col"><tmpl_var name="lang_file_date_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_module"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="module"}</a></td> - <td class="tbl_col_lang_file"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file"}</a></td> - <td><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file_date"}</a></td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_language_groups"> + + <div class="pnl_toolsarea"> + <fieldset class="inlineLabels"><legend>Tools</legend> + <div class="buttons"> + <div class="ctrlHolder"> + <label for="lng_select">{tmpl_var name='language_select_txt'}</label> + <select name="lng_select" id="language" class="selectInput withicons" onChange="submitForm('pageForm','admin/language_list.php');"> + {tmpl_var name='language_option'} + </select> + </div> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_module" scope="col"><tmpl_var name="module_txt"></th> + <th class="tbl_col_lang_file" scope="col"><tmpl_var name="lang_file_txt"></th> + <th scope="col"><tmpl_var name="lang_file_date_txt"></th> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_module"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="module"}</a></td> + <td class="tbl_col_lang_file"><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file"}</a></td> + <td><a href="#" onClick="loadContent('admin/language_edit.php?lang_file={tmpl_var name="lang_file"}&module={tmpl_var name="module"}&lang={tmpl_var name="lang"}');">{tmpl_var name="lang_file_date"}</a></td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/admin/templates/remote_action_ispcupdate.htm b/interface/web/admin/templates/remote_action_ispcupdate.htm index 8726622240..156949a21a 100644 --- a/interface/web/admin/templates/remote_action_ispcupdate.htm +++ b/interface/web/admin/templates/remote_action_ispcupdate.htm @@ -1,25 +1,25 @@ -<h2><tmpl_var name="do_ispcupdate_caption"></h2> -<p><tmpl_var name="do_ispcupdate_desc"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='do_ispcupdate_caption'}</legend> - <div class="ctrlHolder"> - <label for="server_select">{tmpl_var name='select_server_txt'}</label> - <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> - {tmpl_var name='server_option'} - </select> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_ispcupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="do_ispcupdate_caption"></h2> +<p><tmpl_var name="do_ispcupdate_desc"></p> + +<div class="panel panel_language_add"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>{tmpl_var name='do_ispcupdate_caption'}</legend> + <div class="ctrlHolder"> + <label for="server_select">{tmpl_var name='select_server_txt'}</label> + <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> + {tmpl_var name='server_option'} + </select> + </div> + </fieldset> + + <tmpl_if name="msg"> + <div id="OKMsg"><p><tmpl_var name="msg"></p></div> + </tmpl_if> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_ispcupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/remote_action_osupdate.htm b/interface/web/admin/templates/remote_action_osupdate.htm index 27dc8e9c85..4e2ac5a56e 100644 --- a/interface/web/admin/templates/remote_action_osupdate.htm +++ b/interface/web/admin/templates/remote_action_osupdate.htm @@ -1,25 +1,25 @@ -<h2><tmpl_var name="do_osupdate_caption"></h2> -<p><tmpl_var name="do_osupdate_desc"></p> - -<div class="panel panel_language_add"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>{tmpl_var name='do_osupdate_caption'}</legend> - <div class="ctrlHolder"> - <label for="server_select">{tmpl_var name='select_server_txt'}</label> - <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> - {tmpl_var name='server_option'} - </select> - </div> - </fieldset> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_osupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="do_osupdate_caption"></h2> +<p><tmpl_var name="do_osupdate_desc"></p> + +<div class="panel panel_language_add"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>{tmpl_var name='do_osupdate_caption'}</legend> + <div class="ctrlHolder"> + <label for="server_select">{tmpl_var name='select_server_txt'}</label> + <select name="server_select" id="server" class="selectInput" onchange="document.getElementById('OKMsg').style.visibility = 'hidden'; "> + {tmpl_var name='server_option'} + </select> + </div> + </fieldset> + + <tmpl_if name="msg"> + <div id="OKMsg"><p><tmpl_var name="msg"></p></div> + </tmpl_if> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_do_txt'}" onClick="submitForm('pageForm','admin/remote_action_osupdate.php');"><span>{tmpl_var name='btn_do_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_config_cron_edit.htm b/interface/web/admin/templates/server_config_cron_edit.htm index 066693ed83..c378938c43 100644 --- a/interface/web/admin/templates/server_config_cron_edit.htm +++ b/interface/web/admin/templates/server_config_cron_edit.htm @@ -1,30 +1,30 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="init_script">{tmpl_var name='init_script_txt'}</label> - <input name="init_script" id="init_script" value="{tmpl_var name='init_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="crontab_dir">{tmpl_var name='crontab_dir_txt'}</label> - <input name="crontab_dir" id="crontab_dir" value="{tmpl_var name='crontab_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="wget">{tmpl_var name='wget_txt'}</label> - <input name="wget" id="wget" value="{tmpl_var name='wget'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_config"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="init_script">{tmpl_var name='init_script_txt'}</label> + <input name="init_script" id="init_script" value="{tmpl_var name='init_script'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="crontab_dir">{tmpl_var name='crontab_dir_txt'}</label> + <input name="crontab_dir" id="crontab_dir" value="{tmpl_var name='crontab_dir'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="wget">{tmpl_var name='wget_txt'}</label> + <input name="wget" id="wget" value="{tmpl_var name='wget'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_config_fastcgi_edit.htm b/interface/web/admin/templates/server_config_fastcgi_edit.htm index 8551d87abb..6e1bfea336 100644 --- a/interface/web/admin/templates/server_config_fastcgi_edit.htm +++ b/interface/web/admin/templates/server_config_fastcgi_edit.htm @@ -1,46 +1,46 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="fastcgi_starter_path">{tmpl_var name='fastcgi_starter_path_txt'}</label> - <input name="fastcgi_starter_path" id="fastcgi_starter_path" value="{tmpl_var name='fastcgi_starter_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_starter_script">{tmpl_var name='fastcgi_starter_script_txt'}</label> - <input name="fastcgi_starter_script" id="fastcgi_starter_script" value="{tmpl_var name='fastcgi_starter_script'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_alias">{tmpl_var name='fastcgi_alias_txt'}</label> - <input name="fastcgi_alias" id="fastcgi_alias" value="{tmpl_var name='fastcgi_alias'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_phpini_path">{tmpl_var name='fastcgi_phpini_path_txt'}</label> - <input name="fastcgi_phpini_path" id="fastcgi_phpini_path" value="{tmpl_var name='fastcgi_phpini_path'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_children">{tmpl_var name='fastcgi_children_txt'}</label> - <input name="fastcgi_children" id="fastcgi_children" value="{tmpl_var name='fastcgi_children'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_max_requests">{tmpl_var name='fastcgi_max_requests_txt'}</label> - <input name="fastcgi_max_requests" id="fastcgi_max_requests" value="{tmpl_var name='fastcgi_max_requests'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="fastcgi_bin">{tmpl_var name='fastcgi_bin_txt'}</label> - <input name="fastcgi_bin" id="fastcgi_bin" value="{tmpl_var name='fastcgi_bin'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_config"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="fastcgi_starter_path">{tmpl_var name='fastcgi_starter_path_txt'}</label> + <input name="fastcgi_starter_path" id="fastcgi_starter_path" value="{tmpl_var name='fastcgi_starter_path'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_starter_script">{tmpl_var name='fastcgi_starter_script_txt'}</label> + <input name="fastcgi_starter_script" id="fastcgi_starter_script" value="{tmpl_var name='fastcgi_starter_script'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_alias">{tmpl_var name='fastcgi_alias_txt'}</label> + <input name="fastcgi_alias" id="fastcgi_alias" value="{tmpl_var name='fastcgi_alias'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_phpini_path">{tmpl_var name='fastcgi_phpini_path_txt'}</label> + <input name="fastcgi_phpini_path" id="fastcgi_phpini_path" value="{tmpl_var name='fastcgi_phpini_path'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_children">{tmpl_var name='fastcgi_children_txt'}</label> + <input name="fastcgi_children" id="fastcgi_children" value="{tmpl_var name='fastcgi_children'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_max_requests">{tmpl_var name='fastcgi_max_requests_txt'}</label> + <input name="fastcgi_max_requests" id="fastcgi_max_requests" value="{tmpl_var name='fastcgi_max_requests'}" size="40" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="fastcgi_bin">{tmpl_var name='fastcgi_bin_txt'}</label> + <input name="fastcgi_bin" id="fastcgi_bin" value="{tmpl_var name='fastcgi_bin'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_config_getmail_edit.htm b/interface/web/admin/templates/server_config_getmail_edit.htm index fc86eb4cad..e8112cce44 100644 --- a/interface/web/admin/templates/server_config_getmail_edit.htm +++ b/interface/web/admin/templates/server_config_getmail_edit.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="getmail_config_dir">{tmpl_var name='getmail_config_dir_txt'}</label> - <input name="getmail_config_dir" id="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_config"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="getmail_config_dir">{tmpl_var name='getmail_config_dir_txt'}</label> + <input name="getmail_config_dir" id="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_config_jailkit_edit.htm b/interface/web/admin/templates/server_config_jailkit_edit.htm index 320fb87542..2dd603539a 100644 --- a/interface/web/admin/templates/server_config_jailkit_edit.htm +++ b/interface/web/admin/templates/server_config_jailkit_edit.htm @@ -1,34 +1,34 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="jailkit_chroot_home">{tmpl_var name='jailkit_chroot_home_txt'}</label> - <input name="jailkit_chroot_home" id="jailkit_chroot_home" value="{tmpl_var name='jailkit_chroot_home'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_app_sections">{tmpl_var name='jailkit_chroot_app_sections_txt'}</label> - <input name="jailkit_chroot_app_sections" id="jailkit_chroot_app_sections" value="{tmpl_var name='jailkit_chroot_app_sections'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_app_programs">{tmpl_var name='jailkit_chroot_app_programs_txt'}</label> - <input name="jailkit_chroot_app_programs" id="jailkit_chroot_app_programs" value="{tmpl_var name='jailkit_chroot_app_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="jailkit_chroot_cron_programs">{tmpl_var name='jailkit_chroot_cron_programs_txt'}</label> - <input name="jailkit_chroot_cron_programs" id="jailkit_chroot_cron_programs" value="{tmpl_var name='jailkit_chroot_cron_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_config"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="jailkit_chroot_home">{tmpl_var name='jailkit_chroot_home_txt'}</label> + <input name="jailkit_chroot_home" id="jailkit_chroot_home" value="{tmpl_var name='jailkit_chroot_home'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="jailkit_chroot_app_sections">{tmpl_var name='jailkit_chroot_app_sections_txt'}</label> + <input name="jailkit_chroot_app_sections" id="jailkit_chroot_app_sections" value="{tmpl_var name='jailkit_chroot_app_sections'}" size="40" maxlength="1000" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="jailkit_chroot_app_programs">{tmpl_var name='jailkit_chroot_app_programs_txt'}</label> + <input name="jailkit_chroot_app_programs" id="jailkit_chroot_app_programs" value="{tmpl_var name='jailkit_chroot_app_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="jailkit_chroot_cron_programs">{tmpl_var name='jailkit_chroot_cron_programs_txt'}</label> + <input name="jailkit_chroot_cron_programs" id="jailkit_chroot_cron_programs" value="{tmpl_var name='jailkit_chroot_cron_programs'}" size="40" maxlength="1000" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_config_vlogger_edit.htm b/interface/web/admin/templates/server_config_vlogger_edit.htm index bf6a82ab31..f468faec72 100644 --- a/interface/web/admin/templates/server_config_vlogger_edit.htm +++ b/interface/web/admin/templates/server_config_vlogger_edit.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_config"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="config_dir">{tmpl_var name='config_dir_txt'}</label> - <input name="config_dir" id="config_dir" value="{tmpl_var name='config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_config"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="config_dir">{tmpl_var name='config_dir_txt'}</label> + <input name="config_dir" id="config_dir" value="{tmpl_var name='config_dir'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_edit_config.htm b/interface/web/admin/templates/server_edit_config.htm index 02f6ef34d3..31208dc3ed 100644 --- a/interface/web/admin/templates/server_edit_config.htm +++ b/interface/web/admin/templates/server_edit_config.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="config">{tmpl_var name='config_txt'}</label> - <textarea name="config" id="config" rows='20' cols='40'>{tmpl_var name='config'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="config">{tmpl_var name='config_txt'}</label> + <textarea name="config" id="config" rows='20' cols='40'>{tmpl_var name='config'}</textarea> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/server_ip_edit.htm b/interface/web/admin/templates/server_ip_edit.htm index 1ebe8bd91a..87e3d4bb77 100644 --- a/interface/web/admin/templates/server_ip_edit.htm +++ b/interface/web/admin/templates/server_ip_edit.htm @@ -1,34 +1,34 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_server_ip"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> - <input name="ip_address" id="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="15" type="text" class="textInput formLengthIPv4" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='virtualhost_txt'}</p> - <div class="multiField"> - {tmpl_var name='virtualhost'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_ip_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_ip_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_server_ip"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="ip_address">{tmpl_var name='ip_address_txt'}</label> + <input name="ip_address" id="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="15" type="text" class="textInput formLengthIPv4" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='virtualhost_txt'}</p> + <div class="multiField"> + {tmpl_var name='virtualhost'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/server_ip_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/server_ip_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/software_package_install.htm b/interface/web/admin/templates/software_package_install.htm index d034de77d1..fddda4f2de 100644 --- a/interface/web/admin/templates/software_package_install.htm +++ b/interface/web/admin/templates/software_package_install.htm @@ -1,30 +1,30 @@ -<h2><tmpl_var name="head_txt"></h2> -<p><tmpl_var name="desc_txt"></p> - -<div class="panel panel_software_repo"> -<tmpl_if name="message_err"> -<div id="errorMsg"><tmpl_var name="message_err"></div> -</tmpl_if> -<tmpl_if name="message_ok"> -<div id="OKMsg"><tmpl_var name="message_ok"></div> -</tmpl_if> -<tmpl_if name="insert_key"> - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <p> </p> - <div class="ctrlHolder"> - <label for="install_key">{tmpl_var name='install_key_txt'}</label> - <input name="install_key" id="install_key" value="{tmpl_var name='install_key'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - - <input type="hidden" name="package" value="{tmpl_var name='package_name'}"> - <input type="hidden" name="server_id" value="{tmpl_var name='server_id'}"> - <p> </p> - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_package_install.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_package_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </fieldset> - </div> -</tmpl_if> +<h2><tmpl_var name="head_txt"></h2> +<p><tmpl_var name="desc_txt"></p> + +<div class="panel panel_software_repo"> +<tmpl_if name="message_err"> +<div id="errorMsg"><tmpl_var name="message_err"></div> +</tmpl_if> +<tmpl_if name="message_ok"> +<div id="OKMsg"><tmpl_var name="message_ok"></div> +</tmpl_if> +<tmpl_if name="insert_key"> + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <p> </p> + <div class="ctrlHolder"> + <label for="install_key">{tmpl_var name='install_key_txt'}</label> + <input name="install_key" id="install_key" value="{tmpl_var name='install_key'}" size="40" maxlength="40" type="text" class="textInput" /> + </div> + + <input type="hidden" name="package" value="{tmpl_var name='package_name'}"> + <input type="hidden" name="server_id" value="{tmpl_var name='server_id'}"> + <p> </p> + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_package_install.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_package_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </fieldset> + </div> +</tmpl_if> </div> \ No newline at end of file diff --git a/interface/web/admin/templates/software_package_list.htm b/interface/web/admin/templates/software_package_list.htm index 2c16c583da..7a94318fd5 100644 --- a/interface/web/admin/templates/software_package_list.htm +++ b/interface/web/admin/templates/software_package_list.htm @@ -1,46 +1,46 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_package"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/software_package_list.php?action=repoupdate');"> - <span>{tmpl_var name="repoupdate_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> - <th class="tbl_col_package_title" scope="col"><tmpl_var name="package_title_txt"></th> - <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_description_txt"></th> - <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_id_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_installed">{tmpl_var name="installed"}</td> - <td class="tbl_col_package_title">{tmpl_var name="package_title"}</td> - <td class="tbl_col_package_description">{tmpl_var name="package_description"}</td> - <td class="tbl_col_package_description">ispapp{tmpl_var name="package_id"}</td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="4"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_package"> + + <div class="pnl_toolsarea"> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="iconstxt icoAdd" type="button" onClick="loadContent('admin/software_package_list.php?action=repoupdate');"> + <span>{tmpl_var name="repoupdate_txt"}</span> + </button> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> + <th class="tbl_col_package_title" scope="col"><tmpl_var name="package_title_txt"></th> + <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_description_txt"></th> + <th class="tbl_col_package_description" scope="col"><tmpl_var name="package_id_txt"></th> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_installed">{tmpl_var name="installed"}</td> + <td class="tbl_col_package_title">{tmpl_var name="package_title"}</td> + <td class="tbl_col_package_description">{tmpl_var name="package_description"}</td> + <td class="tbl_col_package_description">ispapp{tmpl_var name="package_id"}</td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="4"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/admin/templates/software_repo_edit.htm b/interface/web/admin/templates/software_repo_edit.htm index af335ecf5c..31b5db05c5 100644 --- a/interface/web/admin/templates/software_repo_edit.htm +++ b/interface/web/admin/templates/software_repo_edit.htm @@ -1,40 +1,40 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_software_repo"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="repo_name">{tmpl_var name='repo_name_txt'}</label> - <input name="repo_name" id="repo_name" value="{tmpl_var name='repo_name'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="repo_url">{tmpl_var name='repo_url_txt'}</label> - <input name="repo_url" id="repo_url" value="{tmpl_var name='repo_url'}" size="40" maxlength="40" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="repo_username">{tmpl_var name='repo_username_txt'}</label> - <input name="repo_username" id="repo_username" value="{tmpl_var name='repo_username'}" size="30" maxlength="30" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="repo_password">{tmpl_var name='repo_password_txt'}</label> - <input name="repo_password" id="repo_password" value="{tmpl_var name='repo_password'}" size="30" maxlength="30" type="password" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_repo_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_repo_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_software_repo"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="repo_name">{tmpl_var name='repo_name_txt'}</label> + <input name="repo_name" id="repo_name" value="{tmpl_var name='repo_name'}" size="40" maxlength="40" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="repo_url">{tmpl_var name='repo_url_txt'}</label> + <input name="repo_url" id="repo_url" value="{tmpl_var name='repo_url'}" size="40" maxlength="40" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="repo_username">{tmpl_var name='repo_username_txt'}</label> + <input name="repo_username" id="repo_username" value="{tmpl_var name='repo_username'}" size="30" maxlength="30" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="repo_password">{tmpl_var name='repo_password_txt'}</label> + <input name="repo_password" id="repo_password" value="{tmpl_var name='repo_password'}" size="30" maxlength="30" type="password" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/software_repo_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/software_repo_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/software_update_list.htm b/interface/web/admin/templates/software_update_list.htm index db2b03631d..d707fc9ba9 100644 --- a/interface/web/admin/templates/software_update_list.htm +++ b/interface/web/admin/templates/software_update_list.htm @@ -1,49 +1,49 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_software_update"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend>Tools</legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_select_txt'}</label> - <select name="server_id" id="server_id" class="selectInput" onChange="submitForm('pageForm','admin/software_update_list.php');"> - <tmpl_loop name="servers"> - <option value="{tmpl_var name='server_id'}" {tmpl_var name='selected'}>{tmpl_var name='server_name'}</option> - </tmpl_loop> - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> - <th class="tbl_col_update_title" scope="col"><tmpl_var name="update_title_txt"></th> - <th class="tbl_col_version" scope="col"><tmpl_var name="version_txt"></th> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_installed">{tmpl_var name="installed"}</td> - <td class="tbl_col_update_title">{tmpl_var name="update_title"}</td> - <td class="tbl_col_version">{tmpl_var name="version"}</td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_software_update"> + + <div class="pnl_toolsarea"> + <fieldset class="inlineLabels"><legend>Tools</legend> + <div class="buttons"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_select_txt'}</label> + <select name="server_id" id="server_id" class="selectInput" onChange="submitForm('pageForm','admin/software_update_list.php');"> + <tmpl_loop name="servers"> + <option value="{tmpl_var name='server_id'}" {tmpl_var name='selected'}>{tmpl_var name='server_name'}</option> + </tmpl_loop> + </select> + </div> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_installed" scope="col"><tmpl_var name="installed_txt"></th> + <th class="tbl_col_update_title" scope="col"><tmpl_var name="update_title_txt"></th> + <th class="tbl_col_version" scope="col"><tmpl_var name="version_txt"></th> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_installed">{tmpl_var name="installed"}</td> + <td class="tbl_col_update_title">{tmpl_var name="update_title"}</td> + <td class="tbl_col_version">{tmpl_var name="version"}</td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="3"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/admin/templates/users_groups_edit.htm b/interface/web/admin/templates/users_groups_edit.htm index 004c7dbd6e..0a1a9797f0 100644 --- a/interface/web/admin/templates/users_groups_edit.htm +++ b/interface/web/admin/templates/users_groups_edit.htm @@ -1,30 +1,30 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="default_group">{tmpl_var name='default_group_txt'}</label> - <select name="default_group" id="default_group" class="selectInput"> - {tmpl_var name='default_group'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='groups_txt'}</p> - <div class="multiField"> - {tmpl_var name='groups'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_users"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="default_group">{tmpl_var name='default_group_txt'}</label> + <select name="default_group" id="default_group" class="selectInput"> + {tmpl_var name='default_group'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='groups_txt'}</p> + <div class="multiField"> + {tmpl_var name='groups'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/admin/templates/users_user_edit.htm b/interface/web/admin/templates/users_user_edit.htm index ce0017823f..f16e9ebf35 100644 --- a/interface/web/admin/templates/users_user_edit.htm +++ b/interface/web/admin/templates/users_user_edit.htm @@ -1,67 +1,67 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="15" maxlength="30" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="passwort">{tmpl_var name='passwort_txt'}</label> - <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value)"/> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='modules_txt'}</p> - <div class="multiField"> - {tmpl_var name='modules'} - </div> - </div> - <div class="ctrlHolder"> - <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> - <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> - {tmpl_var name='startmodule'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='app_theme_txt'}</p> - <div class="multiField"> - {tmpl_var name='app_theme'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='typ_txt'}</p> - <div class="multiField"> - {tmpl_var name='typ'} - </div> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput withicons"> - {tmpl_var name='language'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_users"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="username">{tmpl_var name='username_txt'}</label> + <input name="username" id="username" value="{tmpl_var name='username'}" size="15" maxlength="30" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="passwort">{tmpl_var name='passwort_txt'}</label> + <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value)"/> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='modules_txt'}</p> + <div class="multiField"> + {tmpl_var name='modules'} + </div> + </div> + <div class="ctrlHolder"> + <label for="startmodule">{tmpl_var name='startmodule_txt'}</label> + <select name="startmodule" id="startmodule" class="selectInput formLengthHalf"> + {tmpl_var name='startmodule'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='app_theme_txt'}</p> + <div class="multiField"> + {tmpl_var name='app_theme'} + </div> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='typ_txt'}</p> + <div class="multiField"> + {tmpl_var name='typ'} + </div> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + <div class="ctrlHolder"> + <label for="language">{tmpl_var name='language_txt'}</label> + <select name="language" id="language" class="selectInput withicons"> + {tmpl_var name='language'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','admin/users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('admin/users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/capp.php b/interface/web/capp.php index 354652ce37..02f5c7faed 100644 --- a/interface/web/capp.php +++ b/interface/web/capp.php @@ -1,56 +1,56 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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('../lib/config.inc.php'); -require_once('../lib/app.inc.php'); - -// importiere Modul -$mod = $_REQUEST["mod"]; - -// Checke ob User eingeloggt -if($_SESSION["s"]["user"]['active'] != 1) { - header("Location: index.php?phpsessid=".$_SESSION["s"]["id"]); - die(); -} - -// checke ob User Modul verwenden darf -$user_modules = explode(",",$_SESSION["s"]["user"]["modules"]); - -if(!in_array($mod,$user_modules)) $app->error($app->lng(301)); - -// lade Moduldaten in Session -if(is_file($mod."/lib/module.conf.php")) { - include_once($mod."/lib/module.conf.php"); - $_SESSION["s"]["module"] = $module; - echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"]; -} else { - $app->error($app->lng(302)); -} +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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('../lib/config.inc.php'); +require_once('../lib/app.inc.php'); + +// importiere Modul +$mod = $_REQUEST["mod"]; + +// Checke ob User eingeloggt +if($_SESSION["s"]["user"]['active'] != 1) { + header("Location: index.php?phpsessid=".$_SESSION["s"]["id"]); + die(); +} + +// checke ob User Modul verwenden darf +$user_modules = explode(",",$_SESSION["s"]["user"]["modules"]); + +if(!in_array($mod,$user_modules)) $app->error($app->lng(301)); + +// lade Moduldaten in Session +if(is_file($mod."/lib/module.conf.php")) { + include_once($mod."/lib/module.conf.php"); + $_SESSION["s"]["module"] = $module; + echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"]; +} else { + $app->error($app->lng(302)); +} ?> \ No newline at end of file diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index 61daec1759..b6a54ae99d 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -1,860 +1,860 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "Client"; -$form["description"] = ""; -$form["name"] = "client"; -$form["action"] = "client_edit.php"; -$form["db_table"] = "client"; -$form["db_table_idx"] = "client_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "address"; -$form["list_default"] = "client_list.php"; -$form["auth"] = 'yes'; - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir ($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - $themes_list[$file] = $file; - } - } -} - -$form["tabs"]['address'] = array ( - 'title' => "Address", - 'width' => 100, - 'template' => "templates/client_edit_address.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'company_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'contact_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'contact_error_empty'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'customer_no' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_client', - 'function' => 'username_unique', - 'errmsg'=> 'username_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => $conf["language"], - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'usertheme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'street' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'zip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'city' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'state' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'country' => array ( - 'datatype' => 'VARCHAR', - - 'formtype' => 'SELECT', - 'default' => 'DE', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', - 'keyfield'=> 'iso', - 'valuefield'=> 'printable_name' - ), - 'value' => '' - ), - 'telephone' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'mobile' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'internet' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'http://', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'icq' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'vat_id' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'company_id' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '20', - 'rows' => '', - 'cols' => '' - ), - 'notes' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '', - 'maxlength' => '', - 'rows' => '10', - 'cols' => '30' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/client_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_master' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'master_templates' - ), - 'value' => '' - ), - 'template_additional' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - ), - 'default_mailserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_mailserver' - ), - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailaliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailaliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailmailinglist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailmailinglist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_webserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_webserver' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'web_php_options' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'valuelimit' => 'client:web_php_options', - 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'ssh_chroot' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'valuelimit' => 'client:ssh_chroot', - 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') - ), - 'limit_webdav_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_webdav_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_dnsserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_dnsserver' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_slave_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_slave_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_dbserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_dbserver' - ), - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -/* -$form["tabs"]['ipaddress'] = array ( - 'title' => "IP Addresses", - 'width' => 100, - 'template' => "templates/client_edit_ipaddress.htm", - 'fields' => array ( - ################################## - # Beginn Datatable fields - ################################## - 'ip_address' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), - 'separator' => ';' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - - -?> +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Client"; +$form["description"] = ""; +$form["name"] = "client"; +$form["action"] = "client_edit.php"; +$form["db_table"] = "client"; +$form["db_table_idx"] = "client_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "address"; +$form["list_default"] = "client_list.php"; +$form["auth"] = 'yes'; + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir ($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + $themes_list[$file] = $file; + } + } +} + +$form["tabs"]['address'] = array ( + 'title' => "Address", + 'width' => 100, + 'template' => "templates/client_edit_address.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'company_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'contact_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'contact_error_empty'), + ), + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'customer_no' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'username' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'username_error_empty'), + 1 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_client', + 'function' => 'username_unique', + 'errmsg'=> 'username_error_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-\_]{0,64}$/', + 'errmsg'=> 'username_error_regex'), + ), + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption'=> 'CRYPT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'language' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => $conf["language"], + 'value' => $language_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'usertheme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'default', + 'value' => $themes_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'street' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'zip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'city' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'state' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'country' => array ( + 'datatype' => 'VARCHAR', + + 'formtype' => 'SELECT', + 'default' => 'DE', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', + 'keyfield'=> 'iso', + 'valuefield'=> 'printable_name' + ), + 'value' => '' + ), + 'telephone' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'mobile' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'fax' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'email' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'internet' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'http://', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'icq' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'vat_id' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'company_id' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '20', + 'rows' => '', + 'cols' => '' + ), + 'notes' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '', + 'maxlength' => '', + 'rows' => '10', + 'cols' => '30' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +$form["tabs"]['limits'] = array ( + 'title' => "Limits", + 'width' => 80, + 'template' => "templates/client_edit_limits.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'template_master' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'master_templates' + ), + 'value' => '' + ), + 'template_additional' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + ), + 'default_mailserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'client_servers' + ), + 'value' => '', + 'name' => 'default_mailserver' + ), + 'limit_maildomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_maildomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailbox' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailbox_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailalias' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailalias_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailaliasdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailaliasdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailmailinglist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailmailinglist_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailforward' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailforward_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailcatchall' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailcatchall_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailrouting' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailrouting_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailfilter' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfilter_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_fetchmail' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfetchmail_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailquota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailquota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_wblist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_policy' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_policy_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'default_webserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'client_servers' + ), + 'value' => '', + 'name' => 'default_webserver' + ), + 'limit_web_domain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_domain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'web_php_options' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'separator' => ',', + 'valuelimit' => 'client:web_php_options', + 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') + ), + 'limit_web_aliasdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_aliasdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_subdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_subdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_ftp_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_ftp_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_shell_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_shell_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'ssh_chroot' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'separator' => ',', + 'valuelimit' => 'client:ssh_chroot', + 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') + ), + 'limit_webdav_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_webdav_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'default_dnsserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'client_servers' + ), + 'value' => '', + 'name' => 'default_dnsserver' + ), + 'limit_dns_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_record' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_record_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_client' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_client_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'default_dbserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'client_servers' + ), + 'value' => '', + 'name' => 'default_dbserver' + ), + 'limit_database' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_database_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') + ), + 'limit_cron_frequency' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_frequency'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_traffic_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_traffic_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +/* +$form["tabs"]['ipaddress'] = array ( + 'title' => "IP Addresses", + 'width' => 100, + 'template' => "templates/client_edit_ipaddress.htm", + 'fields' => array ( + ################################## + # Beginn Datatable fields + ################################## + 'ip_address' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), + 'separator' => ';' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); +*/ + + +?> diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php index dc1627ce12..628def1a69 100644 --- a/interface/web/client/form/client_template.tform.php +++ b/interface/web/client/form/client_template.tform.php @@ -1,524 +1,524 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "Client-Templates"; -$form["description"] = ""; -$form["name"] = "client_template"; -$form["action"] = "client_template_edit.php"; -$form["db_table"] = "client_template"; -$form["db_table_idx"] = "template_id"; -$form["db_history"] = "no"; -$form["tab_default"] = "template"; -$form["list_default"] = "client_template_list.php"; -$form["auth"] = 'yes'; - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form["tabs"]['template'] = array ( - 'title' => "Template", - 'width' => 80, - 'template' => "templates/client_template_edit_template.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'm', - 'value' => array('m' => "Main Template",'a' => "Additional Template"), - ), - 'template_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'error_template_name_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/client_template_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailaliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailaliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailmailinglist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailmailinglist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_webdav_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_webdav_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_slave_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_slave_zone_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - /* - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - */ - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -?> +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Client-Templates"; +$form["description"] = ""; +$form["name"] = "client_template"; +$form["action"] = "client_template_edit.php"; +$form["db_table"] = "client_template"; +$form["db_table_idx"] = "template_id"; +$form["db_history"] = "no"; +$form["tab_default"] = "template"; +$form["list_default"] = "client_template_list.php"; +$form["auth"] = 'yes'; + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +$form["tabs"]['template'] = array ( + 'title' => "Template", + 'width' => 80, + 'template' => "templates/client_template_edit_template.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'template_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'm', + 'value' => array('m' => "Main Template",'a' => "Additional Template"), + ), + 'template_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'error_template_name_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +$form["tabs"]['limits'] = array ( + 'title' => "Limits", + 'width' => 80, + 'template' => "templates/client_template_edit_limits.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'limit_maildomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_maildomain_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailbox' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailbox_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailalias' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailalias_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailaliasdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailaliasdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailmailinglist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailmailinglist_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailforward' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailforward_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailcatchall' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailcatchall_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailrouting' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailrouting_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailfilter' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfilter_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_fetchmail' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfetchmail_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailquota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailquota_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_wblist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_user_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_policy' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_policy_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_domain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_domain_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_aliasdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_aliasdomain_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_subdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_subdomain_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_ftp_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_ftp_user_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_shell_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_shell_user_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_webdav_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_webdav_user_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_zone_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_record' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_record_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + /* + 'limit_client' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_client_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + */ + 'limit_database' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_database_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') + ), + 'limit_cron_frequency' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_frequency'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_traffic_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_traffic_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +?> diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index ebd8af79cd..e35447f3c8 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -1,640 +1,640 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "Reseller"; -$form["description"] = ""; -$form["name"] = "reseller"; -$form["action"] = "reseller_edit.php"; -$form["db_table"] = "client"; -$form["db_table_idx"] = "client_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "address"; -$form["list_default"] = "reseller_list.php"; -$form["auth"] = 'yes'; - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form["tabs"]['address'] = array ( - 'title' => "Address", - 'width' => 100, - 'template' => "templates/reseller_edit_address.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'company_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'contact_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'contact_error_empty'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'customer_no' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_client', - 'function' => 'username_unique', - 'errmsg'=> 'username_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => $conf["language"], - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'usertheme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'default', - 'value' => array('default' => 'default'), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'street' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'zip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'city' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'state' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'country' => array ( - 'datatype' => 'VARCHAR', - - 'formtype' => 'SELECT', - 'default' => 'DE', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', - 'keyfield'=> 'iso', - 'valuefield'=> 'printable_name' - ), - 'value' => '' - ), - 'telephone' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'mobile' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'internet' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'http://', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'icq' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'vat_id' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'notes' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '', - 'maxlength' => '', - 'rows' => '10', - 'cols' => '30' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/reseller_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_master' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'master_templates' - ), - 'value' => '' - ), - 'template_additional' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - ), - 'default_mailserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailmailinglist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailmailinglist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_webserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'web_php_options' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'ssh_chroot' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') - ), +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Reseller"; +$form["description"] = ""; +$form["name"] = "reseller"; +$form["action"] = "reseller_edit.php"; +$form["db_table"] = "client"; +$form["db_table_idx"] = "client_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "address"; +$form["list_default"] = "reseller_list.php"; +$form["auth"] = 'yes'; + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +$form["tabs"]['address'] = array ( + 'title' => "Address", + 'width' => 100, + 'template' => "templates/reseller_edit_address.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'company_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'contact_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'contact_error_empty'), + ), + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'customer_no' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'username' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'username_error_empty'), + 1 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_client', + 'function' => 'username_unique', + 'errmsg'=> 'username_error_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-\_]{0,64}$/', + 'errmsg'=> 'username_error_regex'), + ), + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption'=> 'CRYPT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'language' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => $conf["language"], + 'value' => $language_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'usertheme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'default', + 'value' => array('default' => 'default'), + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'street' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'zip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'city' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'state' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'country' => array ( + 'datatype' => 'VARCHAR', + + 'formtype' => 'SELECT', + 'default' => 'DE', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', + 'keyfield'=> 'iso', + 'valuefield'=> 'printable_name' + ), + 'value' => '' + ), + 'telephone' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'mobile' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'fax' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'email' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'internet' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'http://', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'icq' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'vat_id' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'notes' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '', + 'maxlength' => '', + 'rows' => '10', + 'cols' => '30' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +$form["tabs"]['limits'] = array ( + 'title' => "Limits", + 'width' => 80, + 'template' => "templates/reseller_edit_limits.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'template_master' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'master_templates' + ), + 'value' => '' + ), + 'template_additional' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + ), + 'default_mailserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'limit_maildomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_maildomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailmailinglist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailmailinglist_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailbox' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailbox_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailalias' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailalias_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailforward' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailforward_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailcatchall' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailcatchall_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailrouting' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailrouting_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailfilter' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfilter_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_fetchmail' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailfetchmail_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_mailquota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_mailquota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_wblist' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_spamfilter_policy' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_spamfilter_policy_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'default_webserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'limit_web_domain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_domain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'web_php_options' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'separator' => ',', + 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') + ), + 'limit_web_aliasdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_aliasdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_web_subdomain' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_web_subdomain_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_ftp_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_ftp_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_shell_user' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_shell_user_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'ssh_chroot' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'separator' => ',', + 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') + ), 'limit_webdav_user' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', @@ -649,177 +649,177 @@ $form["tabs"]['limits'] = array ( 'rows' => '', 'cols' => '' ), - 'default_dnsserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_slave_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_slave_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_reseller', - 'function' => 'limit_client'), - ), - 'default' => '1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_dbserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -/* -$form["tabs"]['ipaddress'] = array ( - 'title' => "IP Addresses", - 'width' => 100, - 'template' => "templates/client_edit_ipaddress.htm", - 'fields' => array ( - ################################## - # Beginn Datatable fields - ################################## - 'ip_address' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), - 'separator' => ';' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - - -?> + 'default_dnsserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'limit_dns_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_dns_record' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_record_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_client' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_client_error_notint'), + 1 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_reseller', + 'function' => 'limit_client'), + ), + 'default' => '1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'default_dbserver' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'limit_database' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_database_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_cron_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') + ), + 'limit_cron_frequency' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_cron_error_frequency'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + 'limit_traffic_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_traffic_quota_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), + ################################## + # END Datatable fields + ################################## + ) +); + +/* +$form["tabs"]['ipaddress'] = array ( + 'title' => "IP Addresses", + 'width' => 100, + 'template' => "templates/client_edit_ipaddress.htm", + 'fields' => array ( + ################################## + # Beginn Datatable fields + ################################## + 'ip_address' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), + 'separator' => ';' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); +*/ + + +?> diff --git a/interface/web/client/lib/admin.conf.php b/interface/web/client/lib/admin.conf.php index a45d440345..67c94a5742 100644 --- a/interface/web/client/lib/admin.conf.php +++ b/interface/web/client/lib/admin.conf.php @@ -1,2 +1,2 @@ -<?php +<?php ?> \ No newline at end of file diff --git a/interface/web/client/templates/client_edit_address.htm b/interface/web/client/templates/client_edit_address.htm index 520c3fa32c..850804637b 100644 --- a/interface/web/client/templates/client_edit_address.htm +++ b/interface/web/client/templates/client_edit_address.htm @@ -1,114 +1,114 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Address</legend> - <div class="ctrlHolder"> - <label for="company_name">{tmpl_var name='company_name_txt'}</label> - <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="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> - <div class="ctrlHolder"> - <label for="customer_no">{tmpl_var name='customer_no_txt'}</label> - <input name="customer_no" id="customer_no" value="{tmpl_var name='customer_no'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}*</label> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput withicons"> - {tmpl_var name='language'} - </select> - </div> - <div class="ctrlHolder"> - <label for="usertheme">{tmpl_var name='usertheme_txt'}</label> - <select name="usertheme" id="usertheme" class="selectInput"> - {tmpl_var name='usertheme'} - </select> - </div> - <div class="ctrlHolder"> - <label for="street">{tmpl_var name='street_txt'}</label> - <input name="street" id="street" value="{tmpl_var name='street'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="zip">{tmpl_var name='zip_txt'}</label> - <input name="zip" id="zip" value="{tmpl_var name='zip'}" size="10" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="city">{tmpl_var name='city_txt'}</label> - <input name="city" id="city" value="{tmpl_var name='city'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="state">{tmpl_var name='state_txt'}</label> - <input name="state" id="state" value="{tmpl_var name='state'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="country">{tmpl_var name='country_txt'}</label> - <select name="country" id="country" class="selectInput withicons"> - {tmpl_var name='country'} - </select> - </div> - <div class="ctrlHolder"> - <label for="telephone">{tmpl_var name='telephone_txt'}</label> - <input name="telephone" id="telephone" value="{tmpl_var name='telephone'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="mobile">{tmpl_var name='mobile_txt'}</label> - <input name="mobile" id="mobile" value="{tmpl_var name='mobile'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fax">{tmpl_var name='fax_txt'}</label> - <input name="fax" id="fax" value="{tmpl_var name='fax'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="internet">{tmpl_var name='internet_txt'}</label> - <input name="internet" id="internet" value="{tmpl_var name='internet'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="icq">{tmpl_var name='icq_txt'}</label> - <input name="icq" id="icq" value="{tmpl_var name='icq'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="vat_id">{tmpl_var name='vat_id_txt'}</label> - <input name="vat_id" id="vat_id" value="{tmpl_var name='vat_id'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="company_id">{tmpl_var name='company_id_txt'}</label> - <input name="company_id" id="company_id" value="{tmpl_var name='company_id'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="notes">{tmpl_var name='notes_txt'}</label> - <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea> - </div> - {tmpl_var name='required_fields_txt'} - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_client"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Address</legend> + <div class="ctrlHolder"> + <label for="company_name">{tmpl_var name='company_name_txt'}</label> + <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="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> + <div class="ctrlHolder"> + <label for="customer_no">{tmpl_var name='customer_no_txt'}</label> + <input name="customer_no" id="customer_no" value="{tmpl_var name='customer_no'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="username">{tmpl_var name='username_txt'}*</label> + <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="password">{tmpl_var name='password_txt'}</label> + <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <label for="language">{tmpl_var name='language_txt'}</label> + <select name="language" id="language" class="selectInput withicons"> + {tmpl_var name='language'} + </select> + </div> + <div class="ctrlHolder"> + <label for="usertheme">{tmpl_var name='usertheme_txt'}</label> + <select name="usertheme" id="usertheme" class="selectInput"> + {tmpl_var name='usertheme'} + </select> + </div> + <div class="ctrlHolder"> + <label for="street">{tmpl_var name='street_txt'}</label> + <input name="street" id="street" value="{tmpl_var name='street'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="zip">{tmpl_var name='zip_txt'}</label> + <input name="zip" id="zip" value="{tmpl_var name='zip'}" size="10" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="city">{tmpl_var name='city_txt'}</label> + <input name="city" id="city" value="{tmpl_var name='city'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="state">{tmpl_var name='state_txt'}</label> + <input name="state" id="state" value="{tmpl_var name='state'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="country">{tmpl_var name='country_txt'}</label> + <select name="country" id="country" class="selectInput withicons"> + {tmpl_var name='country'} + </select> + </div> + <div class="ctrlHolder"> + <label for="telephone">{tmpl_var name='telephone_txt'}</label> + <input name="telephone" id="telephone" value="{tmpl_var name='telephone'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="mobile">{tmpl_var name='mobile_txt'}</label> + <input name="mobile" id="mobile" value="{tmpl_var name='mobile'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fax">{tmpl_var name='fax_txt'}</label> + <input name="fax" id="fax" value="{tmpl_var name='fax'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="email">{tmpl_var name='email_txt'}</label> + <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="internet">{tmpl_var name='internet_txt'}</label> + <input name="internet" id="internet" value="{tmpl_var name='internet'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="icq">{tmpl_var name='icq_txt'}</label> + <input name="icq" id="icq" value="{tmpl_var name='icq'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="vat_id">{tmpl_var name='vat_id_txt'}</label> + <input name="vat_id" id="vat_id" value="{tmpl_var name='vat_id'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="company_id">{tmpl_var name='company_id_txt'}</label> + <input name="company_id" id="company_id" value="{tmpl_var name='company_id'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="notes">{tmpl_var name='notes_txt'}</label> + <textarea name="notes" id="notes" rows='10' cols='30'>{tmpl_var name='notes'}</textarea> + </div> + {tmpl_var name='required_fields_txt'} + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index ae6ad737bb..c8b8819dd0 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -1,202 +1,202 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <tmpl_if name="is_admin"> - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="positive iconstxt icoAdd" type="button" value="Add additional template" onClick="addAdditionalTemplate();"><span>Add additional template</span></button> - <button class="negative iconstxt icoDelete" type="button" value="Delete additional template" onClick="delAdditionalTemplate();"><span>Delete additional template</span></button> - </div> - </fieldset> - </div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="template_master">{tmpl_var name='template_master_txt'}</label> - <select name="template_master" id="template_master" class="selectInput"> - {tmpl_var name='template_master'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> - <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> - {tmpl_var name='tpl_add_select'} - </select> - <div id="template_additional_list"><br /><br />{tmpl_var name='template_additional_list'}</div> - <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> - </div> - <div class="ctrlHolder"> - - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> - <select name="default_mailserver" id="default_mailserver" class="selectInput"> - {tmpl_var name='default_mailserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> - <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> - <select name="default_webserver" id="default_webserver" class="selectInput"> - {tmpl_var name='default_webserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_php_options_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_php_options'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssh_chroot'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> - <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> - <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> - {tmpl_var name='default_dnsserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> - <select name="default_dbserver" id="default_dbserver" class="selectInput"> - {tmpl_var name='default_dbserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_client"> + + <tmpl_if name="is_admin"> + <div class="pnl_toolsarea"> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="positive iconstxt icoAdd" type="button" value="Add additional template" onClick="addAdditionalTemplate();"><span>Add additional template</span></button> + <button class="negative iconstxt icoDelete" type="button" value="Delete additional template" onClick="delAdditionalTemplate();"><span>Delete additional template</span></button> + </div> + </fieldset> + </div> + </tmpl_if> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Limits</legend> + <tmpl_if name="is_admin"> + <div class="ctrlHolder"> + <label for="template_master">{tmpl_var name='template_master_txt'}</label> + <select name="template_master" id="template_master" class="selectInput"> + {tmpl_var name='template_master'} + </select> + </div> + <div class="ctrlHolder"> + <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> + <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> + {tmpl_var name='tpl_add_select'} + </select> + <div id="template_additional_list"><br /><br />{tmpl_var name='template_additional_list'}</div> + <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> + </div> + <div class="ctrlHolder"> + + </div> + </tmpl_if> + <div class="ctrlHolder"> + <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> + <select name="default_mailserver" id="default_mailserver" class="selectInput"> + {tmpl_var name='default_mailserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> + <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> + <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> + <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> + <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> + <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> + <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> + <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> + <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> + <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> + <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> + <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> + <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> + <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> + <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> + <select name="default_webserver" id="default_webserver" class="selectInput"> + {tmpl_var name='default_webserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> + <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> + <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='web_php_options_txt'}</p> + <div class="multiField"> + {tmpl_var name='web_php_options'} + </div> + </div> + <div class="ctrlHolder"> + <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> + <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> + <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> + <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> + <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssh_chroot'} + </div> + </div> + <div class="ctrlHolder"> + <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> + <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> + <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> + {tmpl_var name='default_dnsserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> + <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> + <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> + <select name="default_dbserver" id="default_dbserver" class="selectInput"> + {tmpl_var name='default_dbserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> + <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> + <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> + <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> + {tmpl_var name='limit_cron_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> + <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> + <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index 5e405a177f..a1c67129e9 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -1,136 +1,136 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> - <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> - <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_client_template"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Limits</legend> + <div class="ctrlHolder"> + <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> + <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> + <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> + <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailaliasdomain">{tmpl_var name='limit_mailaliasdomain_txt'}</label> + <input name="limit_mailaliasdomain" id="limit_mailaliasdomain" value="{tmpl_var name='limit_mailaliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> + <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> + <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> + <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> + <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> + <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> + <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> + <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> + <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> + <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> + <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> + <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> + <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> + <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> + <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> + <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> + <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> + <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> + <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> + <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> + <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> + <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> + <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> + {tmpl_var name='limit_cron_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> + <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> + <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/client/templates/client_template_edit_template.htm b/interface/web/client/templates/client_template_edit_template.htm index 6c9d905340..a3a8fe577b 100644 --- a/interface/web/client/templates/client_template_edit_template.htm +++ b/interface/web/client/templates/client_template_edit_template.htm @@ -1,28 +1,28 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Template</legend> - <div class="ctrlHolder"> - <label for="template_type">{tmpl_var name='template_type_txt'}</label> - <select name="template_type" id="template_type" class="selectInput"> - {tmpl_var name='template_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_name">{tmpl_var name='template_name_txt'}</label> - <input name="template_name" id="template_name" value="{tmpl_var name='template_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_client_template"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Template</legend> + <div class="ctrlHolder"> + <label for="template_type">{tmpl_var name='template_type_txt'}</label> + <select name="template_type" id="template_type" class="selectInput"> + {tmpl_var name='template_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="template_name">{tmpl_var name='template_name_txt'}</label> + <input name="template_name" id="template_name" value="{tmpl_var name='template_name'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/client_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index 280a24ed19..7ac3519172 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -1,191 +1,191 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_client"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Limits</legend> -<tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="template_master">{tmpl_var name='template_master_txt'}</label> - <select name="template_master" id="template_master" class="selectInput"> - {tmpl_var name='template_master'} - </select> - </div> - <div class="ctrlHolder"> - <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> - <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> - {tmpl_var name='tpl_add_select'} - </select> - <span id="template_additional_list">{tmpl_var name='template_additional_list'}</span> - <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> - </div> - <div class="ctrlHolder"> - - </div> -</tmpl_if> - <div class="ctrlHolder"> - <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> - <select name="default_mailserver" id="default_mailserver" class="selectInput"> - {tmpl_var name='default_mailserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> - <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> - <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> - <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> - <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> - <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> - <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> - <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> - <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> - <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> - <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> - <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> - <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> - <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> - <select name="default_webserver" id="default_webserver" class="selectInput"> - {tmpl_var name='default_webserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> - <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> - <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='web_php_options_txt'}</p> - <div class="multiField"> - {tmpl_var name='web_php_options'} - </div> - </div> - <div class="ctrlHolder"> - <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> - <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> - <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> - <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> - <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> - <div class="multiField"> - {tmpl_var name='ssh_chroot'} - </div> - </div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_client"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Limits</legend> +<tmpl_if name="is_admin"> + <div class="ctrlHolder"> + <label for="template_master">{tmpl_var name='template_master_txt'}</label> + <select name="template_master" id="template_master" class="selectInput"> + {tmpl_var name='template_master'} + </select> + </div> + <div class="ctrlHolder"> + <label for="template_additional">{tmpl_var name='template_additional_txt'}</label> + <select name="tpl_add_select" id="tpl_add_select" class="selectInput"> + {tmpl_var name='tpl_add_select'} + </select> + <span id="template_additional_list">{tmpl_var name='template_additional_list'}</span> + <input type="hidden" id="template_additional" name="template_additional" value="{tmpl_var name='template_additional'}"> + </div> + <div class="ctrlHolder"> + + </div> +</tmpl_if> + <div class="ctrlHolder"> + <label for="default_mailserver">{tmpl_var name='default_mailserver_txt'}</label> + <select name="default_mailserver" id="default_mailserver" class="selectInput"> + {tmpl_var name='default_mailserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_maildomain">{tmpl_var name='limit_maildomain_txt'}</label> + <input name="limit_maildomain" id="limit_maildomain" value="{tmpl_var name='limit_maildomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailmailinglist">{tmpl_var name='limit_mailmailinglist_txt'}</label> + <input name="limit_mailmailinglist" id="limit_mailmailinglist" value="{tmpl_var name='limit_mailmailinglist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailbox">{tmpl_var name='limit_mailbox_txt'}</label> + <input name="limit_mailbox" id="limit_mailbox" value="{tmpl_var name='limit_mailbox'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailalias">{tmpl_var name='limit_mailalias_txt'}</label> + <input name="limit_mailalias" id="limit_mailalias" value="{tmpl_var name='limit_mailalias'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailforward">{tmpl_var name='limit_mailforward_txt'}</label> + <input name="limit_mailforward" id="limit_mailforward" value="{tmpl_var name='limit_mailforward'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailcatchall">{tmpl_var name='limit_mailcatchall_txt'}</label> + <input name="limit_mailcatchall" id="limit_mailcatchall" value="{tmpl_var name='limit_mailcatchall'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailrouting">{tmpl_var name='limit_mailrouting_txt'}</label> + <input name="limit_mailrouting" id="limit_mailrouting" value="{tmpl_var name='limit_mailrouting'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailfilter">{tmpl_var name='limit_mailfilter_txt'}</label> + <input name="limit_mailfilter" id="limit_mailfilter" value="{tmpl_var name='limit_mailfilter'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_fetchmail">{tmpl_var name='limit_fetchmail_txt'}</label> + <input name="limit_fetchmail" id="limit_fetchmail" value="{tmpl_var name='limit_fetchmail'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_mailquota">{tmpl_var name='limit_mailquota_txt'}</label> + <input name="limit_mailquota" id="limit_mailquota" value="{tmpl_var name='limit_mailquota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_wblist">{tmpl_var name='limit_spamfilter_wblist_txt'}</label> + <input name="limit_spamfilter_wblist" id="limit_spamfilter_wblist" value="{tmpl_var name='limit_spamfilter_wblist'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_user">{tmpl_var name='limit_spamfilter_user_txt'}</label> + <input name="limit_spamfilter_user" id="limit_spamfilter_user" value="{tmpl_var name='limit_spamfilter_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_spamfilter_policy">{tmpl_var name='limit_spamfilter_policy_txt'}</label> + <input name="limit_spamfilter_policy" id="limit_spamfilter_policy" value="{tmpl_var name='limit_spamfilter_policy'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="default_webserver">{tmpl_var name='default_webserver_txt'}</label> + <select name="default_webserver" id="default_webserver" class="selectInput"> + {tmpl_var name='default_webserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_web_domain">{tmpl_var name='limit_web_domain_txt'}</label> + <input name="limit_web_domain" id="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_quota">{tmpl_var name='limit_web_quota_txt'}</label> + <input name="limit_web_quota" id="limit_web_quota" value="{tmpl_var name='limit_web_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='web_php_options_txt'}</p> + <div class="multiField"> + {tmpl_var name='web_php_options'} + </div> + </div> + <div class="ctrlHolder"> + <label for="limit_web_aliasdomain">{tmpl_var name='limit_web_aliasdomain_txt'}</label> + <input name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_web_subdomain">{tmpl_var name='limit_web_subdomain_txt'}</label> + <input name="limit_web_subdomain" id="limit_web_subdomain" value="{tmpl_var name='limit_web_subdomain'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_ftp_user">{tmpl_var name='limit_ftp_user_txt'}</label> + <input name="limit_ftp_user" id="limit_ftp_user" value="{tmpl_var name='limit_ftp_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_shell_user">{tmpl_var name='limit_shell_user_txt'}</label> + <input name="limit_shell_user" id="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssh_chroot_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssh_chroot'} + </div> + </div> <div class="ctrlHolder"> <label for="limit_webdav_user">{tmpl_var name='limit_webdav_user_txt'}</label> <input name="limit_webdav_user" id="limit_webdav_user" value="{tmpl_var name='limit_webdav_user'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> - <div class="ctrlHolder"> - <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> - <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> - {tmpl_var name='default_dnsserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> - <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> - <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> - <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_client">{tmpl_var name='limit_client_txt'}</label> - <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> - <select name="default_dbserver" id="default_dbserver" class="selectInput"> - {tmpl_var name='default_dbserver'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> - <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> - <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> - <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> - {tmpl_var name='limit_cron_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> - <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> - <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/reseller_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/reseller_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> + <div class="ctrlHolder"> + <label for="default_dnsserver">{tmpl_var name='default_dnsserver_txt'}</label> + <select name="default_dnsserver" id="default_dnsserver" class="selectInput"> + {tmpl_var name='default_dnsserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_zone">{tmpl_var name='limit_dns_zone_txt'}</label> + <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> + <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_client">{tmpl_var name='limit_client_txt'}</label> + <input name="limit_client" id="limit_client" value="{tmpl_var name='limit_client'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="default_dbserver">{tmpl_var name='default_dbserver_txt'}</label> + <select name="default_dbserver" id="default_dbserver" class="selectInput"> + {tmpl_var name='default_dbserver'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_database">{tmpl_var name='limit_database_txt'}</label> + <input name="limit_database" id="limit_database" value="{tmpl_var name='limit_database'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron">{tmpl_var name='limit_cron_txt'}</label> + <input name="limit_cron" id="limit_cron" value="{tmpl_var name='limit_cron'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_type">{tmpl_var name='limit_cron_type_txt'}</label> + <select name="limit_cron_type" id="limit_cron_type" class="selectInput formLengthHalf"> + {tmpl_var name='limit_cron_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="limit_cron_frequency">{tmpl_var name='limit_cron_frequency_txt'}</label> + <input name="limit_cron_frequency" id="limit_cron_frequency" value="{tmpl_var name='limit_cron_frequency'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="limit_traffic_quota">{tmpl_var name='limit_traffic_quota_txt'}</label> + <input name="limit_traffic_quota" id="limit_traffic_quota" value="{tmpl_var name='limit_traffic_quota'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> MB + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','client/reseller_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/reseller_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index b020def549..81f8701746 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -1,177 +1,177 @@ -<?php - -class dashlet_limits { - - function show() { - global $app, $conf; - - $limits = array(); - - /* Limits to be shown*/ - - $limits[] = array('field' => 'limit_maildomain', - 'db_table' => 'mail_domain', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailmailinglist', - 'db_table' => 'mail_mailinglist', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailbox', - 'db_table' => 'mail_user', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailalias', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'alias'"); - - $limits[] = array('field' => 'limit_mailaliasdomain', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'aliasdomain'"); - - $limits[] = array('field' => 'limit_mailforward', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'forward'"); - - $limits[] = array('field' => 'limit_mailcatchall', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'catchall'"); - - $limits[] = array('field' => 'limit_mailrouting', - 'db_table' => 'mail_transport', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_mailfilter', - 'db_table' => 'mail_user_filter', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_fetchmail', - 'db_table' => 'mail_get', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_wblist', - 'db_table' => 'spamfilter_wblist', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_user', - 'db_table' => 'spamfilter_users', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_policy', - 'db_table' => 'spamfilter_policy', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_web_domain', - 'db_table' => 'web_domain', - 'db_where' => "type = 'vhost'"); - - $limits[] = array('field' => 'limit_web_subdomain', - 'db_table' => 'web_domain', - 'db_where' => "type = 'subdomain'"); - - $limits[] = array('field' => 'limit_web_aliasdomain', - 'db_table' => 'web_domain', - 'db_where' => "type = 'alias'"); - - $limits[] = array('field' => 'limit_ftp_user', - 'db_table' => 'ftp_user', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_shell_user', - 'db_table' => 'shell_user', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_zone', - 'db_table' => 'dns_soa', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_slave_zone', - 'db_table' => 'dns_slave', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_record', - 'db_table' => 'dns_rr', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_database', - 'db_table' => 'web_database', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_cron', - 'db_table' => 'cron', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_client', - 'db_table' => 'client', - 'db_where' => ""); - - - - - //* Loading Template - $app->uses('tpl,tform'); - - $tpl = new tpl; - $tpl->newTemplate("dashlets/templates/limits.htm"); - - $wb = array(); - $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng'; - if(is_file($lng_file)) include($lng_file); - $tpl->setVar($wb); - - if($app->auth->is_admin()) { - $user_is_admin = true; - } else { - $user_is_admin = false; - } - $tpl->setVar('is_admin',$user_is_admin); - - if($user_is_admin == false) { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - } - - $rows = array(); - foreach($limits as $limit) { - $field = $limit['field']; - if($user_is_admin) { - $value = $wb['unlimited_txt']; - } else { - $value = $client[$field]; - } - if($value != 0 || $value == $wb['unlimited_txt']) { - $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; - $rows[] = array('field' => $field, - 'field_txt' => $wb[$field.'_txt'], - 'value' => $value_formatted, - 'usage' => $this->_get_limit_usage($limit)); - } - } - $tpl->setLoop('rows',$rows); - - - return $tpl->grab(); - - } - - function _get_limit_usage($limit) { - global $app; - - $sql = "SELECT count(sys_userid) as number FROM ".$limit['db_table']." WHERE "; - if($limit['db_where'] != '') $sql .= $limit['db_where']." AND "; - $sql .= $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql); - return $rec['number']; - - } - -} - - - - - - - - -?> +<?php + +class dashlet_limits { + + function show() { + global $app, $conf; + + $limits = array(); + + /* Limits to be shown*/ + + $limits[] = array('field' => 'limit_maildomain', + 'db_table' => 'mail_domain', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailmailinglist', + 'db_table' => 'mail_mailinglist', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailbox', + 'db_table' => 'mail_user', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailalias', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'alias'"); + + $limits[] = array('field' => 'limit_mailaliasdomain', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'aliasdomain'"); + + $limits[] = array('field' => 'limit_mailforward', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'forward'"); + + $limits[] = array('field' => 'limit_mailcatchall', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'catchall'"); + + $limits[] = array('field' => 'limit_mailrouting', + 'db_table' => 'mail_transport', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_mailfilter', + 'db_table' => 'mail_user_filter', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_fetchmail', + 'db_table' => 'mail_get', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_wblist', + 'db_table' => 'spamfilter_wblist', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_user', + 'db_table' => 'spamfilter_users', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_policy', + 'db_table' => 'spamfilter_policy', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_web_domain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'vhost'"); + + $limits[] = array('field' => 'limit_web_subdomain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'subdomain'"); + + $limits[] = array('field' => 'limit_web_aliasdomain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'alias'"); + + $limits[] = array('field' => 'limit_ftp_user', + 'db_table' => 'ftp_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_shell_user', + 'db_table' => 'shell_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_zone', + 'db_table' => 'dns_soa', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_slave_zone', + 'db_table' => 'dns_slave', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_record', + 'db_table' => 'dns_rr', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_database', + 'db_table' => 'web_database', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_cron', + 'db_table' => 'cron', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_client', + 'db_table' => 'client', + 'db_where' => ""); + + + + + //* Loading Template + $app->uses('tpl,tform'); + + $tpl = new tpl; + $tpl->newTemplate("dashlets/templates/limits.htm"); + + $wb = array(); + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng'; + if(is_file($lng_file)) include($lng_file); + $tpl->setVar($wb); + + if($app->auth->is_admin()) { + $user_is_admin = true; + } else { + $user_is_admin = false; + } + $tpl->setVar('is_admin',$user_is_admin); + + if($user_is_admin == false) { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + } + + $rows = array(); + foreach($limits as $limit) { + $field = $limit['field']; + if($user_is_admin) { + $value = $wb['unlimited_txt']; + } else { + $value = $client[$field]; + } + if($value != 0 || $value == $wb['unlimited_txt']) { + $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; + $rows[] = array('field' => $field, + 'field_txt' => $wb[$field.'_txt'], + 'value' => $value_formatted, + 'usage' => $this->_get_limit_usage($limit)); + } + } + $tpl->setLoop('rows',$rows); + + + return $tpl->grab(); + + } + + function _get_limit_usage($limit) { + global $app; + + $sql = "SELECT count(sys_userid) as number FROM ".$limit['db_table']." WHERE "; + if($limit['db_where'] != '') $sql .= $limit['db_where']." AND "; + $sql .= $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql); + return $rec['number']; + + } + +} + + + + + + + + +?> diff --git a/interface/web/dashboard/dashlets/modules.php b/interface/web/dashboard/dashlets/modules.php index b958de69e3..cfb2e129da 100644 --- a/interface/web/dashboard/dashlets/modules.php +++ b/interface/web/dashboard/dashlets/modules.php @@ -1,55 +1,55 @@ -<?php - -class dashlet_modules { - - function show() { - global $app, $conf; - - //* Loading Template - $app->uses('tpl'); - - $tpl = new tpl; - $tpl->newTemplate("dashlets/templates/modules.htm"); - - $wb = array(); - $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_modules.lng'; - if(is_file($lng_file)) include($lng_file); - $tpl->setVar($wb); - - /* - * Show all modules, the user is allowed to use - */ - $modules = explode(',', $_SESSION['s']['user']['modules']); - $mod = array(); - if(is_array($modules)) { - foreach($modules as $mt) { - if(is_file('../' . $mt . '/lib/module.conf.php')) { - if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.'); - include_once('../' . $mt.'/lib/module.conf.php'); - /* We don't want to show the dashboard */ - if ($mt != 'dashboard') { - $module_title = $app->lng($module['title']); - if(strlen($module_title) > 8) $module_title = substr($module_title,0,7).'..'; - $mod[] = array( 'modules_title' => $module_title, - 'modules_startpage' => $module['startpage'], - 'modules_name' => $module['name']); - } - } - } - - $tpl->setloop('modules', $mod); - } - - return $tpl->grab(); - - } -} - - - - - - - - +<?php + +class dashlet_modules { + + function show() { + global $app, $conf; + + //* Loading Template + $app->uses('tpl'); + + $tpl = new tpl; + $tpl->newTemplate("dashlets/templates/modules.htm"); + + $wb = array(); + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_modules.lng'; + if(is_file($lng_file)) include($lng_file); + $tpl->setVar($wb); + + /* + * Show all modules, the user is allowed to use + */ + $modules = explode(',', $_SESSION['s']['user']['modules']); + $mod = array(); + if(is_array($modules)) { + foreach($modules as $mt) { + if(is_file('../' . $mt . '/lib/module.conf.php')) { + if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.'); + include_once('../' . $mt.'/lib/module.conf.php'); + /* We don't want to show the dashboard */ + if ($mt != 'dashboard') { + $module_title = $app->lng($module['title']); + if(strlen($module_title) > 8) $module_title = substr($module_title,0,7).'..'; + $mod[] = array( 'modules_title' => $module_title, + 'modules_startpage' => $module['startpage'], + 'modules_name' => $module['name']); + } + } + } + + $tpl->setloop('modules', $mod); + } + + return $tpl->grab(); + + } +} + + + + + + + + ?> \ No newline at end of file diff --git a/interface/web/dashboard/lib/custom_menu.inc.php b/interface/web/dashboard/lib/custom_menu.inc.php index 0effc49e19..60b95ddc6a 100644 --- a/interface/web/dashboard/lib/custom_menu.inc.php +++ b/interface/web/dashboard/lib/custom_menu.inc.php @@ -1,76 +1,76 @@ -<?php - -/* -Copyright (c) 2010 Till Brehm, projektfarm Gmbh -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. -*/ - -$app->uses('simplepie'); - -$app->tpl->newTemplate('dashboard/templates/custom_menu.htm'); - -$app->uses('getconf'); - $misc_config = $app->getconf->get_global_config('misc'); - -//* We want to show the news only to the admin user -if($misc_config['dashboard_atom_url'] != '') { - - if(!isset($_SESSION['s']['rss_news'])) { - - $app->simplepie->set_feed_url($misc_config['dashboard_atom_url']); - $app->simplepie->enable_cache(false); - $app->simplepie->init(); - $items = $app->simplepie->get_items(); - - $rows = array(); - $n = 1; - - foreach ($items as $item) - { - //* We want to show only the first 10 news records - if($n <= 10) { - $rows[] = array('title' => $item->get_title(), - 'link' => $item->get_link(), - 'content' => $item->get_content(), - 'date' => $item->get_date('Y-m-d') - ); - } - $n++; - } - - $_SESSION['s']['rss_news'] = $rows; - - } else { - $rows = $_SESSION['s']['rss_news']; - } - - $app->tpl->setVar('latest_news_txt',$app->lng('latest_news_txt')); - -} - -$app->tpl->setLoop('news',$rows); - -?> +<?php + +/* +Copyright (c) 2010 Till Brehm, projektfarm Gmbh +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. +*/ + +$app->uses('simplepie'); + +$app->tpl->newTemplate('dashboard/templates/custom_menu.htm'); + +$app->uses('getconf'); + $misc_config = $app->getconf->get_global_config('misc'); + +//* We want to show the news only to the admin user +if($misc_config['dashboard_atom_url'] != '') { + + if(!isset($_SESSION['s']['rss_news'])) { + + $app->simplepie->set_feed_url($misc_config['dashboard_atom_url']); + $app->simplepie->enable_cache(false); + $app->simplepie->init(); + $items = $app->simplepie->get_items(); + + $rows = array(); + $n = 1; + + foreach ($items as $item) + { + //* We want to show only the first 10 news records + if($n <= 10) { + $rows[] = array('title' => $item->get_title(), + 'link' => $item->get_link(), + 'content' => $item->get_content(), + 'date' => $item->get_date('Y-m-d') + ); + } + $n++; + } + + $_SESSION['s']['rss_news'] = $rows; + + } else { + $rows = $_SESSION['s']['rss_news']; + } + + $app->tpl->setVar('latest_news_txt',$app->lng('latest_news_txt')); + +} + +$app->tpl->setLoop('news',$rows); + +?> diff --git a/interface/web/dashboard/templates/custom_menu.htm b/interface/web/dashboard/templates/custom_menu.htm index 3d2a62c730..8fe5bbf14e 100644 --- a/interface/web/dashboard/templates/custom_menu.htm +++ b/interface/web/dashboard/templates/custom_menu.htm @@ -1,8 +1,8 @@ -<ul id="submenu"> - <li class="title"><a>{tmpl_var name='latest_news_txt'}</a></li> - <tmpl_loop name="news"> - <li><a href="{tmpl_var name="link"}" target="_blank" style="margin-top:8px;padding-bottom:5px;"><b>{tmpl_var name="date"}</b><br /> - {tmpl_var name="title"}</a> - </li> - </tmpl_loop> +<ul id="submenu"> + <li class="title"><a>{tmpl_var name='latest_news_txt'}</a></li> + <tmpl_loop name="news"> + <li><a href="{tmpl_var name="link"}" target="_blank" style="margin-top:8px;padding-bottom:5px;"><b>{tmpl_var name="date"}</b><br /> + {tmpl_var name="title"}</a> + </li> + </tmpl_loop> </ul> \ No newline at end of file diff --git a/interface/web/designer/lib/admin.conf.php b/interface/web/designer/lib/admin.conf.php index 8dce5a5734..dc10d56334 100644 --- a/interface/web/designer/lib/admin.conf.php +++ b/interface/web/designer/lib/admin.conf.php @@ -1,4 +1,4 @@ -<?php - - +<?php + + ?> \ No newline at end of file diff --git a/interface/web/designer/lib/lang/cz_module_edit.lng b/interface/web/designer/lib/lang/cz_module_edit.lng index 4e51062a7a..d34a668d7a 100644 --- a/interface/web/designer/lib/lang/cz_module_edit.lng +++ b/interface/web/designer/lib/lang/cz_module_edit.lng @@ -8,15 +8,15 @@ $wb['tab_width_txt'] = 'Å ÃÅ™ka záložky'; $wb['save_txt'] = 'Uložit'; $wb['cancel_txt'] = 'Storno'; $wb['header_txt'] = 'Vlastnosti modulu'; -$wb['description_txt'] = ' -<b>Popis</b> -<br><br> -<b>Název modulu:</b> Název adresáře modulu. Pouze ÄÃsla, znaky a podtržitko jsou povoleny.<br> -<b>Titulek modulu:</b> Bude zobrazen v hornà Äásti hlavnà navigace.<br> -<b>Soubor se Å¡ablonou:</b> Å ablonový soubor modulu. Nynà dostupné: module.tpl.htm a module_tree.tpl.htm.Výchozà je module.tpl.htm.<br> -<b>NaviFrame:</b> Pokud je vybrán module_tree.tpl.htm jako Å¡ablona, zadejte zde cestu ke skriptu pro levý frame.<br> -<b>Výchozà stránka:</b> Tato stránka bude ukázána, když je modul zobrazen.<br> -<b>Å ÃÅ™ka záložek:</b> Å ÃÅ™ka záložek v hlavnà navigaci. Pole je ve výchozÃm stavu prázdné. Můžete zadat absolutnà hodnotu v pixelech (napÅ™. 20) nebo relativnÄ› (napÅ™ 20%).<br> -<b>Rada:</b> VÅ¡echny cesty jsou relativnÄ› k adresáři web web. +$wb['description_txt'] = ' +<b>Popis</b> +<br><br> +<b>Název modulu:</b> Název adresáře modulu. Pouze ÄÃsla, znaky a podtržitko jsou povoleny.<br> +<b>Titulek modulu:</b> Bude zobrazen v hornà Äásti hlavnà navigace.<br> +<b>Soubor se Å¡ablonou:</b> Å ablonový soubor modulu. Nynà dostupné: module.tpl.htm a module_tree.tpl.htm.Výchozà je module.tpl.htm.<br> +<b>NaviFrame:</b> Pokud je vybrán module_tree.tpl.htm jako Å¡ablona, zadejte zde cestu ke skriptu pro levý frame.<br> +<b>Výchozà stránka:</b> Tato stránka bude ukázána, když je modul zobrazen.<br> +<b>Å ÃÅ™ka záložek:</b> Å ÃÅ™ka záložek v hlavnà navigaci. Pole je ve výchozÃm stavu prázdné. Můžete zadat absolutnà hodnotu v pixelech (napÅ™. 20) nebo relativnÄ› (napÅ™ 20%).<br> +<b>Rada:</b> VÅ¡echny cesty jsou relativnÄ› k adresáři web web. '; ?> diff --git a/interface/web/designer/lib/lang/fr_module_edit.lng b/interface/web/designer/lib/lang/fr_module_edit.lng index c2eab9481b..87b8e54281 100644 --- a/interface/web/designer/lib/lang/fr_module_edit.lng +++ b/interface/web/designer/lib/lang/fr_module_edit.lng @@ -8,7 +8,7 @@ $wb['tab_width_txt'] = 'Largeur tableau'; $wb['save_txt'] = 'Sauver'; $wb['cancel_txt'] = 'Annuler'; $wb['header_txt'] = 'Proprits du Module'; -$wb['description_txt'] = ' -<b>Description</b?><br><br?><b>Nom du Module:</b> Nom du rpertoire du module. Seulement nombres, lettres et underscore sont autoriss.<br?><b>Titre du Module:</b> Seras affich dans le menu de navigation (suprieur).<br?><b>Fichier Template:</b> Fichier Template du module. Disponible actuellement: module.tpl.htm et module_tree.tpl.htm. Par dfaut module.tpl.htm.<br?><b>Frame de Navigation:</b> Si module_tree.tpl.htm est choisi comme fichier template, entrer ici le chemin vers le script de la frame de gauche.<br?><b>Page par Dfaut:</b> Cette page seras affiche quand le module seras ouvert.<br?><b>Largeur tableau:</b> Largeur des tableau dans la frame principale. Le champ est vide par defaut. Vous pouvez entrer une valeur absolue en pixel (e.g 20) ou relative (e.g 20%).<br?><b>Note:</b> Tous les paths sont relatifs par rapport au dossier web. +$wb['description_txt'] = ' +<b>Description</b?><br><br?><b>Nom du Module:</b> Nom du rpertoire du module. Seulement nombres, lettres et underscore sont autoriss.<br?><b>Titre du Module:</b> Seras affich dans le menu de navigation (suprieur).<br?><b>Fichier Template:</b> Fichier Template du module. Disponible actuellement: module.tpl.htm et module_tree.tpl.htm. Par dfaut module.tpl.htm.<br?><b>Frame de Navigation:</b> Si module_tree.tpl.htm est choisi comme fichier template, entrer ici le chemin vers le script de la frame de gauche.<br?><b>Page par Dfaut:</b> Cette page seras affiche quand le module seras ouvert.<br?><b>Largeur tableau:</b> Largeur des tableau dans la frame principale. Le champ est vide par defaut. Vous pouvez entrer une valeur absolue en pixel (e.g 20) ou relative (e.g 20%).<br?><b>Note:</b> Tous les paths sont relatifs par rapport au dossier web. '; ?> diff --git a/interface/web/designer/lib/lang/id_module_edit.lng b/interface/web/designer/lib/lang/id_module_edit.lng index 7bdac2db95..31b0692379 100644 --- a/interface/web/designer/lib/lang/id_module_edit.lng +++ b/interface/web/designer/lib/lang/id_module_edit.lng @@ -8,15 +8,15 @@ $wb['tab_width_txt'] = 'Lebar Tab'; $wb['save_txt'] = 'Simpan'; $wb['cancel_txt'] = 'Batal'; $wb['header_txt'] = 'Properti Modul'; -$wb['description_txt'] = ' -<b>Keterangan</b> -<br><br> -<b>Nama Modul:</b> Nama direktori modul. Hanya angka, karakter dan garis bawah yang diizinkan.<br> -<b>Judul Modul:</b> Akan terlihat di navigasi utama (bagian atas).<br> -<b>Berkas Template:</b> Berkas Template modul. Yang tersedia saat ini: module.tpl.htm dan module_tree.tpl.htm. Defaultnya adalah module.tpl.htm.<br> -<b>Frame Navigasi:</b> Jika memilih module_tree.tpl.htm sebagai berkas template, masukkan path ke berkas skrip untuk frame sebelah kiri.<br> -<b>Halaman Default:</b> Halaman ini akan muncul ketika modul dibuka.<br> -<b>Lebar Tab:</b> Lebar tab di navigasi utama. Kolom ini defaultnya kosong. Anda dapat memasukkan nilai pixel absolut (mis. 20) atau relatif (mis. 20%).<br> -<b>Petunjuk:</b> Semua path adalah relatif terhadap direktori web. +$wb['description_txt'] = ' +<b>Keterangan</b> +<br><br> +<b>Nama Modul:</b> Nama direktori modul. Hanya angka, karakter dan garis bawah yang diizinkan.<br> +<b>Judul Modul:</b> Akan terlihat di navigasi utama (bagian atas).<br> +<b>Berkas Template:</b> Berkas Template modul. Yang tersedia saat ini: module.tpl.htm dan module_tree.tpl.htm. Defaultnya adalah module.tpl.htm.<br> +<b>Frame Navigasi:</b> Jika memilih module_tree.tpl.htm sebagai berkas template, masukkan path ke berkas skrip untuk frame sebelah kiri.<br> +<b>Halaman Default:</b> Halaman ini akan muncul ketika modul dibuka.<br> +<b>Lebar Tab:</b> Lebar tab di navigasi utama. Kolom ini defaultnya kosong. Anda dapat memasukkan nilai pixel absolut (mis. 20) atau relatif (mis. 20%).<br> +<b>Petunjuk:</b> Semua path adalah relatif terhadap direktori web. '; ?> diff --git a/interface/web/designer/lib/lang/nl_module_edit.lng b/interface/web/designer/lib/lang/nl_module_edit.lng index aca2b612db..289ac62fe3 100644 --- a/interface/web/designer/lib/lang/nl_module_edit.lng +++ b/interface/web/designer/lib/lang/nl_module_edit.lng @@ -8,15 +8,15 @@ $wb['tab_width_txt'] = 'Tab breedte'; $wb['save_txt'] = 'Opslaan'; $wb['cancel_txt'] = 'Cancel'; $wb['header_txt'] = 'Module eigenschappen'; -$wb['description_txt'] = ' -<b>Description</b> -<br><br> -<b>Modulename:</b> Naam van de module directory. Alleen numerieke waarden, karakters en underscore zijn toegestaan.<br> -<b>Moduletitle:</b> Worden weergegeven in de (bovenste) hoofd navigatiebalk.<br> -<b>Template file:</b> Template bestand van de module. Momenteel beschikbaar: module.tpl.htm and module_tree.tpl.htm. Standaard is module.tpl.htm.<br> -<b>NaviFrame:</b> Als module_tree.tpl.htm is geselecteerd als template bestand, geef hier dan het pad op naar het script bestand voor het linker frame.<br> -<b>Default page:</b> Deze pagina wordt weergegeven wanneer de module is geopened.<br> -<b>Tab width:</b> Breedte van de tabs in de hoofdnavigatiebalk. Dit veld is standaard leeg. U kunt hier absulute pixel waarden invoeren (bijv. 20) of relatief (bijv. 20%).<br> -<b>Hint:</b> Alle paden zijn relatief tot de directory web. +$wb['description_txt'] = ' +<b>Description</b> +<br><br> +<b>Modulename:</b> Naam van de module directory. Alleen numerieke waarden, karakters en underscore zijn toegestaan.<br> +<b>Moduletitle:</b> Worden weergegeven in de (bovenste) hoofd navigatiebalk.<br> +<b>Template file:</b> Template bestand van de module. Momenteel beschikbaar: module.tpl.htm and module_tree.tpl.htm. Standaard is module.tpl.htm.<br> +<b>NaviFrame:</b> Als module_tree.tpl.htm is geselecteerd als template bestand, geef hier dan het pad op naar het script bestand voor het linker frame.<br> +<b>Default page:</b> Deze pagina wordt weergegeven wanneer de module is geopened.<br> +<b>Tab width:</b> Breedte van de tabs in de hoofdnavigatiebalk. Dit veld is standaard leeg. U kunt hier absulute pixel waarden invoeren (bijv. 20) of relatief (bijv. 20%).<br> +<b>Hint:</b> Alle paden zijn relatief tot de directory web. '; ?> diff --git a/interface/web/designer/lib/lang/pl_module_edit.lng b/interface/web/designer/lib/lang/pl_module_edit.lng index 691e55052f..b87d04b182 100644 --- a/interface/web/designer/lib/lang/pl_module_edit.lng +++ b/interface/web/designer/lib/lang/pl_module_edit.lng @@ -8,15 +8,15 @@ $wb['tab_width_txt'] = 'Szerokość zakÅ‚adki'; $wb['save_txt'] = 'Zapisz'; $wb['cancel_txt'] = 'Anuluj'; $wb['header_txt'] = 'Parametry moduÅ‚u'; -$wb['description_txt'] = ' -<b>Opis</b> -<br><br> -<b>Nazwa moduÅ‚u:</b> Nazwa katalogu z moduÅ‚em. Tylko liczby, litery (bez polskich) i podkreÅ›lenie sÄ… dozwolone.<br> -<b>TytuÅ‚ moduÅ‚u:</b> BÄ™dzie wyÅ›wietlaby w głównym menu nawigacyjnym.<br> -<b>Plik szablonu:</b> Plik szablonu moduÅ‚u. Aktualnie dostÄ™pne: module.tpl.htm oraz module_tree.tpl.htm. DomyÅ›lnie jest module.tpl.htm.<br> -<b>Ramka nawigacyjna:</b> JeÅ›li module_tree.tpl.htm wybrano jako plik szablonu, wpisz tutaj Å›cieżkÄ™ do pliku ze skryptem dla lewej ramki.<br> -<b>Strona domyÅ›lna:</b> Ta strona bÄ™dzie otwierana na poczÄ…tku podczas otwarcia moduÅ‚u.<br> -<b>Szerokość zakÅ‚adki:</b> Szerokość zakÅ‚adek w gÅ‚ownym menu nawigacyjnym. To pole jest domyÅ›lnie puste. Możesz podać wartość w pikselach (np.: 20) lub procentach (np.: 20%).<br> -<b>Podpowiedź:</b> Wszystkie Å›cieżki sÄ… wzglÄ™dne wedÅ‚ug strony www.. +$wb['description_txt'] = ' +<b>Opis</b> +<br><br> +<b>Nazwa moduÅ‚u:</b> Nazwa katalogu z moduÅ‚em. Tylko liczby, litery (bez polskich) i podkreÅ›lenie sÄ… dozwolone.<br> +<b>TytuÅ‚ moduÅ‚u:</b> BÄ™dzie wyÅ›wietlaby w głównym menu nawigacyjnym.<br> +<b>Plik szablonu:</b> Plik szablonu moduÅ‚u. Aktualnie dostÄ™pne: module.tpl.htm oraz module_tree.tpl.htm. DomyÅ›lnie jest module.tpl.htm.<br> +<b>Ramka nawigacyjna:</b> JeÅ›li module_tree.tpl.htm wybrano jako plik szablonu, wpisz tutaj Å›cieżkÄ™ do pliku ze skryptem dla lewej ramki.<br> +<b>Strona domyÅ›lna:</b> Ta strona bÄ™dzie otwierana na poczÄ…tku podczas otwarcia moduÅ‚u.<br> +<b>Szerokość zakÅ‚adki:</b> Szerokość zakÅ‚adek w gÅ‚ownym menu nawigacyjnym. To pole jest domyÅ›lnie puste. Możesz podać wartość w pikselach (np.: 20) lub procentach (np.: 20%).<br> +<b>Podpowiedź:</b> Wszystkie Å›cieżki sÄ… wzglÄ™dne wedÅ‚ug strony www.. '; ?> diff --git a/interface/web/designer/templates/form_edit.htm b/interface/web/designer/templates/form_edit.htm index 4d1c991ab1..38a28c4aa3 100644 --- a/interface/web/designer/templates/form_edit.htm +++ b/interface/web/designer/templates/form_edit.htm @@ -1,79 +1,79 @@ -<form method="POST" action="form_edit.php"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<table width="500" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11"><input name="form[name]" type="text" class="text" value="{tmpl_var name='name'}" size="20" maxlength="50" {tmpl_var name='readonly'}></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11"><input name="form[title]" type="text" class="text" value="{tmpl_var name='title'}" size="20" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11"><input name="form[description]" type="text" class="text" value="{tmpl_var name='description'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="action_txt">:</td> - <td width="366" class="frmText11"><input name="form[action]" type="text" class="text" value="{tmpl_var name='action'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table]" type="text" class="text" value="{tmpl_var name='db_table'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_table_idx_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_table_idx]" type="text" class="text" value="{tmpl_var name='db_table_idx'}" size="10" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="db_history_txt">:</td> - <td width="366" class="frmText11"><input name="form[db_history]" type="text" class="text" value="{tmpl_var name='db_history'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="tab_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[tab_default]" type="text" class="text" value="{tmpl_var name='tab_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="list_default_txt">:</td> - <td width="366" class="frmText11"><input name="form[list_default]" type="text" class="text" value="{tmpl_var name='list_default'}" size="30" maxlength="255"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth]" type="text" class="text" value="{tmpl_var name='auth'}" size="3" maxlength="3"> yes / no</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_userid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][userid]" type="text" class="text" value="{tmpl_var name='auth_preset_userid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_groupid_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][groupid]" type="text" class="text" value="{tmpl_var name='auth_preset_groupid'}" size="4" maxlength="4"></td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_user_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_user]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_user'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_group_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_group]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_group'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_other_txt">:</td> - <td width="366" class="frmText11"><input name="form[auth_preset][perm_other]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_other'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td> </td> - <td><input name="Speichern" type="submit" class="button" value="{tmpl_var name='save_txt'}"> - <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="self.location.href='form_list.php';"> - </td> - </tr> -</table> -<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> -<input type="hidden" name="form_name" value="{tmpl_var name='form_name'}"> +<form method="POST" action="form_edit.php"> +<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> +<table width="500" border="0" cellspacing="0" cellpadding="2"> + <tr> + <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> + <td width="366" class="frmText11"><input name="form[name]" type="text" class="text" value="{tmpl_var name='name'}" size="20" maxlength="50" {tmpl_var name='readonly'}></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> + <td width="366" class="frmText11"><input name="form[title]" type="text" class="text" value="{tmpl_var name='title'}" size="20" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> + <td width="366" class="frmText11"><input name="form[description]" type="text" class="text" value="{tmpl_var name='description'}" size="30" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="action_txt">:</td> + <td width="366" class="frmText11"><input name="form[action]" type="text" class="text" value="{tmpl_var name='action'}" size="30" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="db_table_txt">:</td> + <td width="366" class="frmText11"><input name="form[db_table]" type="text" class="text" value="{tmpl_var name='db_table'}" size="10" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="db_table_idx_txt">:</td> + <td width="366" class="frmText11"><input name="form[db_table_idx]" type="text" class="text" value="{tmpl_var name='db_table_idx'}" size="10" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="db_history_txt">:</td> + <td width="366" class="frmText11"><input name="form[db_history]" type="text" class="text" value="{tmpl_var name='db_history'}" size="3" maxlength="3"> yes / no</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="tab_default_txt">:</td> + <td width="366" class="frmText11"><input name="form[tab_default]" type="text" class="text" value="{tmpl_var name='tab_default'}" size="30" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="list_default_txt">:</td> + <td width="366" class="frmText11"><input name="form[list_default]" type="text" class="text" value="{tmpl_var name='list_default'}" size="30" maxlength="255"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth]" type="text" class="text" value="{tmpl_var name='auth'}" size="3" maxlength="3"> yes / no</td> + </tr> + <tr> + <td colspan="2" class="frmText11"> </td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_preset_userid_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth_preset][userid]" type="text" class="text" value="{tmpl_var name='auth_preset_userid'}" size="4" maxlength="4"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_preset_groupid_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth_preset][groupid]" type="text" class="text" value="{tmpl_var name='auth_preset_groupid'}" size="4" maxlength="4"></td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_user_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth_preset][perm_user]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_user'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_group_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth_preset][perm_group]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_group'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="auth_preset_perm_other_txt">:</td> + <td width="366" class="frmText11"><input name="form[auth_preset][perm_other]" type="text" class="text" value="{tmpl_var name='auth_preset_perm_other'}" size="4" maxlength="4"> r = read, i = insert, u = update, d = delete</td> + </tr> + <tr> + <td colspan="2" class="frmText11"> </td> + </tr> + <tr> + <td> </td> + <td><input name="Speichern" type="submit" class="button" value="{tmpl_var name='save_txt'}"> + <input name="Abbrechen" type="button" class="button" value="{tmpl_var name='cancel_txt'}" onClick="self.location.href='form_list.php';"> + </td> + </tr> +</table> +<input type="hidden" name="module_name" value="{tmpl_var name='module_name'}"> +<input type="hidden" name="form_name" value="{tmpl_var name='form_name'}"> </form> \ No newline at end of file diff --git a/interface/web/designer/templates/form_show.htm b/interface/web/designer/templates/form_show.htm index b10407018c..2a3eff4ea5 100644 --- a/interface/web/designer/templates/form_show.htm +++ b/interface/web/designer/templates/form_show.htm @@ -1,61 +1,61 @@ -<script language="JavaScript"> -<!-- -function del_module(link) { - if(window.confirm("{tmpl_var name='module_del_txt'}")) { - location.href = link; - } -} -function del_menu(link) { - if(window.confirm("{tmpl_var name='menu_del_txt'}")) { - location.href = link; - } -} -function del_menuitem(link) { - if(window.confirm("{tmpl_var name='item_del_txt'}")) { - location.href = link; - } -} - -//--> -</script> -<form name="myform" action="module_show.php" method="POST"> -<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> -<fieldset style="width:320px;"><legend class="frmText11"><b>{tmpl_var name='form_txt'}</b></legend> -<table border="0" cellspacing="0" cellpadding="2"> - <tr> - <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='title'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='form_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="module_txt">:</td> - <td width="366" class="frmText11">{tmpl_var name='module_name'}</td> - </tr> - <tr> - <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> - <td width="366" class="frmText11" valign="top">{tmpl_var name='description'}</td> - </tr> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tr> - <td colspan="2" class="frmText11"> - <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onClick="location.href='form_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /> - <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onClick="del_module('form_del.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}');" class="button" /> - <input type="button" name="ed3" value="{tmpl_var name='new_tab_txt'}" onClick="location.href='form_tab_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /></td> - </tr> -</table> -</fieldset> -<table width="350" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> - <tmpl_var name="nav"> - <tr> - <td colspan="2" class="frmText11"> </td> - </tr> -</table> +<script language="JavaScript"> +<!-- +function del_module(link) { + if(window.confirm("{tmpl_var name='module_del_txt'}")) { + location.href = link; + } +} +function del_menu(link) { + if(window.confirm("{tmpl_var name='menu_del_txt'}")) { + location.href = link; + } +} +function del_menuitem(link) { + if(window.confirm("{tmpl_var name='item_del_txt'}")) { + location.href = link; + } +} + +//--> +</script> +<form name="myform" action="module_show.php" method="POST"> +<div class="frmTextHead"><tmpl_var name="header_txt"></div><br /> +<fieldset style="width:320px;"><legend class="frmText11"><b>{tmpl_var name='form_txt'}</b></legend> +<table border="0" cellspacing="0" cellpadding="2"> + <tr> + <td width="126" class="frmText11"><tmpl_var name="title_txt">:</td> + <td width="366" class="frmText11">{tmpl_var name='title'}</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="name_txt">:</td> + <td width="366" class="frmText11">{tmpl_var name='form_name'}</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="module_txt">:</td> + <td width="366" class="frmText11">{tmpl_var name='module_name'}</td> + </tr> + <tr> + <td width="126" class="frmText11"><tmpl_var name="description_txt">:</td> + <td width="366" class="frmText11" valign="top">{tmpl_var name='description'}</td> + </tr> + <tr> + <td colspan="2" class="frmText11"> </td> + </tr> + <tr> + <td colspan="2" class="frmText11"> + <input type="button" name="ed1" value="{tmpl_var name='properties_txt'}" onClick="location.href='form_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /> + <input type="button" name="ed2" value="{tmpl_var name='delete_txt'}" onClick="del_module('form_del.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}');" class="button" /> + <input type="button" name="ed3" value="{tmpl_var name='new_tab_txt'}" onClick="location.href='form_tab_edit.php?form_name={tmpl_var name='form_name'}&module_name={tmpl_var name='module_name'}'" class="button" /></td> + </tr> +</table> +</fieldset> +<table width="350" border="0" cellspacing="0" cellpadding="2"> + <tr> + <td colspan="2" class="frmText11"> </td> + </tr> + <tmpl_var name="nav"> + <tr> + <td colspan="2" class="frmText11"> </td> + </tr> +</table> </form> \ No newline at end of file diff --git a/interface/web/designer/templates/paging.tpl.htm b/interface/web/designer/templates/paging.tpl.htm index cb82704047..eb3bfa6c73 100644 --- a/interface/web/designer/templates/paging.tpl.htm +++ b/interface/web/designer/templates/paging.tpl.htm @@ -1,9 +1,9 @@ -[ <a href='{tmpl_var name="list_file"}?page=0'>|<< </a>] -<tmpl_if name="show_page_back"> - [<< <a href='{tmpl_var name="list_file"}?page={tmpl_var name="last_page"}'>Zurück</a>] -</tmpl_if> - Seite {tmpl_var name="next_page"} von {tmpl_var name="max_pages"} -<tmpl_if name="show_page_next"> - [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="next_page"}'>Weiter >></a>] -</tmpl_if> +[ <a href='{tmpl_var name="list_file"}?page=0'>|<< </a>] +<tmpl_if name="show_page_back"> + [<< <a href='{tmpl_var name="list_file"}?page={tmpl_var name="last_page"}'>Zurück</a>] +</tmpl_if> + Seite {tmpl_var name="next_page"} von {tmpl_var name="max_pages"} +<tmpl_if name="show_page_next"> + [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="next_page"}'>Weiter >></a>] +</tmpl_if> [<a href='{tmpl_var name="list_file"}?page={tmpl_var name="pages"}'> >>| </a>] \ No newline at end of file diff --git a/interface/web/dns/dns_a_list.php b/interface/web/dns/dns_a_list.php index 681e158395..c01aec6943 100644 --- a/interface/web/dns/dns_a_list.php +++ b/interface/web/dns/dns_a_list.php @@ -1,24 +1,24 @@ -<?php -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_a.list.php"; - -/****************************************** -* End Form configuration -******************************************/ - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "type = 'A'"; - -$app->listform_actions->onLoad(); - - +<?php +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_a.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('listform_actions'); +$app->listform_actions->SQLExtWhere = "type = 'A'"; + +$app->listform_actions->onLoad(); + + ?> \ No newline at end of file diff --git a/interface/web/dns/dns_rr_del.php b/interface/web/dns/dns_rr_del.php index 26d369ec6c..d88e2d9491 100644 --- a/interface/web/dns/dns_rr_del.php +++ b/interface/web/dns/dns_rr_del.php @@ -1,67 +1,67 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_a.list.php"; -$tform_def_file = "form/dns_a.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onAfterDelete() { - global $app; $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($this->dataRecord["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_a.list.php"; +$tform_def_file = "form/dns_a.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('tpl,tform,tform_actions,validate_dns'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onAfterDelete() { + global $app; $conf; + + //* Update the serial number of the SOA record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); + $soa_id = intval($this->dataRecord["zone"]); + $serial = $app->validate_dns->increase_serial($soa["serial"]); + $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); + } +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/dns/dns_slave_del.php b/interface/web/dns/dns_slave_del.php index 845d776b17..470bb7c0a7 100644 --- a/interface/web/dns/dns_slave_del.php +++ b/interface/web/dns/dns_slave_del.php @@ -1,69 +1,69 @@ -<?php - -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_slave.list.php"; -$tform_def_file = "form/dns_slave.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT id FROM dns_slave WHERE zone = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('dns_slave','id',$rec['id']); - } - } -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_slave.list.php"; +$tform_def_file = "form/dns_slave.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); + + // Delete all records that belog to this zone. + $records = $app->db->queryAllRecords("SELECT id FROM dns_slave WHERE zone = '".intval($this->id)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('dns_slave','id',$rec['id']); + } + } +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/dns/dns_soa_del.php b/interface/web/dns/dns_soa_del.php index 38e35bd67c..0a1944b5f2 100644 --- a/interface/web/dns/dns_soa_del.php +++ b/interface/web/dns/dns_soa_del.php @@ -1,69 +1,69 @@ -<?php - -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_soa.list.php"; -$tform_def_file = "form/dns_soa.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT id FROM dns_rr WHERE zone = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('dns_rr','id',$rec['id']); - } - } -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_soa.list.php"; +$tform_def_file = "form/dns_soa.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); + + // Delete all records that belog to this zone. + $records = $app->db->queryAllRecords("SELECT id FROM dns_rr WHERE zone = '".intval($this->id)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('dns_rr','id',$rec['id']); + } + } +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/dns/dns_template_del.php b/interface/web/dns/dns_template_del.php index 5aa1ff748f..bfb343cbf8 100644 --- a/interface/web/dns/dns_template_del.php +++ b/interface/web/dns/dns_template_del.php @@ -1,58 +1,58 @@ -<?php - -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_template.list.php"; -$tform_def_file = "form/dns_template.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_template.list.php"; +$tform_def_file = "form/dns_template.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/dns/dns_template_list.php b/interface/web/dns/dns_template_list.php index 4cde9a0133..20efa8d43d 100644 --- a/interface/web/dns/dns_template_list.php +++ b/interface/web/dns/dns_template_list.php @@ -1,24 +1,24 @@ -<?php -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/dns_template.list.php"; - -/****************************************** -* End Form configuration -******************************************/ - -//* Check permissions for module -$app->auth->check_module_permissions('dns'); - -$app->uses('listform_actions'); -// $app->listform_actions->SQLExtWhere = "access = 'REJECT'"; - -$app->listform_actions->onLoad(); - - +<?php +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_template.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('listform_actions'); +// $app->listform_actions->SQLExtWhere = "access = 'REJECT'"; + +$app->listform_actions->onLoad(); + + ?> \ No newline at end of file diff --git a/interface/web/dns/form/dns_template.tform.php b/interface/web/dns/form/dns_template.tform.php index a648fd43c7..1f020da04c 100644 --- a/interface/web/dns/form/dns_template.tform.php +++ b/interface/web/dns/form/dns_template.tform.php @@ -1,101 +1,101 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "DNS Wizard template"; -$form["description"] = ""; -$form["name"] = "dns_template"; -$form["action"] = "dns_template_edit.php"; -$form["db_table"] = "dns_template"; -$form["db_table_idx"] = "template_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "template"; -$form["list_default"] = "dns_template_list.php"; -$form["auth"] = 'yes'; // yes / no - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['template'] = array ( - 'title' => "DNS Template", - 'width' => 100, - 'template' => "templates/dns_template_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'name_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fields' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('DOMAIN' => 'Domain','IP' => 'IP Address','NS1' => 'NS 1','NS2' => 'NS 2','EMAIL' => 'Email') - ), - 'template' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '40', - 'rows' => '15' - ), - 'visible' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "DNS Wizard template"; +$form["description"] = ""; +$form["name"] = "dns_template"; +$form["action"] = "dns_template_edit.php"; +$form["db_table"] = "dns_template"; +$form["db_table_idx"] = "template_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "template"; +$form["list_default"] = "dns_template_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['template'] = array ( + 'title' => "DNS Template", + 'width' => 100, + 'template' => "templates/dns_template_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'name_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fields' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'default' => '', + 'separator' => ',', + 'value' => array('DOMAIN' => 'Domain','IP' => 'IP Address','NS1' => 'NS 1','NS2' => 'NS 2','EMAIL' => 'Email') + ), + 'template' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'cols' => '40', + 'rows' => '15' + ), + 'visible' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N',1 => 'Y') + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + + ?> \ No newline at end of file diff --git a/interface/web/dns/lib/admin.conf.php b/interface/web/dns/lib/admin.conf.php index a45d440345..67c94a5742 100644 --- a/interface/web/dns/lib/admin.conf.php +++ b/interface/web/dns/lib/admin.conf.php @@ -1,2 +1,2 @@ -<?php +<?php ?> \ No newline at end of file diff --git a/interface/web/dns/list/dns_template.list.php b/interface/web/dns/list/dns_template.list.php index 11a1919b11..3101eb259b 100644 --- a/interface/web/dns/list/dns_template.list.php +++ b/interface/web/dns/list/dns_template.list.php @@ -1,80 +1,80 @@ -<?php - -/* - Datatypes: - - INTEGER - - DOUBLE - - CURRENCY - - VARCHAR - - TEXT - - DATE -*/ - - - -// Name of the list -$liste["name"] = "dns_template"; - -// Database table -$liste["table"] = "dns_template"; - -// Index index field of the database table -$liste["table_idx"] = "template_id"; - -// Search Field Prefix -$liste["search_prefix"] = "search_"; - -// Records per page -$liste["records_per_page"] = 15; - -// Script File of the list -$liste["file"] = "dns_template_list.php"; - -// Script file of the edit form -$liste["edit_file"] = "dns_template_edit.php"; - -// Script File of the delete script -$liste["delete_file"] = "dns_template_del.php"; - -// Paging Template -$liste["paging_tpl"] = "templates/paging.tpl.htm"; - -// Enable auth -$liste["auth"] = "yes"; - - -/***************************************************** -* Suchfelder -*****************************************************/ - - -$liste["item"][] = array( 'field' => "visible", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'N' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>")); - - -$liste["item"][] = array( 'field' => "name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - - - - - - - - - - +<?php + +/* + Datatypes: + - INTEGER + - DOUBLE + - CURRENCY + - VARCHAR + - TEXT + - DATE +*/ + + + +// Name of the list +$liste["name"] = "dns_template"; + +// Database table +$liste["table"] = "dns_template"; + +// Index index field of the database table +$liste["table_idx"] = "template_id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = 15; + +// Script File of the list +$liste["file"] = "dns_template_list.php"; + +// Script file of the edit form +$liste["edit_file"] = "dns_template_edit.php"; + +// Script File of the delete script +$liste["delete_file"] = "dns_template_del.php"; + +// Paging Template +$liste["paging_tpl"] = "templates/paging.tpl.htm"; + +// Enable auth +$liste["auth"] = "yes"; + + +/***************************************************** +* Suchfelder +*****************************************************/ + + +$liste["item"][] = array( 'field' => "visible", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'N' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>")); + + +$liste["item"][] = array( 'field' => "name", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + + + + + + + + + + ?> \ No newline at end of file diff --git a/interface/web/dns/templates/dns_records_edit.htm b/interface/web/dns/templates/dns_records_edit.htm index 1feb3f970c..1ae070c63c 100644 --- a/interface/web/dns/templates/dns_records_edit.htm +++ b/interface/web/dns/templates/dns_records_edit.htm @@ -1,12 +1,12 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_soa"> - - {tmpl_var name='dns_records'} - - <div class="pnl_formsarea"> - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_dns_soa"> + + {tmpl_var name='dns_records'} + + <div class="pnl_formsarea"> + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + </div> + +</div> diff --git a/interface/web/dns/templates/dns_template_edit.htm b/interface/web/dns/templates/dns_template_edit.htm index 34cf3b1e09..48b99747c2 100644 --- a/interface/web/dns/templates/dns_template_edit.htm +++ b/interface/web/dns/templates/dns_template_edit.htm @@ -1,38 +1,38 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_dns_template"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="name">{tmpl_var name='name_txt'}</label> - <input name="name" id="name" value="{tmpl_var name='name'}" size="40" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='fields_txt'}</p> - <div class="multiField"> - {tmpl_var name='fields'} - </div> - </div> - <div class="ctrlHolder"> - <label for="template">{tmpl_var name='template_txt'}</label> - <textarea name="template" id="template" rows='15' cols='40'>{tmpl_var name='template'}</textarea> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='visible_txt'}</p> - <div class="multiField"> - {tmpl_var name='visible'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_dns_template"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="name">{tmpl_var name='name_txt'}</label> + <input name="name" id="name" value="{tmpl_var name='name'}" size="40" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='fields_txt'}</p> + <div class="multiField"> + {tmpl_var name='fields'} + </div> + </div> + <div class="ctrlHolder"> + <label for="template">{tmpl_var name='template_txt'}</label> + <textarea name="template" id="template" rows='15' cols='40'>{tmpl_var name='template'}</textarea> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='visible_txt'}</p> + <div class="multiField"> + {tmpl_var name='visible'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_template_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_template_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/domain/lib/admin.conf.php b/interface/web/domain/lib/admin.conf.php index 5e64662218..584f28bad6 100644 --- a/interface/web/domain/lib/admin.conf.php +++ b/interface/web/domain/lib/admin.conf.php @@ -1,29 +1,29 @@ -<?php -/* -Copyright (c) 2010 Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com -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. -*/ +<?php +/* +Copyright (c) 2010 Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com +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. +*/ ?> \ No newline at end of file diff --git a/interface/web/domain/lib/lang/en_domain_list.lng b/interface/web/domain/lib/lang/en_domain_list.lng index 161fd504e1..0898a00d02 100644 --- a/interface/web/domain/lib/lang/en_domain_list.lng +++ b/interface/web/domain/lib/lang/en_domain_list.lng @@ -1,5 +1,5 @@ -<?php -$wb['list_head_txt'] = 'Domains'; -$wb['add_new_record_txt'] = 'Add new Domain'; -$wb['domain_txt'] = 'Domain'; +<?php +$wb['list_head_txt'] = 'Domains'; +$wb['add_new_record_txt'] = 'Add new Domain'; +$wb['domain_txt'] = 'Domain'; ?> \ No newline at end of file diff --git a/interface/web/help/templates/support_message_edit.htm b/interface/web/help/templates/support_message_edit.htm index 305a47a2b9..4c8fbddc49 100644 --- a/interface/web/help/templates/support_message_edit.htm +++ b/interface/web/help/templates/support_message_edit.htm @@ -1,33 +1,33 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Message</legend> - <div class="ctrlHolder"> - <label for="recipient_id">{tmpl_var name='recipient_id_txt'}</label> - <select name="recipient_id" id="recipient_id" class="selectInput"> - {tmpl_var name='recipient_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="subject">{tmpl_var name='subject_txt'}</label> - <input name="subject" id="subject" value="{tmpl_var name='subject'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="message">{tmpl_var name='message_txt'}</label> - <textarea name="message" id="message" rows='10' cols='30'>{tmpl_var name='message'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="tstamp" value="{tmpl_var name='tstamp'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/support_message_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/support_message_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_support_message"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Message</legend> + <div class="ctrlHolder"> + <label for="recipient_id">{tmpl_var name='recipient_id_txt'}</label> + <select name="recipient_id" id="recipient_id" class="selectInput"> + {tmpl_var name='recipient_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="subject">{tmpl_var name='subject_txt'}</label> + <input name="subject" id="subject" value="{tmpl_var name='subject'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="message">{tmpl_var name='message_txt'}</label> + <textarea name="message" id="message" rows='10' cols='30'>{tmpl_var name='message'}</textarea> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="tstamp" value="{tmpl_var name='tstamp'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/support_message_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/support_message_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm index f406e9cbf5..9ca312c107 100644 --- a/interface/web/help/templates/support_message_view.htm +++ b/interface/web/help/templates/support_message_view.htm @@ -1,24 +1,24 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_support_message"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Message</legend> - <div class="ctrlHolder"> - <label for="subject">{tmpl_var name='subject_txt'}</label> - <p>{tmpl_var name='subject'}</p> - </div> - <div class="ctrlHolder"> - <label for="message">{tmpl_var name='message_txt'}</label> - <p>{tmpl_var name='message'}</p> - </div> - </fieldset> -<div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='reply_txt'}" onClick="loadContent('help/support_message_edit.php?reply={tmpl_var name='id'}');"><span>{tmpl_var name='reply_txt'}</span></button> - </div> - </div> - - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_support_message"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Message</legend> + <div class="ctrlHolder"> + <label for="subject">{tmpl_var name='subject_txt'}</label> + <p>{tmpl_var name='subject'}</p> + </div> + <div class="ctrlHolder"> + <label for="message">{tmpl_var name='message_txt'}</label> + <p>{tmpl_var name='message'}</p> + </div> + </fieldset> +<div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='reply_txt'}" onClick="loadContent('help/support_message_edit.php?reply={tmpl_var name='id'}');"><span>{tmpl_var name='reply_txt'}</span></button> + </div> + </div> + + </div> + +</div> diff --git a/interface/web/index.php b/interface/web/index.php index 9c312824e6..b8b32ec78a 100644 --- a/interface/web/index.php +++ b/interface/web/index.php @@ -1,41 +1,41 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -error_reporting(E_ALL|E_STRICT); - -require_once('../lib/config.inc.php'); -require_once('../lib/app.inc.php'); - -$app->uses('tpl'); -$app->tpl->newTemplate('main.tpl.htm'); - -$app->tpl_defaults(); -$app->tpl->pparse(); +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +error_reporting(E_ALL|E_STRICT); + +require_once('../lib/config.inc.php'); +require_once('../lib/app.inc.php'); + +$app->uses('tpl'); +$app->tpl->newTemplate('main.tpl.htm'); + +$app->tpl_defaults(); +$app->tpl->pparse(); ?> \ No newline at end of file diff --git a/interface/web/js/yui/datatable/assets/datatable.css b/interface/web/js/yui/datatable/assets/datatable.css index bdf4a7ae24..4885ff7386 100644 --- a/interface/web/js/yui/datatable/assets/datatable.css +++ b/interface/web/js/yui/datatable/assets/datatable.css @@ -4,79 +4,79 @@ Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt version: 2.2.0 */ -/*debug css -.example span, .example .yui-dt-columntext {border:1px solid red;}*/ - -/*foundational css*/ -td { - overflow:hidden; -} - -.yui-dt-headcontainer { - position:relative; - -} - -.yui-dt-headtext { - position:relative; - border-right:10px; -} - -.yui-dt-headresizer { - position:absolute; - margin-right:-6px; - right:0; - bottom:0; - width:6px; - height:100%; - cursor:w-resize; - cursor:col-resize; -} - -.yui-dt-firstlink,.yui-dt-prevlink,.yui-dt-nextlink,.yui-dt-lastlink,.yui-dt-pagelink { - cursor:hand; - cursor:pointer; - text-decoration:underline; -} - -.yui-dt-scrollable { - width:20em; - margin-bottom:3em; -} - - -.yui-dt-scrollable thead { - background:#696969; /* IE needs a bgcolor to hide tbody as it scrolls */ - border:1px solid #000; - display:block; /* enables tbody scrolling for safari and opera */ -} - -.yui-dt-scrollable thead th { - width:10em; /* any value seems to here, just need something */ -} - -tbody.yui-dt-scrollable { - display:block; /* enables tbody scrolling for safari and opera */ - height:10em; - overflow:auto; /* for scrolling other than IE */ -} - -/* IE specific */ -.yui-dt-scrollable { - height:10em; - *overflow-y:auto; -} - -.yui-dt-scrollable tbody { - *height:auto; /* override the non IE height */ -} - -.yui-dt-scrollable thead tr { - position:relative; /* IE cant scroll tbody, so trick it into fixing thead */ -} - -.yui-dt-scrollable tbody td { - width:10em; -} - - +/*debug css +.example span, .example .yui-dt-columntext {border:1px solid red;}*/ + +/*foundational css*/ +td { + overflow:hidden; +} + +.yui-dt-headcontainer { + position:relative; + +} + +.yui-dt-headtext { + position:relative; + border-right:10px; +} + +.yui-dt-headresizer { + position:absolute; + margin-right:-6px; + right:0; + bottom:0; + width:6px; + height:100%; + cursor:w-resize; + cursor:col-resize; +} + +.yui-dt-firstlink,.yui-dt-prevlink,.yui-dt-nextlink,.yui-dt-lastlink,.yui-dt-pagelink { + cursor:hand; + cursor:pointer; + text-decoration:underline; +} + +.yui-dt-scrollable { + width:20em; + margin-bottom:3em; +} + + +.yui-dt-scrollable thead { + background:#696969; /* IE needs a bgcolor to hide tbody as it scrolls */ + border:1px solid #000; + display:block; /* enables tbody scrolling for safari and opera */ +} + +.yui-dt-scrollable thead th { + width:10em; /* any value seems to here, just need something */ +} + +tbody.yui-dt-scrollable { + display:block; /* enables tbody scrolling for safari and opera */ + height:10em; + overflow:auto; /* for scrolling other than IE */ +} + +/* IE specific */ +.yui-dt-scrollable { + height:10em; + *overflow-y:auto; +} + +.yui-dt-scrollable tbody { + *height:auto; /* override the non IE height */ +} + +.yui-dt-scrollable thead tr { + position:relative; /* IE cant scroll tbody, so trick it into fixing thead */ +} + +.yui-dt-scrollable tbody td { + width:10em; +} + + diff --git a/interface/web/js/yui/logger/assets/logger.css b/interface/web/js/yui/logger/assets/logger.css index a723cfee3b..bca6e0b6c7 100644 --- a/interface/web/js/yui/logger/assets/logger.css +++ b/interface/web/js/yui/logger/assets/logger.css @@ -4,23 +4,23 @@ Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt version: 2.2.0 */ -/* logger default styles */ -/* font size is controlled here: default 77% */ -#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left;} -/* width is controlled here: default 31em */ -.yui-log {padding:1em;width:31em;background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;} -.yui-log p {margin:1px;padding:.1em;} -.yui-log button {font-family:monospace;} -.yui-log .yui-log-hd {margin-top:1em;padding:.5em;background-color:#575757;color:#FFF;} -/* height is controlled here: default 20em*/ -.yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;} -.yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;} -.yui-log .yui-log-ft .yui-log-categoryfilters {} -.yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;} -.yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;} -.yui-log .yui-log-filtergrp {margin-right:.5em;} -.yui-log .info {background-color:#A7CC25;} /* A7CC25 green */ -.yui-log .warn {background-color:#F58516;} /* F58516 orange */ -.yui-log .error {background-color:#E32F0B;} /* E32F0B red */ -.yui-log .time {background-color:#A6C9D7;} /* A6C9D7 blue */ -.yui-log .window {background-color:#F2E886;} /* F2E886 tan */ +/* logger default styles */ +/* font size is controlled here: default 77% */ +#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left;} +/* width is controlled here: default 31em */ +.yui-log {padding:1em;width:31em;background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;} +.yui-log p {margin:1px;padding:.1em;} +.yui-log button {font-family:monospace;} +.yui-log .yui-log-hd {margin-top:1em;padding:.5em;background-color:#575757;color:#FFF;} +/* height is controlled here: default 20em*/ +.yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;} +.yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;} +.yui-log .yui-log-ft .yui-log-categoryfilters {} +.yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;} +.yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;} +.yui-log .yui-log-filtergrp {margin-right:.5em;} +.yui-log .info {background-color:#A7CC25;} /* A7CC25 green */ +.yui-log .warn {background-color:#F58516;} /* F58516 orange */ +.yui-log .error {background-color:#E32F0B;} /* E32F0B red */ +.yui-log .time {background-color:#A6C9D7;} /* A6C9D7 blue */ +.yui-log .window {background-color:#F2E886;} /* F2E886 tan */ diff --git a/interface/web/login/templates/password_reset.htm b/interface/web/login/templates/password_reset.htm index f3f99d2250..d47210ad49 100644 --- a/interface/web/login/templates/password_reset.htm +++ b/interface/web/login/templates/password_reset.htm @@ -1,33 +1,33 @@ -<h2>Password Reset</h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_password_reset"> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Password reset</legend> - <div class="ctrlHolder"> - <label for="email"><em>*</em> E-Mail</label> - <input name="email" id="email" value="" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="username"><em>*</em> Username</label> - <input name="username" id="username" value="" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="s_mod" value="login" /> - <input type="hidden" name="s_pg" value="index" /> - - <div class="buttonHolder buttons"> - <button class="positive" type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="submitForm('pageForm','login/password_reset.php');"><span>Resend password</span></button> - </div> - </div> - -</div> +<h2>Password Reset</h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_password_reset"> + + <tmpl_if name="msg"> + <div id="OKMsg"><p><tmpl_var name="msg"></p></div> + </tmpl_if> + <tmpl_if name="error"> + <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> + </tmpl_if> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Password reset</legend> + <div class="ctrlHolder"> + <label for="email"><em>*</em> E-Mail</label> + <input name="email" id="email" value="" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="username"><em>*</em> Username</label> + <input name="username" id="username" value="" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="s_mod" value="login" /> + <input type="hidden" name="s_pg" value="index" /> + + <div class="buttonHolder buttons"> + <button class="positive" type="button" value="{tmpl_var name="add_new_record_txt"}" onClick="submitForm('pageForm','login/password_reset.php');"><span>Resend password</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/form/mail_mailinglist.tform.php b/interface/web/mail/form/mail_mailinglist.tform.php index 1b4ce69080..b0e390b468 100644 --- a/interface/web/mail/form/mail_mailinglist.tform.php +++ b/interface/web/mail/form/mail_mailinglist.tform.php @@ -1,122 +1,122 @@ -<?php - -/* - Form Definition - - Tabledefinition - - Datatypes: - - INTEGER (Forces the input to Int) - - DOUBLE - - CURRENCY (Formats the values to currency notation) - - VARCHAR (no format check, maxlength: 255) - - TEXT (no format check) - - DATE (Dateformat, automatic conversion to timestamps) - - Formtype: - - TEXT (Textfield) - - TEXTAREA (Textarea) - - PASSWORD (Password textfield, input is not shown when edited) - - SELECT (Select option field) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hint: - The ID field of the database table is not part of the datafield definition. - The ID field must be always auto incement (int or bigint). - - -*/ - -$form["title"] = "Mailing List"; -$form["description"] = ""; -$form["name"] = "mail_mailinglist"; -$form["action"] = "mail_mailinglist_edit.php"; -$form["db_table"] = "mail_mailinglist"; -$form["db_table_idx"] = "mailinglist_id"; -$form["db_history"] = "yes"; -$form["tab_default"] = "mailinglist"; -$form["list_default"] = "mail_mailinglist_list.php"; -$form["auth"] = 'yes'; // yes / no - -$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['mailinglist'] = array ( - 'title' => "Mailing List", - 'width' => 100, - 'template' => "templates/mail_mailinglist_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z\-]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'listname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'listname_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'email_error_isemail'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CLEARTEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Mailing List"; +$form["description"] = ""; +$form["name"] = "mail_mailinglist"; +$form["action"] = "mail_mailinglist_edit.php"; +$form["db_table"] = "mail_mailinglist"; +$form["db_table_idx"] = "mailinglist_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "mailinglist"; +$form["list_default"] = "mail_mailinglist_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['mailinglist'] = array ( + 'title' => "Mailing List", + 'width' => 100, + 'template' => "templates/mail_mailinglist_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'domain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'domain_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z\-]{2,10}$/', + 'errmsg'=> 'domain_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'listname' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'listname_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'email' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', + 'errmsg'=> 'email_error_isemail'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption'=> 'CLEARTEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); ?> \ No newline at end of file diff --git a/interface/web/mail/lib/admin.conf.php b/interface/web/mail/lib/admin.conf.php index a45d440345..67c94a5742 100644 --- a/interface/web/mail/lib/admin.conf.php +++ b/interface/web/mail/lib/admin.conf.php @@ -1,2 +1,2 @@ -<?php +<?php ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_alias_list.lng b/interface/web/mail/lib/lang/en_mail_alias_list.lng index 10d5a6c7eb..2a6fbc32ad 100644 --- a/interface/web/mail/lib/lang/en_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/en_mail_alias_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Email Alias'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Email alias'; +<?php +$wb["list_head_txt"] = 'Email Alias'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Email alias'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_blacklist_list.lng b/interface/web/mail/lib/lang/en_mail_blacklist_list.lng index 9eb28ce3bc..322d8bda94 100644 --- a/interface/web/mail/lib/lang/en_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/en_mail_blacklist_list.lng @@ -1,10 +1,10 @@ -<?php -$wb["list_head_txt"] = 'Email Blacklist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["source_txt"] = 'Blacklisted address'; -$wb["type_txt"] = 'Type'; -$wb["recipient_txt"] = 'Recipient'; -$wb["add_new_record_txt"] = 'Add new Blacklist record'; -$wb["access_txt"] = 'access'; +<?php +$wb["list_head_txt"] = 'Email Blacklist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["source_txt"] = 'Blacklisted address'; +$wb["type_txt"] = 'Type'; +$wb["recipient_txt"] = 'Recipient'; +$wb["add_new_record_txt"] = 'Add new Blacklist record'; +$wb["access_txt"] = 'access'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/en_mail_domain_admin_list.lng index 03350cf800..c56e27b8e8 100644 --- a/interface/web/mail/lib/lang/en_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/en_mail_domain_admin_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Email Domain'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["add_new_record_txt"] = 'Add new Domain'; -$wb["active_txt"] = 'Active'; -$wb["sys_groupid_txt"] = 'Client'; +<?php +$wb["list_head_txt"] = 'Email Domain'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["add_new_record_txt"] = 'Add new Domain'; +$wb["active_txt"] = 'Active'; +$wb["sys_groupid_txt"] = 'Client'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/en_mail_domain_catchall_list.lng index 589423b9a5..386737fb13 100644 --- a/interface/web/mail/lib/lang/en_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/en_mail_domain_catchall_list.lng @@ -1,9 +1,9 @@ -<?php -$wb["list_head_txt"] = 'Email Catchall'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination email address'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["add_new_record_txt"] = 'Add new Catchall'; +<?php +$wb["list_head_txt"] = 'Email Catchall'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination email address'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["add_new_record_txt"] = 'Add new Catchall'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_forward_list.lng b/interface/web/mail/lib/lang/en_mail_forward_list.lng index f850512f1d..9d10b1cabd 100644 --- a/interface/web/mail/lib/lang/en_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/en_mail_forward_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Mail Forward'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Email forward'; +<?php +$wb["list_head_txt"] = 'Mail Forward'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Email forward'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_mailinglist.lng b/interface/web/mail/lib/lang/en_mail_mailinglist.lng index 44790b1ad4..f7ada3e384 100644 --- a/interface/web/mail/lib/lang/en_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/en_mail_mailinglist.lng @@ -1,15 +1,15 @@ -<?php -$wb["limit_mailmailinglist_txt"] = 'Limit reached'; -$wb["domain_error_empty"] = 'Domain is empty.'; -$wb["listname_error_empty"] = 'Listname is empty.'; -$wb["domain_error_regex"] = 'Invalid domain name.'; -$wb["email_in_use_txt"] = 'Email is in use'; -$wb["no_domain_perm"] = 'You have no permission for this domain.'; -$wb["password_strength_txt"] = 'Password strength'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["listname_txt"] = 'Listname'; -$wb["client_txt"] = 'Client'; -$wb["email_txt"] = 'Email'; -$wb["password_txt"] = 'Password'; +<?php +$wb["limit_mailmailinglist_txt"] = 'Limit reached'; +$wb["domain_error_empty"] = 'Domain is empty.'; +$wb["listname_error_empty"] = 'Listname is empty.'; +$wb["domain_error_regex"] = 'Invalid domain name.'; +$wb["email_in_use_txt"] = 'Email is in use'; +$wb["no_domain_perm"] = 'You have no permission for this domain.'; +$wb["password_strength_txt"] = 'Password strength'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["listname_txt"] = 'Listname'; +$wb["client_txt"] = 'Client'; +$wb["email_txt"] = 'Email'; +$wb["password_txt"] = 'Password'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/en_mail_mailinglist_list.lng index ec48108bf9..0f88589718 100644 --- a/interface/web/mail/lib/lang/en_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/en_mail_mailinglist_list.lng @@ -1,5 +1,5 @@ -<?php -$wb["list_head_txt"] = 'Mailing List'; -$wb["domain_txt"] = 'Domain'; -$wb["listname_txt"] = 'Listname'; +<?php +$wb["list_head_txt"] = 'Mailing List'; +$wb["domain_txt"] = 'Domain'; +$wb["listname_txt"] = 'Listname'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/en_mail_spamfilter_list.lng index 22316fa12b..bcc1f83b2b 100644 --- a/interface/web/mail/lib/lang/en_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/en_mail_spamfilter_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Spamfilter'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["server_name_txt"] = 'server_name'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Spamfilter record'; +<?php +$wb["list_head_txt"] = 'Spamfilter'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["server_name_txt"] = 'server_name'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Spamfilter record'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_transport_list.lng b/interface/web/mail/lib/lang/en_mail_transport_list.lng index febadb874b..5dfb8091fc 100644 --- a/interface/web/mail/lib/lang/en_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/en_mail_transport_list.lng @@ -1,9 +1,9 @@ -<?php -$wb["list_head_txt"] = 'Advanced Email Routing'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["transport_txt"] = 'Transport'; -$wb["sort_order_txt"] = 'Sort by'; -$wb["add_new_record_txt"] = 'Add new transport'; +<?php +$wb["list_head_txt"] = 'Advanced Email Routing'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["transport_txt"] = 'Transport'; +$wb["sort_order_txt"] = 'Sort by'; +$wb["add_new_record_txt"] = 'Add new transport'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_mail_whitelist_list.lng b/interface/web/mail/lib/lang/en_mail_whitelist_list.lng index 22aedf23d0..5396c721e6 100644 --- a/interface/web/mail/lib/lang/en_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/en_mail_whitelist_list.lng @@ -1,10 +1,10 @@ -<?php -$wb["list_head_txt"] = 'Email Whitelist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["source_txt"] = 'Whitelisted address'; -$wb["type_txt"] = 'Type'; -$wb["recipient_txt"] = 'Recipient'; -$wb["add_new_record_txt"] = 'Add new Whitelist record'; -$wb["access_txt"] = 'access'; +<?php +$wb["list_head_txt"] = 'Email Whitelist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["source_txt"] = 'Whitelisted address'; +$wb["type_txt"] = 'Type'; +$wb["recipient_txt"] = 'Recipient'; +$wb["add_new_record_txt"] = 'Add new Whitelist record'; +$wb["access_txt"] = 'access'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng index 1e87733a0f..f534123dee 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_policy_list.lng @@ -1,9 +1,9 @@ -<?php -$wb["list_head_txt"] = 'Spamfilter Policy'; -$wb["policy_name_txt"] = 'Name'; -$wb["virus_lover_txt"] = 'Virus lover'; -$wb["spam_lover_txt"] = 'Spam lover'; -$wb["banned_files_lover_txt"] = 'Banned Files lover'; -$wb["bad_header_lover_txt"] = 'Bad Header lover'; -$wb["add_new_record_txt"] = 'Add Policy record'; +<?php +$wb["list_head_txt"] = 'Spamfilter Policy'; +$wb["policy_name_txt"] = 'Name'; +$wb["virus_lover_txt"] = 'Virus lover'; +$wb["spam_lover_txt"] = 'Spam lover'; +$wb["banned_files_lover_txt"] = 'Banned Files lover'; +$wb["bad_header_lover_txt"] = 'Bad Header lover'; +$wb["add_new_record_txt"] = 'Add Policy record'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_spamfilter_users_list.lng b/interface/web/mail/lib/lang/en_spamfilter_users_list.lng index 75fc98e76c..aa8fea39ba 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_users_list.lng @@ -1,10 +1,10 @@ -<?php -$wb["list_head_txt"] = 'Spamfilter Users'; -$wb["local_txt"] = 'Local'; -$wb["server_id_txt"] = 'Server'; -$wb["priority_txt"] = 'Priority'; -$wb["policy_id_txt"] = 'Policy'; -$wb["fullname_txt"] = 'Name'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add Spamfilter User'; +<?php +$wb["list_head_txt"] = 'Spamfilter Users'; +$wb["local_txt"] = 'Local'; +$wb["server_id_txt"] = 'Server'; +$wb["priority_txt"] = 'Priority'; +$wb["policy_id_txt"] = 'Policy'; +$wb["fullname_txt"] = 'Name'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add Spamfilter User'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/en_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/en_spamfilter_whitelist_list.lng index 72495f5e09..e5efd3f4d2 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_whitelist_list.lng @@ -1,9 +1,9 @@ -<?php -$wb["list_head_txt"] = 'Spamfilter Whitelist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["priority_txt"] = 'Priority'; -$wb["rid_txt"] = 'User'; -$wb["email_txt"] = 'Whitelisted Email'; -$wb["add_new_record_txt"] = 'Add Whitelist record'; +<?php +$wb["list_head_txt"] = 'Spamfilter Whitelist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["priority_txt"] = 'Priority'; +$wb["rid_txt"] = 'User'; +$wb["email_txt"] = 'Whitelisted Email'; +$wb["add_new_record_txt"] = 'Add Whitelist record'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng index 9af401fe7c..c2cc1b1ad5 100644 --- a/interface/web/mail/lib/lang/fr_mail_user.lng +++ b/interface/web/mail/lib/lang/fr_mail_user.lng @@ -22,8 +22,8 @@ $wb['no_policy'] = '- non activé -'; $wb['limit_mailbox_txt'] = 'The max. number of mailboxes for your account is reached.'; $wb['limit_mailquota_txt'] = 'The max space for mailboxes is reached. The max. available space in MB is'; $wb['welcome_mail_subject'] = 'Bienvenue sur votre nouveau compte mail.'; -$wb['welcome_mail_message'] = 'Bienvenue sur votre nouveau compte mail. - +$wb['welcome_mail_message'] = 'Bienvenue sur votre nouveau compte mail. + Votre webmaster.'; $wb['disableimap_txt'] = 'Désactiver IMAP'; $wb['disablepop3_txt'] = 'Désactiver POP3'; diff --git a/interface/web/mail/lib/lang/id_mail_alias_list.lng b/interface/web/mail/lib/lang/id_mail_alias_list.lng index 10d5a6c7eb..2a6fbc32ad 100644 --- a/interface/web/mail/lib/lang/id_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/id_mail_alias_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Email Alias'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Email alias'; +<?php +$wb["list_head_txt"] = 'Email Alias'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Email alias'; ?> \ No newline at end of file diff --git a/interface/web/mail/lib/module.conf.php b/interface/web/mail/lib/module.conf.php index 522845c6ee..11fad78c5f 100644 --- a/interface/web/mail/lib/module.conf.php +++ b/interface/web/mail/lib/module.conf.php @@ -1,200 +1,200 @@ -<?php - -$userid=$app->auth->get_user_id(); - -$module['name'] = 'mail'; -$module['title'] = 'top_menu_email'; -$module['template'] = 'module.tpl.htm'; -$module['startpage'] = 'mail/mail_domain_list.php'; -$module['tab_width'] = ''; - - -//**** Email accounts menu -$items = array(); - -if($app->auth->get_client_limit($userid,'maildomain') != 0) -{ - $items[] = array( 'title' => 'Domain', - 'target' => 'content', - 'link' => 'mail/mail_domain_list.php', - 'html_id' => 'mail_domain_list'); -} - -if($app->auth->get_client_limit($userid,'mailaliasdomain') != 0) -{ - $items[] = array( 'title' => 'Domain Alias', - 'target' => 'content', - 'link' => 'mail/mail_aliasdomain_list.php', - 'html_id' => 'mail_aliasdomain_list'); -} - -if($app->auth->get_client_limit($userid,'mailbox') != 0) -{ - $items[] = array( 'title' => 'Email Mailbox', - 'target' => 'content', - 'link' => 'mail/mail_user_list.php', - 'html_id' => 'mail_user_list'); -} - -if($app->auth->get_client_limit($userid,'mailalias') != 0) -{ - $items[] = array( 'title' => 'Email Alias', - 'target' => 'content', - 'link' => 'mail/mail_alias_list.php', - 'html_id' => 'mail_alias_list'); -} - -if($app->auth->get_client_limit($userid,'mailforward') != 0) -{ - $items[] = array( 'title' => 'Email Forward', - 'target' => 'content', - 'link' => 'mail/mail_forward_list.php', - 'html_id' => 'mail_forward_list'); -} - -if($app->auth->get_client_limit($userid,'mailcatchall') != 0) -{ - $items[] = array( 'title' => 'Email Catchall', - 'target' => 'content', - 'link' => 'mail/mail_domain_catchall_list.php', - 'html_id' => 'mail_domain_catchall_list'); -} - -if($app->auth->get_client_limit($userid,'mailrouting') != 0) -{ - $items[] = array( 'title' => 'Email Routing', - 'target' => 'content', - 'link' => 'mail/mail_transport_list.php', - 'html_id' => 'mail_transport_list'); -} - -if(count($items)) -{ - $module['nav'][] = array( 'title' => 'Email Accounts', - 'open' => 1, - 'items' => $items); -} - -//**** Mailinglist menu -$items = array(); - -if($app->auth->get_client_limit($userid,'mailmailinglist') != 0) -{ - $items[] = array( 'title' => 'Mailing List', - 'target' => 'content', - 'link' => 'mail/mail_mailinglist_list.php', - 'html_id' => 'mail_mailinglist_list'); -} - -if(count($items)) -{ - $module['nav'][] = array( 'title' => 'Mailing List', - 'open' => 1, - 'items' => $items); -} - -//**** Spamfilter menu -$items = array(); - -if($app->auth->get_client_limit($userid,'spamfilter_wblist') != 0) -{ - $items[] = array( 'title' => 'Whitelist', - 'target' => 'content', - 'link' => 'mail/spamfilter_whitelist_list.php', - 'html_id' => 'spamfilter_whitelist_list'); - - $items[] = array( 'title' => 'Blacklist', - 'target' => 'content', - 'link' => 'mail/spamfilter_blacklist_list.php', - 'html_id' => 'spamfilter_blacklist_list'); -} - -if($app->auth->is_admin()) { - - $items[] = array( 'title' => 'User / Domain', - 'target' => 'content', - 'link' => 'mail/spamfilter_users_list.php', - 'html_id' => 'spamfilter_users_list'); - - $items[] = array( 'title' => 'Policy', - 'target' => 'content', - 'link' => 'mail/spamfilter_policy_list.php', - 'html_id' => 'spamfilter_policy_list'); - -// $items[] = array( 'title' => 'Server Settings', -// 'target' => 'content', -// 'link' => 'mail/spamfilter_config_list.php'); -} - -if(count($items)) -{ - $module['nav'][] = array( 'title' => 'Spamfilter', - 'open' => 1, - 'items' => $items); -} - -//**** Fetchmail menu -$items = array(); - -if($app->auth->get_client_limit($userid,'fetchmail') != 0) -{ - $items[] = array( 'title' => 'Fetchmail', - 'target' => 'content', - 'link' => 'mail/mail_get_list.php', - 'html_id' => 'mail_get_list'); - - $module['nav'][] = array( 'title' => 'Fetchmail', - 'open' => 1, - 'items' => $items); -} - - - -//**** Statistics menu -$items = array(); - -$items[] = array( 'title' => 'Mailbox traffic', - 'target' => 'content', - 'link' => 'mail/mail_user_stats.php', - 'html_id' => 'mail_user_stats'); - - - -$module['nav'][] = array( 'title' => 'Statistics', - 'open' => 1, - 'items' => $items); - - -//**** Global filters menu -$items = array(); -if($_SESSION['s']['user']['typ'] == 'admin') { - - $items[] = array( 'title' => 'Postfix Whitelist', - 'target' => 'content', - 'link' => 'mail/mail_whitelist_list.php', - 'html_id' => 'mail_whitelist_list'); - - - $items[] = array( 'title' => 'Postfix Blacklist', - 'target' => 'content', - 'link' => 'mail/mail_blacklist_list.php', - 'html_id' => 'mail_blacklist_list'); - - - $items[] = array( 'title' => 'Content Filter', - 'target' => 'content', - 'link' => 'mail/mail_content_filter_list.php', - 'html_id' => 'mail_content_filter_list'); - - - $items[] = array( 'title' => 'Relay Recipients', - 'target' => 'content', - 'link' => 'mail/mail_relay_recipient_list.php', - 'html_id' => 'mail_relay_recipient_list'); - - - $module['nav'][] = array( 'title' => 'Global Filters', - 'open' => 1, - 'items' => $items); -} +<?php + +$userid=$app->auth->get_user_id(); + +$module['name'] = 'mail'; +$module['title'] = 'top_menu_email'; +$module['template'] = 'module.tpl.htm'; +$module['startpage'] = 'mail/mail_domain_list.php'; +$module['tab_width'] = ''; + + +//**** Email accounts menu +$items = array(); + +if($app->auth->get_client_limit($userid,'maildomain') != 0) +{ + $items[] = array( 'title' => 'Domain', + 'target' => 'content', + 'link' => 'mail/mail_domain_list.php', + 'html_id' => 'mail_domain_list'); +} + +if($app->auth->get_client_limit($userid,'mailaliasdomain') != 0) +{ + $items[] = array( 'title' => 'Domain Alias', + 'target' => 'content', + 'link' => 'mail/mail_aliasdomain_list.php', + 'html_id' => 'mail_aliasdomain_list'); +} + +if($app->auth->get_client_limit($userid,'mailbox') != 0) +{ + $items[] = array( 'title' => 'Email Mailbox', + 'target' => 'content', + 'link' => 'mail/mail_user_list.php', + 'html_id' => 'mail_user_list'); +} + +if($app->auth->get_client_limit($userid,'mailalias') != 0) +{ + $items[] = array( 'title' => 'Email Alias', + 'target' => 'content', + 'link' => 'mail/mail_alias_list.php', + 'html_id' => 'mail_alias_list'); +} + +if($app->auth->get_client_limit($userid,'mailforward') != 0) +{ + $items[] = array( 'title' => 'Email Forward', + 'target' => 'content', + 'link' => 'mail/mail_forward_list.php', + 'html_id' => 'mail_forward_list'); +} + +if($app->auth->get_client_limit($userid,'mailcatchall') != 0) +{ + $items[] = array( 'title' => 'Email Catchall', + 'target' => 'content', + 'link' => 'mail/mail_domain_catchall_list.php', + 'html_id' => 'mail_domain_catchall_list'); +} + +if($app->auth->get_client_limit($userid,'mailrouting') != 0) +{ + $items[] = array( 'title' => 'Email Routing', + 'target' => 'content', + 'link' => 'mail/mail_transport_list.php', + 'html_id' => 'mail_transport_list'); +} + +if(count($items)) +{ + $module['nav'][] = array( 'title' => 'Email Accounts', + 'open' => 1, + 'items' => $items); +} + +//**** Mailinglist menu +$items = array(); + +if($app->auth->get_client_limit($userid,'mailmailinglist') != 0) +{ + $items[] = array( 'title' => 'Mailing List', + 'target' => 'content', + 'link' => 'mail/mail_mailinglist_list.php', + 'html_id' => 'mail_mailinglist_list'); +} + +if(count($items)) +{ + $module['nav'][] = array( 'title' => 'Mailing List', + 'open' => 1, + 'items' => $items); +} + +//**** Spamfilter menu +$items = array(); + +if($app->auth->get_client_limit($userid,'spamfilter_wblist') != 0) +{ + $items[] = array( 'title' => 'Whitelist', + 'target' => 'content', + 'link' => 'mail/spamfilter_whitelist_list.php', + 'html_id' => 'spamfilter_whitelist_list'); + + $items[] = array( 'title' => 'Blacklist', + 'target' => 'content', + 'link' => 'mail/spamfilter_blacklist_list.php', + 'html_id' => 'spamfilter_blacklist_list'); +} + +if($app->auth->is_admin()) { + + $items[] = array( 'title' => 'User / Domain', + 'target' => 'content', + 'link' => 'mail/spamfilter_users_list.php', + 'html_id' => 'spamfilter_users_list'); + + $items[] = array( 'title' => 'Policy', + 'target' => 'content', + 'link' => 'mail/spamfilter_policy_list.php', + 'html_id' => 'spamfilter_policy_list'); + +// $items[] = array( 'title' => 'Server Settings', +// 'target' => 'content', +// 'link' => 'mail/spamfilter_config_list.php'); +} + +if(count($items)) +{ + $module['nav'][] = array( 'title' => 'Spamfilter', + 'open' => 1, + 'items' => $items); +} + +//**** Fetchmail menu +$items = array(); + +if($app->auth->get_client_limit($userid,'fetchmail') != 0) +{ + $items[] = array( 'title' => 'Fetchmail', + 'target' => 'content', + 'link' => 'mail/mail_get_list.php', + 'html_id' => 'mail_get_list'); + + $module['nav'][] = array( 'title' => 'Fetchmail', + 'open' => 1, + 'items' => $items); +} + + + +//**** Statistics menu +$items = array(); + +$items[] = array( 'title' => 'Mailbox traffic', + 'target' => 'content', + 'link' => 'mail/mail_user_stats.php', + 'html_id' => 'mail_user_stats'); + + + +$module['nav'][] = array( 'title' => 'Statistics', + 'open' => 1, + 'items' => $items); + + +//**** Global filters menu +$items = array(); +if($_SESSION['s']['user']['typ'] == 'admin') { + + $items[] = array( 'title' => 'Postfix Whitelist', + 'target' => 'content', + 'link' => 'mail/mail_whitelist_list.php', + 'html_id' => 'mail_whitelist_list'); + + + $items[] = array( 'title' => 'Postfix Blacklist', + 'target' => 'content', + 'link' => 'mail/mail_blacklist_list.php', + 'html_id' => 'mail_blacklist_list'); + + + $items[] = array( 'title' => 'Content Filter', + 'target' => 'content', + 'link' => 'mail/mail_content_filter_list.php', + 'html_id' => 'mail_content_filter_list'); + + + $items[] = array( 'title' => 'Relay Recipients', + 'target' => 'content', + 'link' => 'mail/mail_relay_recipient_list.php', + 'html_id' => 'mail_relay_recipient_list'); + + + $module['nav'][] = array( 'title' => 'Global Filters', + 'open' => 1, + 'items' => $items); +} ?> \ No newline at end of file diff --git a/interface/web/mail/list/mail_mailinglist.list.php b/interface/web/mail/list/mail_mailinglist.list.php index 27842a5d34..4070b22b04 100644 --- a/interface/web/mail/list/mail_mailinglist.list.php +++ b/interface/web/mail/list/mail_mailinglist.list.php @@ -1,67 +1,67 @@ -<?php - -/* - Datatypes: - - INTEGER - - DOUBLE - - CURRENCY - - VARCHAR - - TEXT - - DATE -*/ - - - -// Name of the list -$liste["name"] = "mail_mailinglist"; - -// Database table -$liste["table"] = "mail_mailinglist"; - -// Index index field of the database table -$liste["table_idx"] = "mailinglist_id"; - -// Search Field Prefix -$liste["search_prefix"] = "search_"; - -// Records per page -$liste["records_per_page"] = 15; - -// Script File of the list -$liste["file"] = "mail_mailinglist_list.php"; - -// Script file of the edit form -$liste["edit_file"] = "mail_mailinglist_edit.php"; - -// Script File of the delete script -$liste["delete_file"] = "mail_mailinglist_del.php"; - -// Paging Template -$liste["paging_tpl"] = "templates/paging.tpl.htm"; - -// Enable auth -$liste["auth"] = "yes"; - - -/***************************************************** -* Suchfelder -*****************************************************/ -$liste["item"][] = array( 'field' => "listname", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - +<?php + +/* + Datatypes: + - INTEGER + - DOUBLE + - CURRENCY + - VARCHAR + - TEXT + - DATE +*/ + + + +// Name of the list +$liste["name"] = "mail_mailinglist"; + +// Database table +$liste["table"] = "mail_mailinglist"; + +// Index index field of the database table +$liste["table_idx"] = "mailinglist_id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = 15; + +// Script File of the list +$liste["file"] = "mail_mailinglist_list.php"; + +// Script file of the edit form +$liste["edit_file"] = "mail_mailinglist_edit.php"; + +// Script File of the delete script +$liste["delete_file"] = "mail_mailinglist_del.php"; + +// Paging Template +$liste["paging_tpl"] = "templates/paging.tpl.htm"; + +// Enable auth +$liste["auth"] = "yes"; + + +/***************************************************** +* Suchfelder +*****************************************************/ +$liste["item"][] = array( 'field' => "listname", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "domain", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + ?> \ No newline at end of file diff --git a/interface/web/mail/mail_domain_del.php b/interface/web/mail/mail_domain_del.php index 456a7335a3..d686341e63 100644 --- a/interface/web/mail/mail_domain_del.php +++ b/interface/web/mail/mail_domain_del.php @@ -1,98 +1,98 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/mail_domain.list.php"; -$tform_def_file = "form/mail_domain.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - $domain = $this->dataRecord['domain']; - - // Before we delete the email domain, - // we will delete all depending records. - - // Delete all forwardings where the osurce or destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT forwarding_id as id FROM mail_forwarding WHERE source like '%@".$app->db->quote($domain)."' OR destination like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_forwarding','forwarding_id',$rec['id']); - } - - // Delete all fetchmail accounts where destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT mailget_id as id FROM mail_get WHERE destination like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_get','mailget_id',$rec['id']); - } - - // Delete all mailboxes where destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT mailuser_id as id FROM mail_user WHERE email like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_user','mailuser_id',$rec['id']); - } - - // Delete all spamfilters that belong to this domain - $records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('spamfilter_users','id',$rec['id']); - } - - // Delete all mailinglists that belong to this domain - $records = $app->db->queryAllRecords("SELECT mailinglist_id FROM mail_mailinglist WHERE domain = '".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_mailinglist','mailinglist_id',$rec['id']); - } - - } -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/mail_domain.list.php"; +$tform_def_file = "form/mail_domain.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + $domain = $this->dataRecord['domain']; + + // Before we delete the email domain, + // we will delete all depending records. + + // Delete all forwardings where the osurce or destination belongs to this domain + $records = $app->db->queryAllRecords("SELECT forwarding_id as id FROM mail_forwarding WHERE source like '%@".$app->db->quote($domain)."' OR destination like '%@".$app->db->quote($domain)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('mail_forwarding','forwarding_id',$rec['id']); + } + + // Delete all fetchmail accounts where destination belongs to this domain + $records = $app->db->queryAllRecords("SELECT mailget_id as id FROM mail_get WHERE destination like '%@".$app->db->quote($domain)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('mail_get','mailget_id',$rec['id']); + } + + // Delete all mailboxes where destination belongs to this domain + $records = $app->db->queryAllRecords("SELECT mailuser_id as id FROM mail_user WHERE email like '%@".$app->db->quote($domain)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('mail_user','mailuser_id',$rec['id']); + } + + // Delete all spamfilters that belong to this domain + $records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($domain)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('spamfilter_users','id',$rec['id']); + } + + // Delete all mailinglists that belong to this domain + $records = $app->db->queryAllRecords("SELECT mailinglist_id FROM mail_mailinglist WHERE domain = '".$app->db->quote($domain)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('mail_mailinglist','mailinglist_id',$rec['id']); + } + + } +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index c323d3c328..06ce64baf7 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -1,370 +1,370 @@ -<?php -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - - -/****************************************** -* Begin Form configuration -******************************************/ - -$tform_def_file = "form/mail_domain.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_maildomain')) { - $app->error($app->tform->wordbook["limit_maildomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_maildomain')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_maildomain_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] == 'admin') { - // Getting Clients of the user - if($_SESSION["s"]["user"]["typ"] == 'admin') { - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $sql = "SELECT client.client_id, limit_web_domain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; - } - $clients = $app->db->queryAllRecords($sql); - $client_select = ''; - if($_SESSION["s"]["user"]["typ"] == 'admin') $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':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id order by contact_name"); - - // Set the mailserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_mailserver]"); - $app->tpl->setVar("server_id","<option value='$client[default_mailserver]'>$tmp[server_name]</option>"); - unset($tmp); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</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':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } - - /* - * Now we have to check, if we should use the domain-module to select the domain - * or not - */ - $app->uses('ini_parser,getconf'); - $settings = $app->getconf->get_global_config('domains'); - if ($settings['use_domain_module'] == 'y') { - /* - * The domain-module is in use. - */ - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - /* - * The admin can select ALL domains, the user only the domains assigned to him - */ - $sql = "SELECT domain FROM domain "; - if ($_SESSION["s"]["user"]["typ"] != 'admin') { - $sql .= "WHERE sys_groupid =" . $client_group_id; - } - $sql .= " ORDER BY domain"; - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - if(is_array($domains) && sizeof($domains) > 0) { - /* We have domains in the list, so create the drop-down-list */ - foreach( $domains as $domain) { - $domain_select .= "<option value=" . $domain['domain'] ; - if ($domain['domain'] == $this->dataRecord["domain"]) { - $domain_select .= " selected"; - } - $domain_select .= ">" . $domain['domain'] . "</option>\r\n"; - } - } - else { - /* - * We have no domains in the domain-list. This means, we can not add ANY new domain. - * To avoid, that the variable "domain_option" is empty and so the user can - * free enter a domain, we have to create a empty option! - */ - $domain_select .= "<option value=''></option>\r\n"; - } - $app->tpl->setVar("domain_option",$domain_select); - } - - - // Get the spamfilter policys for the user - $tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = '@".$this->dataRecord["domain"]."'"); - $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r'); - $policys = $app->db->queryAllRecords($sql); - $policy_select = "<option value='0'>".$app->tform->wordbook["no_policy"]."</option>"; - if(is_array($policys)) { - foreach( $policys as $p) { - $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; - $policy_select .= "<option value='$p[id]' $selected>$p[policy_name]</option>\r\n"; - } - } - $app->tpl->setVar("policy",$policy_select); - unset($policys); - unset($policy_select); - unset($tmp_user); - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_maildomain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // When the record is updated - if($this->id > 0) { - // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id FROM mail_domain WHERE domain_id = ".intval($this->id)); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - // When the record is inserted - } else { - // set the server ID to the default mailserver of the client - $this->dataRecord["server_id"] = $client["default_mailserver"]; - - // Check if the user may add another mail_domain - if($client["limit_maildomain"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_maildomain"]) { - $app->error($app->tform->wordbook["limit_maildomain_txt"]); - } - } - } - - // Clients may not set the client_group_id, so we unset them if user is not a admin - if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); - } - - //* make sure that the email domain is lowercase - if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the client group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - if($policy_id > 0) { - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $ploicy_id", 'id', $tmp_user["id"]); - } else { - $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - unset($tmp_domain); - } - } // endif spamfilter policy - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id, domain from mail_domain WHERE domain_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - //* If the user is neither admin nor reseller - } else { - //* We do not allow users to change a domain which has been created by the admin - $rec = $app->db->queryOneRecord("SELECT domain from mail_domain WHERE domain_id = ".$this->id); - if($rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); - $this->dataRecord["domain"] = $rec['domain']; - } - unset($rec); - } - } - - - - function onAfterUpdate() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when admin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); - if($policy_id > 0) { - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $policy_id", 'id', $tmp_user["id"]); - } else { - $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - unset($tmp_domain); - } - } else { - if($tmp_user["id"] > 0) { - // There is already a record but the user shall have no policy, so we delete it - $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); - } - } // endif spamfilter policy - //** If the domain name or owner has been changed, change the domain and owner in all mailbox records - if($this->oldDataRecord['domain'] != $this->dataRecord['domain'] || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($this->dataRecord["server_id"],'mail'); - - //* Update the mailboxes - $mailusers = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE email like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); - $sys_groupid = (isset($this->dataRecord['client_group_id']))?$this->dataRecord['client_group_id']:$this->oldDataRecord['sys_groupid']; - if(is_array($mailusers)) { - foreach($mailusers as $rec) { - // setting Maildir, Homedir, UID and GID - $mail_parts = explode("@",$rec['email']); - $maildir = str_replace("[domain]",$this->dataRecord['domain'],$mail_config["maildir_path"]); - $maildir = str_replace("[localpart]",$mail_parts[0],$maildir); - $maildir = mysql_real_escape_string($maildir); - $email = mysql_real_escape_string($mail_parts[0].'@'.$this->dataRecord['domain']); - $app->db->datalogUpdate('mail_user', "maildir = '$maildir', email = '$email', sys_groupid = '$sys_groupid'", 'mailuser_id', $rec['mailuser_id']); - } - } - - //* Update the aliases - $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."' OR destination like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); - if(is_array($forwardings)) { - foreach($forwardings as $rec) { - $destination = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['destination'])); - $source = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['source'])); - $app->db->datalogUpdate('mail_forwarding', "source = '$source', destination = '$destination', sys_groupid = '$sys_groupid'", 'forwarding_id', $rec['forwarding_id']); - } - } - - //* Update the mailinglist - $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $sys_groupid WHERE domain = '".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); - - //* Delete the old spamfilter record - $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->oldDataRecord["domain"])."'"); - $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); - unset($tmp); - - } // end if domain name changed - - } - -} - -$page = new page_action; -$page->onLoad(); - +<?php +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/mail_domain.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_maildomain')) { + $app->error($app->tform->wordbook["limit_maildomain_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_maildomain')) { + $app->error('Reseller: '.$app->tform->wordbook["limit_maildomain_txt"]); + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Getting Clients of the user + if($_SESSION["s"]["user"]["typ"] == 'admin') { + $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; + } else { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $sql = "SELECT client.client_id, limit_web_domain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; + } + $clients = $app->db->queryAllRecords($sql); + $client_select = ''; + if($_SESSION["s"]["user"]["typ"] == 'admin') $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':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id order by contact_name"); + + // Set the mailserver to the default server of the client + $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_mailserver]"); + $app->tpl->setVar("server_id","<option value='$client[default_mailserver]'>$tmp[server_name]</option>"); + unset($tmp); + + // Fill the client select field + $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; + $clients = $app->db->queryAllRecords($sql); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); + $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</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':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + + } + + /* + * Now we have to check, if we should use the domain-module to select the domain + * or not + */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + /* + * The domain-module is in use. + */ + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + /* + * The admin can select ALL domains, the user only the domains assigned to him + */ + $sql = "SELECT domain FROM domain "; + if ($_SESSION["s"]["user"]["typ"] != 'admin') { + $sql .= "WHERE sys_groupid =" . $client_group_id; + } + $sql .= " ORDER BY domain"; + $domains = $app->db->queryAllRecords($sql); + $domain_select = ''; + if(is_array($domains) && sizeof($domains) > 0) { + /* We have domains in the list, so create the drop-down-list */ + foreach( $domains as $domain) { + $domain_select .= "<option value=" . $domain['domain'] ; + if ($domain['domain'] == $this->dataRecord["domain"]) { + $domain_select .= " selected"; + } + $domain_select .= ">" . $domain['domain'] . "</option>\r\n"; + } + } + else { + /* + * We have no domains in the domain-list. This means, we can not add ANY new domain. + * To avoid, that the variable "domain_option" is empty and so the user can + * free enter a domain, we have to create a empty option! + */ + $domain_select .= "<option value=''></option>\r\n"; + } + $app->tpl->setVar("domain_option",$domain_select); + } + + + // Get the spamfilter policys for the user + $tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = '@".$this->dataRecord["domain"]."'"); + $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r'); + $policys = $app->db->queryAllRecords($sql); + $policy_select = "<option value='0'>".$app->tform->wordbook["no_policy"]."</option>"; + if(is_array($policys)) { + foreach( $policys as $p) { + $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; + $policy_select .= "<option value='$p[id]' $selected>$p[policy_name]</option>\r\n"; + } + } + $app->tpl->setVar("policy",$policy_select); + unset($policys); + unset($policy_select); + unset($tmp_user); + + if($this->id > 0) { + //* we are editing a existing record + $app->tpl->setVar("edit_disabled", 1); + $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); + } else { + $app->tpl->setVar("edit_disabled", 0); + } + + parent::onShowEnd(); + } + + function onSubmit() { + global $app, $conf; + if($_SESSION["s"]["user"]["typ"] != 'admin') { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_maildomain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + // When the record is updated + if($this->id > 0) { + // restore the server ID if the user is not admin and record is edited + $tmp = $app->db->queryOneRecord("SELECT server_id FROM mail_domain WHERE domain_id = ".intval($this->id)); + $this->dataRecord["server_id"] = $tmp["server_id"]; + unset($tmp); + // When the record is inserted + } else { + // set the server ID to the default mailserver of the client + $this->dataRecord["server_id"] = $client["default_mailserver"]; + + // Check if the user may add another mail_domain + if($client["limit_maildomain"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE sys_groupid = $client_group_id"); + if($tmp["number"] >= $client["limit_maildomain"]) { + $app->error($app->tform->wordbook["limit_maildomain_txt"]); + } + } + } + + // Clients may not set the client_group_id, so we unset them if user is not a admin + if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); + } + + //* make sure that the email domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); + } + + // Spamfilter policy + $policy_id = intval($this->dataRecord["policy"]); + if($policy_id > 0) { + $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); + if($tmp_user["id"] > 0) { + // There is already a record that we will update + $app->db->datalogUpdate('spamfilter_users', "policy_id = $ploicy_id", 'id', $tmp_user["id"]); + } else { + $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); + // We create a new record + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) + VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; + $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); + unset($tmp_domain); + } + } // endif spamfilter policy + } + + function onBeforeUpdate() { + global $app, $conf; + + //* Check if the server has been changed + // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway + if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $rec = $app->db->queryOneRecord("SELECT server_id, domain from mail_domain WHERE domain_id = ".$this->id); + if($rec['server_id'] != $this->dataRecord["server_id"]) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); + $this->dataRecord["server_id"] = $rec['server_id']; + } + unset($rec); + //* If the user is neither admin nor reseller + } else { + //* We do not allow users to change a domain which has been created by the admin + $rec = $app->db->queryOneRecord("SELECT domain from mail_domain WHERE domain_id = ".$this->id); + if($rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); + $this->dataRecord["domain"] = $rec['domain']; + } + unset($rec); + } + } + + + + function onAfterUpdate() { + global $app, $conf; + + // make sure that the record belongs to the clinet group and not the admin group when admin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); + } + + // Spamfilter policy + $policy_id = intval($this->dataRecord["policy"]); + $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); + if($policy_id > 0) { + if($tmp_user["id"] > 0) { + // There is already a record that we will update + $app->db->datalogUpdate('spamfilter_users', "policy_id = $policy_id", 'id', $tmp_user["id"]); + } else { + $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); + // We create a new record + $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) + VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; + $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); + unset($tmp_domain); + } + } else { + if($tmp_user["id"] > 0) { + // There is already a record but the user shall have no policy, so we delete it + $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); + } + } // endif spamfilter policy + //** If the domain name or owner has been changed, change the domain and owner in all mailbox records + if($this->oldDataRecord['domain'] != $this->dataRecord['domain'] || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($this->dataRecord["server_id"],'mail'); + + //* Update the mailboxes + $mailusers = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE email like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); + $sys_groupid = (isset($this->dataRecord['client_group_id']))?$this->dataRecord['client_group_id']:$this->oldDataRecord['sys_groupid']; + if(is_array($mailusers)) { + foreach($mailusers as $rec) { + // setting Maildir, Homedir, UID and GID + $mail_parts = explode("@",$rec['email']); + $maildir = str_replace("[domain]",$this->dataRecord['domain'],$mail_config["maildir_path"]); + $maildir = str_replace("[localpart]",$mail_parts[0],$maildir); + $maildir = mysql_real_escape_string($maildir); + $email = mysql_real_escape_string($mail_parts[0].'@'.$this->dataRecord['domain']); + $app->db->datalogUpdate('mail_user', "maildir = '$maildir', email = '$email', sys_groupid = '$sys_groupid'", 'mailuser_id', $rec['mailuser_id']); + } + } + + //* Update the aliases + $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."' OR destination like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); + if(is_array($forwardings)) { + foreach($forwardings as $rec) { + $destination = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['destination'])); + $source = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['source'])); + $app->db->datalogUpdate('mail_forwarding', "source = '$source', destination = '$destination', sys_groupid = '$sys_groupid'", 'forwarding_id', $rec['forwarding_id']); + } + } + + //* Update the mailinglist + $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $sys_groupid WHERE domain = '".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); + + //* Delete the old spamfilter record + $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->oldDataRecord["domain"])."'"); + $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); + unset($tmp); + + } // end if domain name changed + + } + +} + +$page = new page_action; +$page->onLoad(); + ?> \ No newline at end of file diff --git a/interface/web/mail/mail_mailinglist_del.php b/interface/web/mail/mail_mailinglist_del.php index a0f0a8fb1a..1622aefb01 100644 --- a/interface/web/mail/mail_mailinglist_del.php +++ b/interface/web/mail/mail_mailinglist_del.php @@ -1,58 +1,58 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/mail_mailinglist.list.php"; -$tform_def_file = "form/mail_mailinglist.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/mail_mailinglist.list.php"; +$tform_def_file = "form/mail_mailinglist.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/mail/mail_mailinglist_edit.php b/interface/web/mail/mail_mailinglist_edit.php index 9729757db0..81e518f4c2 100644 --- a/interface/web/mail/mail_mailinglist_edit.php +++ b/interface/web/mail/mail_mailinglist_edit.php @@ -1,256 +1,256 @@ -<?php -/* -Copyright (c) 2005 - 2009, Till Brehm, projektfarm Gmbh -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. -*/ - - -/****************************************** -* Begin Form configuration -******************************************/ - -$tform_def_file = "form/mail_mailinglist.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailmailinglist')) { - $app->error($app->tform->wordbook["limit_mailmailinglist_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailmailinglist')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailmailinglist_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] == 'admin') { - // Getting Clients of the user - if($_SESSION["s"]["user"]["typ"] == 'admin') { - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $sql = "SELECT client.client_id, limit_web_domain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; - } - $clients = $app->db->queryAllRecords($sql); - $client_select = ''; - if($_SESSION["s"]["user"]["typ"] == 'admin') $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':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id order by contact_name"); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</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':''; - $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - } - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - if(is_array($domains)) { - foreach( $domains as $domain) { - $selected = ($domain["domain"] == $this->dataRecord["domain"])?'SELECTED':''; - $domain_select .= "<option value='$domain[domain]' $selected>$domain[domain]</option>\r\n"; - } - } - $app->tpl->setVar("domain_option",$domain_select); - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("listname_value", $this->dataRecord["listname"]); - $app->tpl->setVar("domain_value", $this->dataRecord["domain"]); - $app->tpl->setVar("email_value", $this->dataRecord["email"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailmailinglist, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - //* Check if Domain belongs to user - if(isset($_POST["domain"])) { - $domain = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = '".$this->dataRecord["domain"]."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $this->dataRecord["domain"]) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); - } - - // When the record is updated - if($this->id == 0) { - //Check if email is in use - $check = $app->db->queryOneRecord("SELECT count(source) as number FROM mail_forwarding WHERE source = '".$this->dataRecord["listname"]."@".$this->dataRecord["domain"]."'"); - if($check['number'] != 0) { - $app->error($app->tform->wordbook["email_in_use_txt"]); - } - - $check = $app->db->queryOneRecord("SELECT count(email) as number FROM mail_user WHERE email = '".$this->dataRecord["listname"]."@".$this->dataRecord["domain"]."'"); - if($check['number'] != 0) { - $app->error($app->tform->wordbook["email_in_use_txt"]); - } - - $check = $app->db->queryOneRecord("SELECT count(mailinglist_id) as number FROM mail_mailinglist WHERE listname = '".$this->dataRecord["listname"]."' AND domain = '".$this->dataRecord["domain"]."'"); - if($check['number'] != 0) { - $app->error($app->tform->wordbook["email_in_use_txt"]); - } - - // Check if the user may add another mail_domain - if($client["limit_mailmailinglist"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(mailinglist_id) as number FROM mail_mailinglist WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_mailmailinglist"]) { - $app->error($app->tform->wordbook["limit_mailmailinglist_txt"]); - } - } - } - - // Clients may not set the client_group_id, so we unset them if user is not a admin - if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); - } - - //* make sure that the email domain is lowercase - if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - - parent::onSubmit(); - } - - function onBeforeInsert() { - global $app, $conf; - - // Set the server id of the mailinglist = server ID of mail domain. - $domain = $app->db->queryOneRecord("SELECT server_id FROM mail_domain WHERE domain = '".$this->dataRecord["domain"]."'"); - $this->dataRecord["server_id"] = $domain['server_id']; - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the client group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE mailinglist_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE mailinglist_id = ".$this->id); - } - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id, domain from mail_mailinglist WHERE mailinglist_id = ".$this->id); - $this->dataRecord["server_id"] = $rec['server_id']; - unset($rec); - //* If the user is neither admin nor reseller - } else { - //* We do not allow users to change a domain which has been created by the admin - $rec = $app->db->queryOneRecord("SELECT domain from mail_mailinglist WHERE mailinglist_id = ".$this->id); - if($rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); - $this->dataRecord["domain"] = $rec['domain']; - } - unset($rec); - } - } - - function onAfterUpdate() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when admin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE mailinglist_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE mailinglist_id = ".$this->id); - } - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - -?> +<?php +/* +Copyright (c) 2005 - 2009, Till Brehm, projektfarm Gmbh +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. +*/ + + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/mail_mailinglist.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_mailmailinglist')) { + $app->error($app->tform->wordbook["limit_mailmailinglist_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_mailmailinglist')) { + $app->error('Reseller: '.$app->tform->wordbook["limit_mailmailinglist_txt"]); + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Getting Clients of the user + if($_SESSION["s"]["user"]["typ"] == 'admin') { + $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; + } else { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $sql = "SELECT client.client_id, limit_web_domain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; + } + $clients = $app->db->queryAllRecords($sql); + $client_select = ''; + if($_SESSION["s"]["user"]["typ"] == 'admin') $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':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id order by contact_name"); + + // Fill the client select field + $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; + $clients = $app->db->queryAllRecords($sql); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); + $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</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':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + } + + // Getting Domains of the user + $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; + $domains = $app->db->queryAllRecords($sql); + $domain_select = ''; + if(is_array($domains)) { + foreach( $domains as $domain) { + $selected = ($domain["domain"] == $this->dataRecord["domain"])?'SELECTED':''; + $domain_select .= "<option value='$domain[domain]' $selected>$domain[domain]</option>\r\n"; + } + } + $app->tpl->setVar("domain_option",$domain_select); + + if($this->id > 0) { + //* we are editing a existing record + $app->tpl->setVar("edit_disabled", 1); + $app->tpl->setVar("listname_value", $this->dataRecord["listname"]); + $app->tpl->setVar("domain_value", $this->dataRecord["domain"]); + $app->tpl->setVar("email_value", $this->dataRecord["email"]); + } else { + $app->tpl->setVar("edit_disabled", 0); + } + + parent::onShowEnd(); + } + + function onSubmit() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] != 'admin') { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_mailmailinglist, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + //* Check if Domain belongs to user + if(isset($_POST["domain"])) { + $domain = $app->db->queryOneRecord("SELECT domain FROM mail_domain WHERE domain = '".$this->dataRecord["domain"]."' AND ".$app->tform->getAuthSQL('r')); + if($domain["domain"] != $this->dataRecord["domain"]) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + } + + // When the record is updated + if($this->id == 0) { + //Check if email is in use + $check = $app->db->queryOneRecord("SELECT count(source) as number FROM mail_forwarding WHERE source = '".$this->dataRecord["listname"]."@".$this->dataRecord["domain"]."'"); + if($check['number'] != 0) { + $app->error($app->tform->wordbook["email_in_use_txt"]); + } + + $check = $app->db->queryOneRecord("SELECT count(email) as number FROM mail_user WHERE email = '".$this->dataRecord["listname"]."@".$this->dataRecord["domain"]."'"); + if($check['number'] != 0) { + $app->error($app->tform->wordbook["email_in_use_txt"]); + } + + $check = $app->db->queryOneRecord("SELECT count(mailinglist_id) as number FROM mail_mailinglist WHERE listname = '".$this->dataRecord["listname"]."' AND domain = '".$this->dataRecord["domain"]."'"); + if($check['number'] != 0) { + $app->error($app->tform->wordbook["email_in_use_txt"]); + } + + // Check if the user may add another mail_domain + if($client["limit_mailmailinglist"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(mailinglist_id) as number FROM mail_mailinglist WHERE sys_groupid = $client_group_id"); + if($tmp["number"] >= $client["limit_mailmailinglist"]) { + $app->error($app->tform->wordbook["limit_mailmailinglist_txt"]); + } + } + } + + // Clients may not set the client_group_id, so we unset them if user is not a admin + if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); + } + + //* make sure that the email domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + + parent::onSubmit(); + } + + function onBeforeInsert() { + global $app, $conf; + + // Set the server id of the mailinglist = server ID of mail domain. + $domain = $app->db->queryOneRecord("SELECT server_id FROM mail_domain WHERE domain = '".$this->dataRecord["domain"]."'"); + $this->dataRecord["server_id"] = $domain['server_id']; + } + + function onAfterInsert() { + global $app, $conf; + + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE mailinglist_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE mailinglist_id = ".$this->id); + } + } + + function onBeforeUpdate() { + global $app, $conf; + + //* Check if the server has been changed + // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway + if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $rec = $app->db->queryOneRecord("SELECT server_id, domain from mail_mailinglist WHERE mailinglist_id = ".$this->id); + $this->dataRecord["server_id"] = $rec['server_id']; + unset($rec); + //* If the user is neither admin nor reseller + } else { + //* We do not allow users to change a domain which has been created by the admin + $rec = $app->db->queryOneRecord("SELECT domain from mail_mailinglist WHERE mailinglist_id = ".$this->id); + if($rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); + $this->dataRecord["domain"] = $rec['domain']; + } + unset($rec); + } + } + + function onAfterUpdate() { + global $app, $conf; + + // make sure that the record belongs to the clinet group and not the admin group when admin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE mailinglist_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE mail_mailinglist SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE mailinglist_id = ".$this->id); + } + } + +} + +$app->tform_actions = new page_action; +$app->tform_actions->onLoad(); + +?> diff --git a/interface/web/mail/mail_mailinglist_list.php b/interface/web/mail/mail_mailinglist_list.php index b466c522d9..732b14391b 100644 --- a/interface/web/mail/mail_mailinglist_list.php +++ b/interface/web/mail/mail_mailinglist_list.php @@ -1,44 +1,44 @@ -<?php -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/mail_mailinglist.list.php"; - -/****************************************** -* End Form configuration -******************************************/ - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -$app->load('listform_actions'); - - -class list_action extends listform_actions { - - function onShow() { - global $app,$conf; - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('mail'); - - if($global_config['mailmailinglist_link'] == 'y') { - $app->tpl->setVar('mailmailinglist_link',1); - } else { - $app->tpl->setVar('mailmailinglist_link',0); - } - - parent::onShow(); - } - -} - -$list = new list_action; -$list->onLoad(); - - +<?php +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/mail_mailinglist.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +$app->load('listform_actions'); + + +class list_action extends listform_actions { + + function onShow() { + global $app,$conf; + + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('mail'); + + if($global_config['mailmailinglist_link'] == 'y') { + $app->tpl->setVar('mailmailinglist_link',1); + } else { + $app->tpl->setVar('mailmailinglist_link',0); + } + + parent::onShow(); + } + +} + +$list = new list_action; +$list->onLoad(); + + ?> \ No newline at end of file diff --git a/interface/web/mail/mailinglist.php b/interface/web/mail/mailinglist.php index 67b35e179a..9940e64cc4 100644 --- a/interface/web/mail/mailinglist.php +++ b/interface/web/mail/mailinglist.php @@ -1,68 +1,68 @@ -<?php -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -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('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('mail'); - -/* get the id of the mail (must be int!) */ -if (!isset($_GET['id'])){ - die ("No List selected!"); -} -$listId = intval($_GET['id']); - -/* - * Get the data to connect to the database - */ -$dbData = $app->db->queryAllRecords("SELECT server_id, listname FROM mail_mailinglist WHERE mailinglist_id = " . $listId); -$serverId = intval($dbData[0]['server_id']); -if ($serverId == 0){ - die ("No List - Server found!"); -} - -$serverData = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$serverId); - -$app->uses('getconf'); -$global_config = $app->getconf->get_global_config('mail'); - -if($global_config['mailmailinglist_url'] != '') { - header('Location:' . $global_config['mailmailinglist_url']); -} else { - -/* - * We only redirect to the login-form, so there is no need, to check any rights - */ - isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; - header('Location:' . $http . '://' . $serverData['server_name'] . '/cgi-bin/mailman/admin/' . $dbData[0]['listname']); -} -exit; +<?php +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +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('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('mail'); + +/* get the id of the mail (must be int!) */ +if (!isset($_GET['id'])){ + die ("No List selected!"); +} +$listId = intval($_GET['id']); + +/* + * Get the data to connect to the database + */ +$dbData = $app->db->queryAllRecords("SELECT server_id, listname FROM mail_mailinglist WHERE mailinglist_id = " . $listId); +$serverId = intval($dbData[0]['server_id']); +if ($serverId == 0){ + die ("No List - Server found!"); +} + +$serverData = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$serverId); + +$app->uses('getconf'); +$global_config = $app->getconf->get_global_config('mail'); + +if($global_config['mailmailinglist_url'] != '') { + header('Location:' . $global_config['mailmailinglist_url']); +} else { + +/* + * We only redirect to the login-form, so there is no need, to check any rights + */ + isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; + header('Location:' . $http . '://' . $serverData['server_name'] . '/cgi-bin/mailman/admin/' . $dbData[0]['listname']); +} +exit; ?> \ No newline at end of file diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm index 0606ab64d8..af8444cfd4 100644 --- a/interface/web/mail/templates/mail_alias_edit.htm +++ b/interface/web/mail/templates/mail_alias_edit.htm @@ -1,39 +1,39 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_alias"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label"><em>*</em> {tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_local_part" class="blockLabel">Alias<input type="text" id="email_local_part" name="email_local_part" size="20" value="{tmpl_var name='email_local_part'}" class="textInput" /></label> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="alias"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_alias_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_alias_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_alias"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <p class="label"><em>*</em> {tmpl_var name='email_txt'}</p> + <div class="multiField"> + <label for="email_local_part" class="blockLabel">Alias<input type="text" id="email_local_part" name="email_local_part" size="20" value="{tmpl_var name='email_local_part'}" class="textInput" /></label> + <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> + <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> + </div> + </div> + <div class="ctrlHolder"> + <label for="destination">{tmpl_var name='destination_txt'}</label> + <select name="destination" id="destination" class="selectInput"> + {tmpl_var name='destination'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="type" value="alias"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_alias_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_alias_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_blacklist_edit.htm b/interface/web/mail/templates/mail_blacklist_edit.htm index e64fe2d5da..63531fdd83 100644 --- a/interface/web/mail/templates/mail_blacklist_edit.htm +++ b/interface/web/mail/templates/mail_blacklist_edit.htm @@ -1,41 +1,41 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_blacklist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source">{tmpl_var name='source_txt'}</label> - <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="access" type="hidden" value="{tmpl_var name='access'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_blacklist"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="source">{tmpl_var name='source_txt'}</label> + <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="type">{tmpl_var name='type_txt'}</label> + <select name="type" id="type" class="selectInput"> + {tmpl_var name='type'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input name="access" type="hidden" value="{tmpl_var name='access'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_content_filter_edit.htm b/interface/web/mail/templates/mail_content_filter_edit.htm index ffe844e8d2..e93c26c139 100644 --- a/interface/web/mail/templates/mail_content_filter_edit.htm +++ b/interface/web/mail/templates/mail_content_filter_edit.htm @@ -1,50 +1,50 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_content_filter"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="pattern">{tmpl_var name='pattern_txt'}</label> - <input name="pattern" id="pattern" value="{tmpl_var name='pattern'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="data">{tmpl_var name='data_txt'}</label> - <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="action">{tmpl_var name='action_txt'}</label> - <select name="action" id="action" class="selectInput"> - {tmpl_var name='action'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_content_filter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_content_filter_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_content_filter"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="type">{tmpl_var name='type_txt'}</label> + <select name="type" id="type" class="selectInput"> + {tmpl_var name='type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="pattern">{tmpl_var name='pattern_txt'}</label> + <input name="pattern" id="pattern" value="{tmpl_var name='pattern'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="data">{tmpl_var name='data_txt'}</label> + <input name="data" id="data" value="{tmpl_var name='data'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="action">{tmpl_var name='action_txt'}</label> + <select name="action" id="action" class="selectInput"> + {tmpl_var name='action'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_content_filter_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_content_filter_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_domain_admin_list.htm b/interface/web/mail/templates/mail_domain_admin_list.htm index b0e14e5f7f..a2b4ba62e8 100644 --- a/interface/web/mail/templates/mail_domain_admin_list.htm +++ b/interface/web/mail/templates/mail_domain_admin_list.htm @@ -17,27 +17,27 @@ <table class="list"> <thead> <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_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_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_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_domain" scope="col"><tmpl_var name="domain_txt"></th> <th class="tbl_col_buttons" scope="col"> </th> </tr> <tr> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','mail/mail_domain_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> </tr> </thead> <tbody> <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="sys_groupid"}</a></td> + <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> <td class="tbl_col_buttons"> <div class="buttons icons16"> <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> diff --git a/interface/web/mail/templates/mail_domain_catchall_edit.htm b/interface/web/mail/templates/mail_domain_catchall_edit.htm index cd412dde69..90b8af7b44 100644 --- a/interface/web/mail/templates/mail_domain_catchall_edit.htm +++ b/interface/web/mail/templates/mail_domain_catchall_edit.htm @@ -1,38 +1,38 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_domain_catchall"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='email_txt'}</p> - <div class="multiField"> - <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> - <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="type" value="catchall"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_domain_catchall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_domain_catchall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_domain_catchall"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='email_txt'}</p> + <div class="multiField"> + <label for="email_at" class="blockLabel email_at"> <span id="email_at" name="email_at" />@</label> + <label for="email_domain" class="blockLabel">{tmpl_var name='domain_txt'}<select name="email_domain" id="email_domain" class="selectInput">{tmpl_var name='email_domain'}</select></label> + </div> + </div> + <div class="ctrlHolder"> + <label for="destination">{tmpl_var name='destination_txt'}</label> + <select name="destination" id="destination" class="selectInput"> + {tmpl_var name='destination'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="type" value="catchall"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_domain_catchall_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_domain_catchall_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_get_edit.htm b/interface/web/mail/templates/mail_get_edit.htm index 2da485e38d..6d45cdb115 100644 --- a/interface/web/mail/templates/mail_get_edit.htm +++ b/interface/web/mail/templates/mail_get_edit.htm @@ -1,54 +1,54 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_get"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source_server">{tmpl_var name='source_server_txt'}</label> - <input name="source_server" id="source_server" value="{tmpl_var name='source_server'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="source_username">{tmpl_var name='source_username_txt'}</label> - <input name="source_username" id="source_username" value="{tmpl_var name='source_username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="source_password">{tmpl_var name='source_password_txt'}</label> - <input name="source_password" id="source_password" value="{tmpl_var name='source_password'}" size="30" maxlength="255" type="password" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='source_delete_txt'}</p> - <div class="multiField"> - {tmpl_var name='source_delete'} - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <select name="destination" id="destination" class="selectInput"> - {tmpl_var name='destination'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_get_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_get_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_get"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="type">{tmpl_var name='type_txt'}</label> + <select name="type" id="type" class="selectInput"> + {tmpl_var name='type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="source_server">{tmpl_var name='source_server_txt'}</label> + <input name="source_server" id="source_server" value="{tmpl_var name='source_server'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="source_username">{tmpl_var name='source_username_txt'}</label> + <input name="source_username" id="source_username" value="{tmpl_var name='source_username'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="source_password">{tmpl_var name='source_password_txt'}</label> + <input name="source_password" id="source_password" value="{tmpl_var name='source_password'}" size="30" maxlength="255" type="password" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='source_delete_txt'}</p> + <div class="multiField"> + {tmpl_var name='source_delete'} + </div> + </div> + <div class="ctrlHolder"> + <label for="destination">{tmpl_var name='destination_txt'}</label> + <select name="destination" id="destination" class="selectInput"> + {tmpl_var name='destination'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_get_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_get_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_mailinglist_edit.htm b/interface/web/mail/templates/mail_mailinglist_edit.htm index 2ac742ee1b..bbf993df92 100644 --- a/interface/web/mail/templates/mail_mailinglist_edit.htm +++ b/interface/web/mail/templates/mail_mailinglist_edit.htm @@ -1,80 +1,80 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_mailinglist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Mailing List</legend> - <tmpl_if name="is_admin"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <tmpl_if name="is_reseller"> - <div class="ctrlHolder"> - <label for="client_group_id">{tmpl_var name='client_txt'}</label> - <select name="client_group_id" id="client_group_id" class="selectInput"> - {tmpl_var name='client_group_id'} - </select> - </div> - </tmpl_if> - - <tmpl_if name="edit_disabled"> - <div class="ctrlHolder"> - <label for="domain_disabled">{tmpl_var name='domain_txt'}</label> - <select name="domain_disabled" id="domain_disabled" class="selectInput" disabled="disabled"> - {tmpl_var name='domain_option'} - </select> - <input type="hidden" name="domain" value="{tmpl_var name='domain_value'}" /> - </div> - - <div class="ctrlHolder"> - <label for="listname_disabled">{tmpl_var name='listname_txt'}</label> - <input name="listname_disabled" id="listname_disabled" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> - <input type="hidden" name="listname" value="{tmpl_var name='listname_value'}" /> - </div> - <div class="ctrlHolder"> - <label for="email_disabled">{tmpl_var name='email_txt'}</label> - <input name="email_disabled" id="email_disabled" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> - <input type="hidden" name="email" value="{tmpl_var name='email_value'}" /> - </div> - <tmpl_else> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - </div> - <div class="ctrlHolder"> - <label for="listname">{tmpl_var name='listname_txt'}</label> - <input name="listname" id="listname" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </tmpl_if> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_mailinglist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_mailinglist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_mailinglist"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Mailing List</legend> + <tmpl_if name="is_admin"> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='client_txt'}</label> + <select name="client_group_id" id="client_group_id" class="selectInput"> + {tmpl_var name='client_group_id'} + </select> + </div> + </tmpl_if> + + <tmpl_if name="is_reseller"> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='client_txt'}</label> + <select name="client_group_id" id="client_group_id" class="selectInput"> + {tmpl_var name='client_group_id'} + </select> + </div> + </tmpl_if> + + <tmpl_if name="edit_disabled"> + <div class="ctrlHolder"> + <label for="domain_disabled">{tmpl_var name='domain_txt'}</label> + <select name="domain_disabled" id="domain_disabled" class="selectInput" disabled="disabled"> + {tmpl_var name='domain_option'} + </select> + <input type="hidden" name="domain" value="{tmpl_var name='domain_value'}" /> + </div> + + <div class="ctrlHolder"> + <label for="listname_disabled">{tmpl_var name='listname_txt'}</label> + <input name="listname_disabled" id="listname_disabled" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> + <input type="hidden" name="listname" value="{tmpl_var name='listname_value'}" /> + </div> + <div class="ctrlHolder"> + <label for="email_disabled">{tmpl_var name='email_txt'}</label> + <input name="email_disabled" id="email_disabled" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" disabled="disabled" /> + <input type="hidden" name="email" value="{tmpl_var name='email_value'}" /> + </div> + <tmpl_else> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='domain_txt'}</label> + <select name="domain" id="domain" class="selectInput"> + {tmpl_var name='domain_option'} + </select> + </div> + <div class="ctrlHolder"> + <label for="listname">{tmpl_var name='listname_txt'}</label> + <input name="listname" id="listname" value="{tmpl_var name='listname'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="email">{tmpl_var name='email_txt'}</label> + <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </tmpl_if> + <div class="ctrlHolder"> + <label for="password">{tmpl_var name='password_txt'}</label> + <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_mailinglist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_mailinglist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_mailinglist_list.htm b/interface/web/mail/templates/mail_mailinglist_list.htm index 58da87ecc9..37b0be7c8b 100644 --- a/interface/web/mail/templates/mail_mailinglist_list.htm +++ b/interface/web/mail/templates/mail_mailinglist_list.htm @@ -1,53 +1,53 @@ -<h2><tmpl_var name="list_head_txt"></h2> - -<div class="panel panel_list_mail_mailinglist"> - - <div class="pnl_toolsarea"> - <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> - <div class="buttons"> - <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_mailinglist_edit.php');"> - <span>{tmpl_var name="add_new_record_txt"}</span> - </button> - </div> - </fieldset> - </div> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_listname" scope="col"><tmpl_var name="listname_txt"></th> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_listname"><input type="text" name="search_listname" value="{tmpl_var name='search_listname'}" /></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_mailinglist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_listname"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="listname"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <tmpl_if name="mailmailinglist_link"><a class="icons16 icoWebmailer" href="mail/mailinglist.php?id={tmpl_var name='id'}" target="mailmailinglist"><span>{tmpl_var name='delete_txt'}</span></a></tmpl_if> - <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_mailinglist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> + +<div class="panel panel_list_mail_mailinglist"> + + <div class="pnl_toolsarea"> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="iconstxt icoAdd" type="button" onClick="loadContent('mail/mail_mailinglist_edit.php');"> + <span>{tmpl_var name="add_new_record_txt"}</span> + </button> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_listname" scope="col"><tmpl_var name="listname_txt"></th> + <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_buttons" scope="col"> </th> + </tr> + <tr> + <td class="tbl_col_listname"><input type="text" name="search_listname" value="{tmpl_var name='search_listname'}" /></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_mailinglist_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_listname"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="listname"}</a></td> + <td class="tbl_col_domain"><a href="#" onClick="loadContent('mail/mail_mailinglist_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_buttons"> + <div class="buttons icons16"> + <tmpl_if name="mailmailinglist_link"><a class="icons16 icoWebmailer" href="mail/mailinglist.php?id={tmpl_var name='id'}" target="mailmailinglist"><span>{tmpl_var name='delete_txt'}</span></a></tmpl_if> + <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_mailinglist_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </div> + </td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="3"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_relay_recipient_list.htm b/interface/web/mail/templates/mail_relay_recipient_list.htm index 331aa5e2b8..0a648e4264 100644 --- a/interface/web/mail/templates/mail_relay_recipient_list.htm +++ b/interface/web/mail/templates/mail_relay_recipient_list.htm @@ -17,24 +17,24 @@ <table class="list"> <thead> <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_source" scope="col"><tmpl_var name="source_txt"></th> <th class="tbl_col_buttons" scope="col"> </th> </tr> <tr> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','mail/mail_relay_recipient_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','mail/mail_relay_recipient_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> + <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','mail/mail_relay_recipient_list.php');">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','mail/mail_relay_recipient_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_source"><input type="text" name="search_source" value="{tmpl_var name='search_source'}" /></td> <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_relay_recipient_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> </tr> </thead> <tbody> <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> + <td class="tbl_col_active"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_server_id"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_source"><a href="#" onClick="loadContent('mail/mail_relay_recipient_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="source"}</a></td> <td class="tbl_col_buttons"> <div class="buttons icons16"> <a class="icons16 icoDelete" href="javascript: del_record('mail/mail_relay_recipient_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> diff --git a/interface/web/mail/templates/mail_transport_edit.htm b/interface/web/mail/templates/mail_transport_edit.htm index 5f16db3662..b6e1c9762c 100644 --- a/interface/web/mail/templates/mail_transport_edit.htm +++ b/interface/web/mail/templates/mail_transport_edit.htm @@ -1,56 +1,56 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_transport"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput formLengthHalf"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='mx_txt'}</p> - <div class="multiField"> - <input type="checkbox" value="y" id="mx" name="mx" {tmpl_var name='mx'} /> - </div> - </div> - <div class="ctrlHolder"> - <label for="destination">{tmpl_var name='destination_txt'}</label> - <input name="destination" id="transport" value="{tmpl_var name='destination'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="sort_order">{tmpl_var name='sort_order_txt'}</label> - <select name="sort_order" id="sort_order" class="selectInput formLengthHalf"> - {tmpl_var name='sort_order'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_transport_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_transport_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_transport"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='domain_txt'}</label> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="type">{tmpl_var name='type_txt'}</label> + <select name="type" id="type" class="selectInput formLengthHalf"> + {tmpl_var name='type'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='mx_txt'}</p> + <div class="multiField"> + <input type="checkbox" value="y" id="mx" name="mx" {tmpl_var name='mx'} /> + </div> + </div> + <div class="ctrlHolder"> + <label for="destination">{tmpl_var name='destination_txt'}</label> + <input name="destination" id="transport" value="{tmpl_var name='destination'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="sort_order">{tmpl_var name='sort_order_txt'}</label> + <select name="sort_order" id="sort_order" class="selectInput formLengthHalf"> + {tmpl_var name='sort_order'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_transport_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_transport_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_user_custom_rules_edit.htm b/interface/web/mail/templates/mail_user_custom_rules_edit.htm index 0ca1b3c6ec..33d597d9be 100644 --- a/interface/web/mail/templates/mail_user_custom_rules_edit.htm +++ b/interface/web/mail/templates/mail_user_custom_rules_edit.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="custom_mailfilter">{tmpl_var name='custom_mailfilter_txt'}</label> - <textarea name="custom_mailfilter" id="custom_mailfilter" rows='15' cols='30'>{tmpl_var name='custom_mailfilter'}</textarea> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="custom_mailfilter">{tmpl_var name='custom_mailfilter_txt'}</label> + <textarea name="custom_mailfilter" id="custom_mailfilter" rows='15' cols='30'>{tmpl_var name='custom_mailfilter'}</textarea> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_user_stats_list.htm b/interface/web/mail/templates/mail_user_stats_list.htm index 47e4b07b67..b7f0d28ae5 100644 --- a/interface/web/mail/templates/mail_user_stats_list.htm +++ b/interface/web/mail/templates/mail_user_stats_list.htm @@ -1,52 +1,52 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_mail_user_stats"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> - <th class="tbl_col_this_month" scope="col"><tmpl_var name="this_month_txt"></th> - <th class="tbl_col_last_month" scope="col"><tmpl_var name="last_month_txt"></th> - <th class="tbl_col_this_year" scope="col"><tmpl_var name="this_year_txt"></th> - <th class="tbl_col_last_year" scope="col"><tmpl_var name="last_year_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> - <td class="tbl_col_this_month"></td> - <td class="tbl_col_last_month"></td> - <td class="tbl_col_this_year"></td> - <td class="tbl_col_last_year"></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_user_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> - <td class="tbl_col_this_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"} MB</a></td> - <td class="tbl_col_last_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"} MB</a></td> - <td class="tbl_col_this_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"} MB</a></td> - <td class="tbl_col_last_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"} MB</a></td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_mail_user_stats"> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_email" scope="col"><tmpl_var name="email_txt"></th> + <th class="tbl_col_this_month" scope="col"><tmpl_var name="this_month_txt"></th> + <th class="tbl_col_last_month" scope="col"><tmpl_var name="last_month_txt"></th> + <th class="tbl_col_this_year" scope="col"><tmpl_var name="this_year_txt"></th> + <th class="tbl_col_last_year" scope="col"><tmpl_var name="last_year_txt"></th> + <th class="tbl_col_buttons" scope="col"> </th> + </tr> + <tr> + <td class="tbl_col_email"><input type="text" name="search_email" value="{tmpl_var name='search_email'}" /></td> + <td class="tbl_col_this_month"></td> + <td class="tbl_col_last_month"></td> + <td class="tbl_col_this_year"></td> + <td class="tbl_col_last_year"></td> + <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','mail/mail_user_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_email"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="email"}</a></td> + <td class="tbl_col_this_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"} MB</a></td> + <td class="tbl_col_last_month"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"} MB</a></td> + <td class="tbl_col_this_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"} MB</a></td> + <td class="tbl_col_last_year"><a href="#" onClick="loadContent('mail/mail_user_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"} MB</a></td> + <td class="tbl_col_buttons"> + <div class="buttons icons16"> + </div> + </td> + </tr> + </tmpl_loop> + </tbody> + + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/mail/templates/mail_whitelist_edit.htm b/interface/web/mail/templates/mail_whitelist_edit.htm index d8e6b8b53b..dc31da2df1 100644 --- a/interface/web/mail/templates/mail_whitelist_edit.htm +++ b/interface/web/mail/templates/mail_whitelist_edit.htm @@ -1,41 +1,41 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_mail_whitelist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="source">{tmpl_var name='source_txt'}</label> - <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="type">{tmpl_var name='type_txt'}</label> - <select name="type" id="type" class="selectInput"> - {tmpl_var name='type'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input name="access" type="hidden" value="{tmpl_var name='access'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_mail_whitelist"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="source">{tmpl_var name='source_txt'}</label> + <input name="source" id="source" value="{tmpl_var name='source'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="type">{tmpl_var name='type_txt'}</label> + <select name="type" id="type" class="selectInput"> + {tmpl_var name='type'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input name="access" type="hidden" value="{tmpl_var name='access'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/mail_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/mail_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_blacklist_edit.htm b/interface/web/mail/templates/spamfilter_blacklist_edit.htm index 36058d9a4c..750c4b1e21 100644 --- a/interface/web/mail/templates/spamfilter_blacklist_edit.htm +++ b/interface/web/mail/templates/spamfilter_blacklist_edit.htm @@ -1,49 +1,49 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_blacklist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> -<!-- - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> ---> - <div class="ctrlHolder"> - <label for="rid">{tmpl_var name='rid_txt'}</label> - <select name="rid" id="rid" class="selectInput"> - {tmpl_var name='rid'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthHalf"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_blacklist"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> +<!-- + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> +--> + <div class="ctrlHolder"> + <label for="rid">{tmpl_var name='rid_txt'}</label> + <select name="rid" id="rid" class="selectInput"> + {tmpl_var name='rid'} + </select> + </div> + <div class="ctrlHolder"> + <label for="email">{tmpl_var name='email_txt'}</label> + <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="priority">{tmpl_var name='priority_txt'}</label> + <select name="priority" id="priority" class="selectInput formLengthHalf"> + {tmpl_var name='priority'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_blacklist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_blacklist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_config_getmail_edit.htm b/interface/web/mail/templates/spamfilter_config_getmail_edit.htm index 1bdb88675b..49f5ff1a63 100644 --- a/interface/web/mail/templates/spamfilter_config_getmail_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_getmail_edit.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="getmail_config_dir" class="wf_preField">{tmpl_var name='getmail_config_dir_txt'}</label> - <input type="text" id="getmail_config_dir" name="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_config"> + + <div class="pnl_formsarea"> + <fieldset id="wf_area_spamfilter_config"> + <span class="wf_oneField"> + <label for="getmail_config_dir" class="wf_preField">{tmpl_var name='getmail_config_dir_txt'}</label> + <input type="text" id="getmail_config_dir" name="getmail_config_dir" value="{tmpl_var name='getmail_config_dir'}" size="40" maxlength="255"> + </span> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="wf_actions buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_config_mail_edit.htm b/interface/web/mail/templates/spamfilter_config_mail_edit.htm index 3526589ab1..50d43cdaf2 100644 --- a/interface/web/mail/templates/spamfilter_config_mail_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_mail_edit.htm @@ -1,66 +1,66 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="module" class="wf_preField">{tmpl_var name='module_txt'}</label> - <select id="module" name="module">{tmpl_var name='module'}</select> - </span> - <span class="wf_oneField"> - <label for="maildir_path" class="wf_preField">{tmpl_var name='maildir_path_txt'}</label> - <input type="text" id="maildir_path" name="maildir_path" value="{tmpl_var name='maildir_path'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="homedir_path" class="wf_preField">{tmpl_var name='homedir_path_txt'}</label> - <input type="text" id="homedir_path" name="homedir_path" value="{tmpl_var name='homedir_path'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_uid" class="wf_preField">{tmpl_var name='mailuser_uid_txt'}</label> - <input type="text" id="mailuser_uid" name="mailuser_uid" value="{tmpl_var name='mailuser_uid'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_gid" class="wf_preField">{tmpl_var name='mailuser_gid_txt'}</label> - <input type="text" id="mailuser_gid" name="mailuser_gid" value="{tmpl_var name='mailuser_gid'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_name" class="wf_preField">{tmpl_var name='mailuser_name_txt'}</label> - <input type="text" id="mailuser_name" name="mailuser_name" value="{tmpl_var name='mailuser_name'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailuser_group" class="wf_preField">{tmpl_var name='mailuser_group_txt'}</label> - <input type="text" id="mailuser_group" name="mailuser_group" value="{tmpl_var name='mailuser_group'}" size="10" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost" class="wf_preField">{tmpl_var name='relayhost_txt'}</label> - <input type="text" id="relayhost" name="relayhost" value="{tmpl_var name='relayhost'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost_user" class="wf_preField">{tmpl_var name='relayhost_user_txt'}</label> - <input type="text" id="relayhost_user" name="relayhost_user" value="{tmpl_var name='relayhost_user'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="relayhost_password" class="wf_preField">{tmpl_var name='relayhost_password_txt'}</label> - <input type="text" id="relayhost_password" name="relayhost_password" value="{tmpl_var name='relayhost_password'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="mailbox_size_limit" class="wf_preField">{tmpl_var name='mailbox_size_limit_txt'}</label> - <input type="text" id="mailbox_size_limit" name="mailbox_size_limit" value="{tmpl_var name='mailbox_size_limit'}" size="10" maxlength="15"> - </span> - <span class="wf_oneField"> - <label for="message_size_limit" class="wf_preField">{tmpl_var name='message_size_limit_txt'}</label> - <input type="text" id="message_size_limit" name="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="15"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_config"> + + <div class="pnl_formsarea"> + <fieldset id="wf_area_spamfilter_config"> + <span class="wf_oneField"> + <label for="module" class="wf_preField">{tmpl_var name='module_txt'}</label> + <select id="module" name="module">{tmpl_var name='module'}</select> + </span> + <span class="wf_oneField"> + <label for="maildir_path" class="wf_preField">{tmpl_var name='maildir_path_txt'}</label> + <input type="text" id="maildir_path" name="maildir_path" value="{tmpl_var name='maildir_path'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="homedir_path" class="wf_preField">{tmpl_var name='homedir_path_txt'}</label> + <input type="text" id="homedir_path" name="homedir_path" value="{tmpl_var name='homedir_path'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="mailuser_uid" class="wf_preField">{tmpl_var name='mailuser_uid_txt'}</label> + <input type="text" id="mailuser_uid" name="mailuser_uid" value="{tmpl_var name='mailuser_uid'}" size="10" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="mailuser_gid" class="wf_preField">{tmpl_var name='mailuser_gid_txt'}</label> + <input type="text" id="mailuser_gid" name="mailuser_gid" value="{tmpl_var name='mailuser_gid'}" size="10" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="mailuser_name" class="wf_preField">{tmpl_var name='mailuser_name_txt'}</label> + <input type="text" id="mailuser_name" name="mailuser_name" value="{tmpl_var name='mailuser_name'}" size="10" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="mailuser_group" class="wf_preField">{tmpl_var name='mailuser_group_txt'}</label> + <input type="text" id="mailuser_group" name="mailuser_group" value="{tmpl_var name='mailuser_group'}" size="10" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="relayhost" class="wf_preField">{tmpl_var name='relayhost_txt'}</label> + <input type="text" id="relayhost" name="relayhost" value="{tmpl_var name='relayhost'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="relayhost_user" class="wf_preField">{tmpl_var name='relayhost_user_txt'}</label> + <input type="text" id="relayhost_user" name="relayhost_user" value="{tmpl_var name='relayhost_user'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="relayhost_password" class="wf_preField">{tmpl_var name='relayhost_password_txt'}</label> + <input type="text" id="relayhost_password" name="relayhost_password" value="{tmpl_var name='relayhost_password'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="mailbox_size_limit" class="wf_preField">{tmpl_var name='mailbox_size_limit_txt'}</label> + <input type="text" id="mailbox_size_limit" name="mailbox_size_limit" value="{tmpl_var name='mailbox_size_limit'}" size="10" maxlength="15"> + </span> + <span class="wf_oneField"> + <label for="message_size_limit" class="wf_preField">{tmpl_var name='message_size_limit_txt'}</label> + <input type="text" id="message_size_limit" name="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="15"> + </span> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="wf_actions buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_config_server_edit.htm b/interface/web/mail/templates/spamfilter_config_server_edit.htm index ac45009fd2..e5b5428798 100644 --- a/interface/web/mail/templates/spamfilter_config_server_edit.htm +++ b/interface/web/mail/templates/spamfilter_config_server_edit.htm @@ -1,38 +1,38 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_config"> - - <div class="pnl_formsarea"> - <fieldset id="wf_area_spamfilter_config"> - <span class="wf_oneField"> - <label for="ip_address" class="wf_preField">{tmpl_var name='ip_address_txt'}</label> - <input type="text" id="ip_address" name="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="netmask" class="wf_preField">{tmpl_var name='netmask_txt'}</label> - <input type="text" id="netmask" name="netmask" value="{tmpl_var name='netmask'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="gateway" class="wf_preField">{tmpl_var name='gateway_txt'}</label> - <input type="text" id="gateway" name="gateway" value="{tmpl_var name='gateway'}" size="15" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="hostname" class="wf_preField">{tmpl_var name='hostname_txt'}</label> - <input type="text" id="hostname" name="hostname" value="{tmpl_var name='hostname'}" size="40" maxlength="255"> - </span> - <span class="wf_oneField"> - <label for="nameservers" class="wf_preField">{tmpl_var name='nameservers_txt'}</label> - <input type="text" id="nameservers" name="nameservers" value="{tmpl_var name='nameservers'}" size="40" maxlength="255"> - </span> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="wf_actions buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_config"> + + <div class="pnl_formsarea"> + <fieldset id="wf_area_spamfilter_config"> + <span class="wf_oneField"> + <label for="ip_address" class="wf_preField">{tmpl_var name='ip_address_txt'}</label> + <input type="text" id="ip_address" name="ip_address" value="{tmpl_var name='ip_address'}" size="15" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="netmask" class="wf_preField">{tmpl_var name='netmask_txt'}</label> + <input type="text" id="netmask" name="netmask" value="{tmpl_var name='netmask'}" size="15" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="gateway" class="wf_preField">{tmpl_var name='gateway_txt'}</label> + <input type="text" id="gateway" name="gateway" value="{tmpl_var name='gateway'}" size="15" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="hostname" class="wf_preField">{tmpl_var name='hostname_txt'}</label> + <input type="text" id="hostname" name="hostname" value="{tmpl_var name='hostname'}" size="40" maxlength="255"> + </span> + <span class="wf_oneField"> + <label for="nameservers" class="wf_preField">{tmpl_var name='nameservers_txt'}</label> + <input type="text" id="nameservers" name="nameservers" value="{tmpl_var name='nameservers'}" size="40" maxlength="255"> + </span> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="wf_actions buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_config_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_config_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_other_edit.htm b/interface/web/mail/templates/spamfilter_other_edit.htm index 76889a6a94..6b8c739da3 100644 --- a/interface/web/mail/templates/spamfilter_other_edit.htm +++ b/interface/web/mail/templates/spamfilter_other_edit.htm @@ -1,80 +1,80 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="addr_extension_virus">{tmpl_var name='addr_extension_virus_txt'}</label> - <input name="addr_extension_virus" id="addr_extension_virus" value="{tmpl_var name='addr_extension_virus'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_spam">{tmpl_var name='addr_extension_spam_txt'}</label> - <input name="addr_extension_spam" id="addr_extension_spam" value="{tmpl_var name='addr_extension_spam'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_banned">{tmpl_var name='addr_extension_banned_txt'}</label> - <input name="addr_extension_banned" id="addr_extension_banned" value="{tmpl_var name='addr_extension_banned'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="addr_extension_bad_header">{tmpl_var name='addr_extension_bad_header_txt'}</label> - <input name="addr_extension_bad_header" id="addr_extension_bad_header" value="{tmpl_var name='addr_extension_bad_header'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="warnvirusrecip">{tmpl_var name='warnvirusrecip_txt'}</label> - <select name="warnvirusrecip" id="warnvirusrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnvirusrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="warnbannedrecip">{tmpl_var name='warnbannedrecip_txt'}</label> - <select name="warnbannedrecip" id="warnbannedrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnbannedrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="warnbadhrecip">{tmpl_var name='warnbadhrecip_txt'}</label> - <select name="warnbadhrecip" id="warnbadhrecip" class="selectInput formLengthBool"> - {tmpl_var name='warnbadhrecip'} - </select> - </div> - <div class="ctrlHolder"> - <label for="newvirus_admin">{tmpl_var name='newvirus_admin_txt'}</label> - <input name="newvirus_admin" id="newvirus_admin" value="{tmpl_var name='newvirus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="virus_admin">{tmpl_var name='virus_admin_txt'}</label> - <input name="virus_admin" id="virus_admin" value="{tmpl_var name='virus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="banned_admin">{tmpl_var name='banned_admin_txt'}</label> - <input name="banned_admin" id="banned_admin" value="{tmpl_var name='banned_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bad_header_admin">{tmpl_var name='bad_header_admin_txt'}</label> - <input name="bad_header_admin" id="bad_header_admin" value="{tmpl_var name='bad_header_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_admin">{tmpl_var name='spam_admin_txt'}</label> - <input name="spam_admin" id="spam_admin" value="{tmpl_var name='spam_admin'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="message_size_limit">{tmpl_var name='message_size_limit_txt'}</label> - <input name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> Bytes - </div> - <div class="ctrlHolder"> - <label for="banned_rulenames">{tmpl_var name='banned_rulenames_txt'}</label> - <input name="banned_rulenames" id="banned_rulenames" value="{tmpl_var name='banned_rulenames'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_policy"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="addr_extension_virus">{tmpl_var name='addr_extension_virus_txt'}</label> + <input name="addr_extension_virus" id="addr_extension_virus" value="{tmpl_var name='addr_extension_virus'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="addr_extension_spam">{tmpl_var name='addr_extension_spam_txt'}</label> + <input name="addr_extension_spam" id="addr_extension_spam" value="{tmpl_var name='addr_extension_spam'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="addr_extension_banned">{tmpl_var name='addr_extension_banned_txt'}</label> + <input name="addr_extension_banned" id="addr_extension_banned" value="{tmpl_var name='addr_extension_banned'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="addr_extension_bad_header">{tmpl_var name='addr_extension_bad_header_txt'}</label> + <input name="addr_extension_bad_header" id="addr_extension_bad_header" value="{tmpl_var name='addr_extension_bad_header'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="warnvirusrecip">{tmpl_var name='warnvirusrecip_txt'}</label> + <select name="warnvirusrecip" id="warnvirusrecip" class="selectInput formLengthBool"> + {tmpl_var name='warnvirusrecip'} + </select> + </div> + <div class="ctrlHolder"> + <label for="warnbannedrecip">{tmpl_var name='warnbannedrecip_txt'}</label> + <select name="warnbannedrecip" id="warnbannedrecip" class="selectInput formLengthBool"> + {tmpl_var name='warnbannedrecip'} + </select> + </div> + <div class="ctrlHolder"> + <label for="warnbadhrecip">{tmpl_var name='warnbadhrecip_txt'}</label> + <select name="warnbadhrecip" id="warnbadhrecip" class="selectInput formLengthBool"> + {tmpl_var name='warnbadhrecip'} + </select> + </div> + <div class="ctrlHolder"> + <label for="newvirus_admin">{tmpl_var name='newvirus_admin_txt'}</label> + <input name="newvirus_admin" id="newvirus_admin" value="{tmpl_var name='newvirus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="virus_admin">{tmpl_var name='virus_admin_txt'}</label> + <input name="virus_admin" id="virus_admin" value="{tmpl_var name='virus_admin'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="banned_admin">{tmpl_var name='banned_admin_txt'}</label> + <input name="banned_admin" id="banned_admin" value="{tmpl_var name='banned_admin'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="bad_header_admin">{tmpl_var name='bad_header_admin_txt'}</label> + <input name="bad_header_admin" id="bad_header_admin" value="{tmpl_var name='bad_header_admin'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="spam_admin">{tmpl_var name='spam_admin_txt'}</label> + <input name="spam_admin" id="spam_admin" value="{tmpl_var name='spam_admin'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="message_size_limit">{tmpl_var name='message_size_limit_txt'}</label> + <input name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> Bytes + </div> + <div class="ctrlHolder"> + <label for="banned_rulenames">{tmpl_var name='banned_rulenames_txt'}</label> + <input name="banned_rulenames" id="banned_rulenames" value="{tmpl_var name='banned_rulenames'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm index b725df5fb3..6a0d2acd4a 100644 --- a/interface/web/mail/templates/spamfilter_policy_edit.htm +++ b/interface/web/mail/templates/spamfilter_policy_edit.htm @@ -1,64 +1,64 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="policy_name">{tmpl_var name='policy_name_txt'}</label> - <input name="policy_name" id="policy_name" value="{tmpl_var name='policy_name'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="virus_lover">{tmpl_var name='virus_lover_txt'}</label> - <select name="virus_lover" id="virus_lover" class="selectInput formLengthBool"> - {tmpl_var name='virus_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="spam_lover">{tmpl_var name='spam_lover_txt'}</label> - <select name="spam_lover" id="spam_lover" class="selectInput formLengthBool"> - {tmpl_var name='spam_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="banned_files_lover">{tmpl_var name='banned_files_lover_txt'}</label> - <select name="banned_files_lover" id="banned_files_lover" class="selectInput formLengthBool"> - {tmpl_var name='banned_files_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bad_header_lover">{tmpl_var name='bad_header_lover_txt'}</label> - <select name="bad_header_lover" id="bad_header_lover" class="selectInput formLengthBool"> - {tmpl_var name='bad_header_lover'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_virus_checks">{tmpl_var name='bypass_virus_checks_txt'}</label> - <select name="bypass_virus_checks" id="bypass_virus_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_virus_checks'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_banned_checks">{tmpl_var name='bypass_banned_checks_txt'}</label> - <select name="bypass_banned_checks" id="bypass_banned_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_banned_checks'} - </select> - </div> - <div class="ctrlHolder"> - <label for="bypass_header_checks">{tmpl_var name='bypass_header_checks_txt'}</label> - <select name="bypass_header_checks" id="bypass_header_checks" class="selectInput formLengthBool"> - {tmpl_var name='bypass_header_checks'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_policy"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="policy_name">{tmpl_var name='policy_name_txt'}</label> + <input name="policy_name" id="policy_name" value="{tmpl_var name='policy_name'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="virus_lover">{tmpl_var name='virus_lover_txt'}</label> + <select name="virus_lover" id="virus_lover" class="selectInput formLengthBool"> + {tmpl_var name='virus_lover'} + </select> + </div> + <div class="ctrlHolder"> + <label for="spam_lover">{tmpl_var name='spam_lover_txt'}</label> + <select name="spam_lover" id="spam_lover" class="selectInput formLengthBool"> + {tmpl_var name='spam_lover'} + </select> + </div> + <div class="ctrlHolder"> + <label for="banned_files_lover">{tmpl_var name='banned_files_lover_txt'}</label> + <select name="banned_files_lover" id="banned_files_lover" class="selectInput formLengthBool"> + {tmpl_var name='banned_files_lover'} + </select> + </div> + <div class="ctrlHolder"> + <label for="bad_header_lover">{tmpl_var name='bad_header_lover_txt'}</label> + <select name="bad_header_lover" id="bad_header_lover" class="selectInput formLengthBool"> + {tmpl_var name='bad_header_lover'} + </select> + </div> + <div class="ctrlHolder"> + <label for="bypass_virus_checks">{tmpl_var name='bypass_virus_checks_txt'}</label> + <select name="bypass_virus_checks" id="bypass_virus_checks" class="selectInput formLengthBool"> + {tmpl_var name='bypass_virus_checks'} + </select> + </div> + <div class="ctrlHolder"> + <label for="bypass_banned_checks">{tmpl_var name='bypass_banned_checks_txt'}</label> + <select name="bypass_banned_checks" id="bypass_banned_checks" class="selectInput formLengthBool"> + {tmpl_var name='bypass_banned_checks'} + </select> + </div> + <div class="ctrlHolder"> + <label for="bypass_header_checks">{tmpl_var name='bypass_header_checks_txt'}</label> + <select name="bypass_header_checks" id="bypass_header_checks" class="selectInput formLengthBool"> + {tmpl_var name='bypass_header_checks'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_quarantine_edit.htm b/interface/web/mail/templates/spamfilter_quarantine_edit.htm index de33b33c8c..565ec84de6 100644 --- a/interface/web/mail/templates/spamfilter_quarantine_edit.htm +++ b/interface/web/mail/templates/spamfilter_quarantine_edit.htm @@ -1,44 +1,44 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="virus_quarantine_to">{tmpl_var name='virus_quarantine_to_txt'}</label> - <input name="virus_quarantine_to" id="virus_quarantine_to" value="{tmpl_var name='virus_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_quarantine_to">{tmpl_var name='spam_quarantine_to_txt'}</label> - <input name="spam_quarantine_to" id="spam_quarantine_to" value="{tmpl_var name='spam_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="banned_quarantine_to">{tmpl_var name='banned_quarantine_to_txt'}</label> - <input name="banned_quarantine_to" id="banned_quarantine_to" value="{tmpl_var name='banned_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="bad_header_quarantine_to">{tmpl_var name='bad_header_quarantine_to_txt'}</label> - <input name="bad_header_quarantine_to" id="bad_header_quarantine_to" value="{tmpl_var name='bad_header_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> -<!-- - <div class="ctrlHolder"> - <label for="clean_quarantine_to">{tmpl_var name='clean_quarantine_to_txt'}</label> - <input name="clean_quarantine_to" id="clean_quarantine_to" value="{tmpl_var name='clean_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="other_quarantine_to">{tmpl_var name='other_quarantine_to_txt'}</label> - <input name="other_quarantine_to" id="other_quarantine_to" value="{tmpl_var name='other_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> ---> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_policy"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="virus_quarantine_to">{tmpl_var name='virus_quarantine_to_txt'}</label> + <input name="virus_quarantine_to" id="virus_quarantine_to" value="{tmpl_var name='virus_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="spam_quarantine_to">{tmpl_var name='spam_quarantine_to_txt'}</label> + <input name="spam_quarantine_to" id="spam_quarantine_to" value="{tmpl_var name='spam_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="banned_quarantine_to">{tmpl_var name='banned_quarantine_to_txt'}</label> + <input name="banned_quarantine_to" id="banned_quarantine_to" value="{tmpl_var name='banned_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="bad_header_quarantine_to">{tmpl_var name='bad_header_quarantine_to_txt'}</label> + <input name="bad_header_quarantine_to" id="bad_header_quarantine_to" value="{tmpl_var name='bad_header_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> +<!-- + <div class="ctrlHolder"> + <label for="clean_quarantine_to">{tmpl_var name='clean_quarantine_to_txt'}</label> + <input name="clean_quarantine_to" id="clean_quarantine_to" value="{tmpl_var name='clean_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="other_quarantine_to">{tmpl_var name='other_quarantine_to_txt'}</label> + <input name="other_quarantine_to" id="other_quarantine_to" value="{tmpl_var name='other_quarantine_to'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> +--> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm index aef98d3d24..e111a24ed5 100644 --- a/interface/web/mail/templates/spamfilter_taglevel_edit.htm +++ b/interface/web/mail/templates/spamfilter_taglevel_edit.htm @@ -1,52 +1,52 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_policy"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="spam_tag_level">{tmpl_var name='spam_tag_level_txt'}</label> - <input name="spam_tag_level" id="spam_tag_level" value="{tmpl_var name='spam_tag_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_tag2_level">{tmpl_var name='spam_tag2_level_txt'}</label> - <input name="spam_tag2_level" id="spam_tag2_level" value="{tmpl_var name='spam_tag2_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_kill_level">{tmpl_var name='spam_kill_level_txt'}</label> - <input name="spam_kill_level" id="spam_kill_level" value="{tmpl_var name='spam_kill_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_dsn_cutoff_level">{tmpl_var name='spam_dsn_cutoff_level_txt'}</label> - <input name="spam_dsn_cutoff_level" id="spam_dsn_cutoff_level" value="{tmpl_var name='spam_dsn_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_quarantine_cutoff_level">{tmpl_var name='spam_quarantine_cutoff_level_txt'}</label> - <input name="spam_quarantine_cutoff_level" id="spam_quarantine_cutoff_level" value="{tmpl_var name='spam_quarantine_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> - </div> - <div class="ctrlHolder"> - <label for="spam_modifies_subj">{tmpl_var name='spam_modifies_subj_txt'}</label> - <select name="spam_modifies_subj" id="spam_modifies_subj" class="selectInput formLengthBool"> - {tmpl_var name='spam_modifies_subj'} - </select> - </div> - <div class="ctrlHolder"> - <label for="spam_subject_tag">{tmpl_var name='spam_subject_tag_txt'}</label> - <input name="spam_subject_tag" id="spam_subject_tag" value="{tmpl_var name='spam_subject_tag'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="spam_subject_tag2">{tmpl_var name='spam_subject_tag2_txt'}</label> - <input name="spam_subject_tag2" id="spam_subject_tag2" value="{tmpl_var name='spam_subject_tag2'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_policy"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="spam_tag_level">{tmpl_var name='spam_tag_level_txt'}</label> + <input name="spam_tag_level" id="spam_tag_level" value="{tmpl_var name='spam_tag_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="spam_tag2_level">{tmpl_var name='spam_tag2_level_txt'}</label> + <input name="spam_tag2_level" id="spam_tag2_level" value="{tmpl_var name='spam_tag2_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="spam_kill_level">{tmpl_var name='spam_kill_level_txt'}</label> + <input name="spam_kill_level" id="spam_kill_level" value="{tmpl_var name='spam_kill_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="spam_dsn_cutoff_level">{tmpl_var name='spam_dsn_cutoff_level_txt'}</label> + <input name="spam_dsn_cutoff_level" id="spam_dsn_cutoff_level" value="{tmpl_var name='spam_dsn_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="spam_quarantine_cutoff_level">{tmpl_var name='spam_quarantine_cutoff_level_txt'}</label> + <input name="spam_quarantine_cutoff_level" id="spam_quarantine_cutoff_level" value="{tmpl_var name='spam_quarantine_cutoff_level'}" size="10" maxlength="255" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> + <label for="spam_modifies_subj">{tmpl_var name='spam_modifies_subj_txt'}</label> + <select name="spam_modifies_subj" id="spam_modifies_subj" class="selectInput formLengthBool"> + {tmpl_var name='spam_modifies_subj'} + </select> + </div> + <div class="ctrlHolder"> + <label for="spam_subject_tag">{tmpl_var name='spam_subject_tag_txt'}</label> + <input name="spam_subject_tag" id="spam_subject_tag" value="{tmpl_var name='spam_subject_tag'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="spam_subject_tag2">{tmpl_var name='spam_subject_tag2_txt'}</label> + <input name="spam_subject_tag2" id="spam_subject_tag2" value="{tmpl_var name='spam_subject_tag2'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_policy_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_policy_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_users_edit.htm b/interface/web/mail/templates/spamfilter_users_edit.htm index 01d5699228..86520a513a 100644 --- a/interface/web/mail/templates/spamfilter_users_edit.htm +++ b/interface/web/mail/templates/spamfilter_users_edit.htm @@ -1,50 +1,50 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_users"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthLimit"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <label for="policy_id">{tmpl_var name='policy_id_txt'}</label> - <select name="policy_id" id="policy_id" class="selectInput"> - {tmpl_var name='policy_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="fullname">{tmpl_var name='fullname_txt'}</label> - <input name="fullname" id="fullname" value="{tmpl_var name='fullname'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="local">{tmpl_var name='local_txt'}</label> - <select name="local" id="local" class="selectInput formLengthBool"> - {tmpl_var name='local'} - </select> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_users"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="priority">{tmpl_var name='priority_txt'}</label> + <select name="priority" id="priority" class="selectInput formLengthLimit"> + {tmpl_var name='priority'} + </select> + </div> + <div class="ctrlHolder"> + <label for="policy_id">{tmpl_var name='policy_id_txt'}</label> + <select name="policy_id" id="policy_id" class="selectInput"> + {tmpl_var name='policy_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="email">{tmpl_var name='email_txt'}</label> + <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="fullname">{tmpl_var name='fullname_txt'}</label> + <input name="fullname" id="fullname" value="{tmpl_var name='fullname'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="local">{tmpl_var name='local_txt'}</label> + <select name="local" id="local" class="selectInput formLengthBool"> + {tmpl_var name='local'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_users_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_users_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/mail/templates/spamfilter_whitelist_edit.htm b/interface/web/mail/templates/spamfilter_whitelist_edit.htm index 3ef8f5fb2f..138364b765 100644 --- a/interface/web/mail/templates/spamfilter_whitelist_edit.htm +++ b/interface/web/mail/templates/spamfilter_whitelist_edit.htm @@ -1,49 +1,49 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_spamfilter_whitelist"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> -<!-- - <div class="ctrlHolder"> - <label for="server_id">{tmpl_var name='server_id_txt'}</label> - <select name="server_id" id="server_id" class="selectInput"> - {tmpl_var name='server_id'} - </select> - </div> ---> - <div class="ctrlHolder"> - <label for="rid">{tmpl_var name='rid_txt'}</label> - <select name="rid" id="rid" class="selectInput"> - {tmpl_var name='rid'} - </select> - </div> - <div class="ctrlHolder"> - <label for="email">{tmpl_var name='email_txt'}</label> - <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="priority">{tmpl_var name='priority_txt'}</label> - <select name="priority" id="priority" class="selectInput formLengthHalf"> - {tmpl_var name='priority'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_spamfilter_whitelist"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> +<!-- + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> +--> + <div class="ctrlHolder"> + <label for="rid">{tmpl_var name='rid_txt'}</label> + <select name="rid" id="rid" class="selectInput"> + {tmpl_var name='rid'} + </select> + </div> + <div class="ctrlHolder"> + <label for="email">{tmpl_var name='email_txt'}</label> + <input name="email" id="email" value="{tmpl_var name='email'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="priority">{tmpl_var name='priority_txt'}</label> + <select name="priority" id="priority" class="selectInput formLengthHalf"> + {tmpl_var name='priority'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input type="hidden" name="wb" value="{tmpl_var name='wb'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','mail/spamfilter_whitelist_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('mail/spamfilter_whitelist_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/monitor/lib/admin.conf.php b/interface/web/monitor/lib/admin.conf.php index a45d440345..67c94a5742 100644 --- a/interface/web/monitor/lib/admin.conf.php +++ b/interface/web/monitor/lib/admin.conf.php @@ -1,2 +1,2 @@ -<?php +<?php ?> \ No newline at end of file diff --git a/interface/web/monitor/templates/datalog_list.htm b/interface/web/monitor/templates/datalog_list.htm index 93eede0574..0ddba820ac 100644 --- a/interface/web/monitor/templates/datalog_list.htm +++ b/interface/web/monitor/templates/datalog_list.htm @@ -1,49 +1,49 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_datalog"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_action" scope="col"><tmpl_var name="action_txt"></th> - <th class="tbl_col_dbtable" scope="col"><tmpl_var name="dbtable_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_tstamp"> </td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','monitor/datalog_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_action"><select name="search_action" onChange="submitForm('pageForm','monitor/datalog_list.php');">{tmpl_var name='search_action'}</select></td> - <td class="tbl_col_dbtable"><input type="text" name="search_dbtable" value="{tmpl_var name='search_dbtable'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/datalog_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> - <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> - <td class="tbl_col_action">{tmpl_var name="action"}</td> - <td class="tbl_col_dbtable">{tmpl_var name="dbtable"}</td> - <td class="tbl_col_buttons"> - <div class="buttons icons16"> - <!--<a class="icons16 icoDelete" href="javascript: del_record('monitor/datalog_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> --> - </div> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_datalog"> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_action" scope="col"><tmpl_var name="action_txt"></th> + <th class="tbl_col_dbtable" scope="col"><tmpl_var name="dbtable_txt"></th> + <th class="tbl_col_buttons" scope="col"> </th> + </tr> + <tr> + <td class="tbl_col_tstamp"> </td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','monitor/datalog_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_action"><select name="search_action" onChange="submitForm('pageForm','monitor/datalog_list.php');">{tmpl_var name='search_action'}</select></td> + <td class="tbl_col_dbtable"><input type="text" name="search_dbtable" value="{tmpl_var name='search_dbtable'}" /></td> + <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/datalog_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> + <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> + <td class="tbl_col_action">{tmpl_var name="action"}</td> + <td class="tbl_col_dbtable">{tmpl_var name="dbtable"}</td> + <td class="tbl_col_buttons"> + <div class="buttons icons16"> + <!--<a class="icons16 icoDelete" href="javascript: del_record('monitor/datalog_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> --> + </div> + </td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/monitor/templates/show_data.htm b/interface/web/monitor/templates/show_data.htm index f83440fe46..96ac62d7dd 100644 --- a/interface/web/monitor/templates/show_data.htm +++ b/interface/web/monitor/templates/show_data.htm @@ -1,12 +1,12 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_system"> - - <div class="pnl_formarea"> - <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> - <div class="systemmonitor"><tmpl_var name="output"></div> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_system"> + + <div class="pnl_formarea"> + <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> + <div class="systemmonitor"><tmpl_var name="output"></div> + </fieldset> + </div> + +</div> diff --git a/interface/web/monitor/templates/show_log.htm b/interface/web/monitor/templates/show_log.htm index b6077277cd..3b7be6d1ac 100644 --- a/interface/web/monitor/templates/show_log.htm +++ b/interface/web/monitor/templates/show_log.htm @@ -1,25 +1,25 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_logview"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> - <select name="refreshinterval" id="refreshinterval" class="selectInput withicons" onChange="loadContentRefresh('monitor/show_log.php?log={tmpl_var name="log_id"}')"> - {tmpl_var name='refresh'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_formarea"> - <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> - <div class="codeview"><tmpl_var name="log_data"></div> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_logview"> + + <div class="pnl_toolsarea"> + <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> + <div class="buttons"> + <div class="ctrlHolder"> + <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> + <select name="refreshinterval" id="refreshinterval" class="selectInput withicons" onChange="loadContentRefresh('monitor/show_log.php?log={tmpl_var name="log_id"}')"> + {tmpl_var name='refresh'} + </select> + </div> + </div> + </fieldset> + </div> + + <div class="pnl_formarea"> + <fieldset><legend><tmpl_var name="monTransDate"><tmpl_var name="time"></legend> + <div class="codeview"><tmpl_var name="log_data"></div> + </fieldset> + </div> + +</div> diff --git a/interface/web/monitor/templates/show_sys_state.htm b/interface/web/monitor/templates/show_sys_state.htm index 904361cb1f..9941738260 100644 --- a/interface/web/monitor/templates/show_sys_state.htm +++ b/interface/web/monitor/templates/show_sys_state.htm @@ -1,25 +1,25 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_sys_state"> - - <div class="pnl_toolsarea"> - <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> - <div class="buttons"> - <div class="ctrlHolder"> - <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> - <select name="refreshinterval" id="refreshinterval" class="selectInput withicons" onChange="loadContentRefresh('monitor/show_sys_state.php?state={tmpl_var name="state_type"}')"> - {tmpl_var name='refresh'} - </select> - </div> - </div> - </fieldset> - </div> - - <div class="pnl_formarea"> - <fieldset><legend></legend> - <div class="stateview"><tmpl_var name="state_data"></div> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_sys_state"> + + <div class="pnl_toolsarea"> + <fieldset class="inlineLabels"><legend><tmpl_var name="monTransRefreshsq"></legend> + <div class="buttons"> + <div class="ctrlHolder"> + <label for="refreshinterval">{tmpl_var name='refreshinterval_txt'}</label> + <select name="refreshinterval" id="refreshinterval" class="selectInput withicons" onChange="loadContentRefresh('monitor/show_sys_state.php?state={tmpl_var name="state_type"}')"> + {tmpl_var name='refresh'} + </select> + </div> + </div> + </fieldset> + </div> + + <div class="pnl_formarea"> + <fieldset><legend></legend> + <div class="stateview"><tmpl_var name="state_data"></div> + </fieldset> + </div> + +</div> diff --git a/interface/web/monitor/templates/syslog_list.htm b/interface/web/monitor/templates/syslog_list.htm index 0bbb03cfbc..5f87c79ef9 100644 --- a/interface/web/monitor/templates/syslog_list.htm +++ b/interface/web/monitor/templates/syslog_list.htm @@ -1,56 +1,56 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_list_syslog"> - - <div class="pnl_listarea"> - <fieldset><legend><tmpl_var name="list_head_txt"></legend> - <table class="list"> - <thead> - <tr> - <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> - <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> - <th class="tbl_col_loglevel" scope="col"><tmpl_var name="loglevel_txt"></th> - <th class="tbl_col_message" scope="col"><tmpl_var name="message_txt"></th> - <th class="tbl_col_buttons" scope="col"> </th> - </tr> - <tr> - <td class="tbl_col_tstamp"> </td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','monitor/log_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_loglevel"><select name="search_loglevel" onChange="submitForm('pageForm','monitor/log_list.php');">{tmpl_var name='search_loglevel'}</select></td> - <td class="tbl_col_message"><input type="text" name="search_message" value="{tmpl_var name='search_message'}" /></td> - <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/log_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> - </tr> - </thead> - <tbody> - <tmpl_loop name="records"> - <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> - <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> - <td class="tbl_col_loglevel">{tmpl_var name="loglevel"}</td> - <td class="tbl_col_message">{tmpl_var name="message"}</td> - <td class="tbl_col_buttons"> - <tmpl_if name="loglevel" op="==" value="Error"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </tmpl_if> - <tmpl_if name="loglevel" op="==" value="Warning"> - <div class="buttons icons16"> - <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> - </div> - </tmpl_if> - </td> - </tr> - </tmpl_loop> - </tbody> - <tfoot> - <tr> - <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> - </tr> - </tfoot> - </table> - </fieldset> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_syslog"> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_tstamp" scope="col"><tmpl_var name="tstamp_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_loglevel" scope="col"><tmpl_var name="loglevel_txt"></th> + <th class="tbl_col_message" scope="col"><tmpl_var name="message_txt"></th> + <th class="tbl_col_buttons" scope="col"> </th> + </tr> + <tr> + <td class="tbl_col_tstamp"> </td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','monitor/log_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_loglevel"><select name="search_loglevel" onChange="submitForm('pageForm','monitor/log_list.php');">{tmpl_var name='search_loglevel'}</select></td> + <td class="tbl_col_message"><input type="text" name="search_message" value="{tmpl_var name='search_message'}" /></td> + <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','monitor/log_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> + </tr> + </thead> + <tbody> + <tmpl_loop name="records"> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_tstamp">{tmpl_var name="tstamp"}</td> + <td class="tbl_col_server_id">{tmpl_var name="server_id"}</td> + <td class="tbl_col_loglevel">{tmpl_var name="loglevel"}</td> + <td class="tbl_col_message">{tmpl_var name="message"}</td> + <td class="tbl_col_buttons"> + <tmpl_if name="loglevel" op="==" value="Error"> + <div class="buttons icons16"> + <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </div> + </tmpl_if> + <tmpl_if name="loglevel" op="==" value="Warning"> + <div class="buttons icons16"> + <a class="icons16 icoDelete" href="javascript: del_record('monitor/log_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </div> + </tmpl_if> + </td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/interface/web/nav.php b/interface/web/nav.php index d563bb5348..0c57adbd9a 100644 --- a/interface/web/nav.php +++ b/interface/web/nav.php @@ -1,115 +1,115 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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('../lib/config.inc.php'); -require_once('../lib/app.inc.php'); - -$app->uses('tpl'); - -//** Top Naviation -if(isset($_GET['nav']) && $_GET['nav'] == 'top') { - - $app->tpl->newTemplate('topnav.tpl.htm'); - - //* Check User Login and current module - if(isset($_SESSION["s"]["user"]) && $_SESSION["s"]["user"]['active'] == 1 && is_array($_SESSION['s']['module'])) { - //* Loading modules of the user and building top navigation - $modules = explode(',', $_SESSION['s']['user']['modules']); - /* - * If the dashboard is in the list of modules it always has to be the first! - */ - if (in_array('dashboard', $modules)) { - $key = array_search('dashboard', $modules); - unset($modules[$key]); - $modules = array_merge(array('dashboard'), $modules); - } - if(is_array($modules)) { - foreach($modules as $mt) { - if(is_file($mt.'/lib/module.conf.php')) { - if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.'); - include_once($mt.'/lib/module.conf.php'); - $active = ($module['name'] == $_SESSION['s']['module']['name']) ? 1 : 0; - $topnav[] = array( 'title' => $app->lng($module['title']), - 'active' => $active, - 'module' => $module['name']); - } - } - } - } else { - //* Loading Login Module - include_once('login/lib/module.conf.php'); - $_SESSION['s']['module'] = $module; - $topnav[] = array( 'title' => 'Login', - 'active' => 1); - $module = null; - unset($module); - } - - //* Topnavigation - $app->tpl->setLoop('nav_top',$topnav); - -} - -//** Side Naviation -if(isset($_GET['nav']) && $_GET['nav'] == 'side') { - - if(isset($_SESSION['s']['module']['name']) && is_file($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php')) { - include_once($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php'); - } else { - - $app->tpl->newTemplate('sidenav.tpl.htm'); - - //* translating module navigation - $nav_translated = array(); - if(isset($_SESSION['s']['module']['nav']) && is_array($_SESSION['s']['module']['nav'])) { - foreach($_SESSION['s']['module']['nav'] as $nav) { - $tmp_items = array(); - foreach($nav['items'] as $item) { - $item['title'] = $app->lng($item['title']); - $tmp_items[] = $item; - } - $nav['title'] = $app->lng($nav['title']); - $nav['startpage'] = $nav['items'][0]['link']; - $nav['items'] = $tmp_items; - $nav_translated[] = $nav; - } - } else { - $nav_translated = null; - } - $app->tpl->setLoop('nav_left',$nav_translated); - - } - -} - -$app->tpl_defaults(); -$app->tpl->pparse(); - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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('../lib/config.inc.php'); +require_once('../lib/app.inc.php'); + +$app->uses('tpl'); + +//** Top Naviation +if(isset($_GET['nav']) && $_GET['nav'] == 'top') { + + $app->tpl->newTemplate('topnav.tpl.htm'); + + //* Check User Login and current module + if(isset($_SESSION["s"]["user"]) && $_SESSION["s"]["user"]['active'] == 1 && is_array($_SESSION['s']['module'])) { + //* Loading modules of the user and building top navigation + $modules = explode(',', $_SESSION['s']['user']['modules']); + /* + * If the dashboard is in the list of modules it always has to be the first! + */ + if (in_array('dashboard', $modules)) { + $key = array_search('dashboard', $modules); + unset($modules[$key]); + $modules = array_merge(array('dashboard'), $modules); + } + if(is_array($modules)) { + foreach($modules as $mt) { + if(is_file($mt.'/lib/module.conf.php')) { + if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.'); + include_once($mt.'/lib/module.conf.php'); + $active = ($module['name'] == $_SESSION['s']['module']['name']) ? 1 : 0; + $topnav[] = array( 'title' => $app->lng($module['title']), + 'active' => $active, + 'module' => $module['name']); + } + } + } + } else { + //* Loading Login Module + include_once('login/lib/module.conf.php'); + $_SESSION['s']['module'] = $module; + $topnav[] = array( 'title' => 'Login', + 'active' => 1); + $module = null; + unset($module); + } + + //* Topnavigation + $app->tpl->setLoop('nav_top',$topnav); + +} + +//** Side Naviation +if(isset($_GET['nav']) && $_GET['nav'] == 'side') { + + if(isset($_SESSION['s']['module']['name']) && is_file($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php')) { + include_once($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php'); + } else { + + $app->tpl->newTemplate('sidenav.tpl.htm'); + + //* translating module navigation + $nav_translated = array(); + if(isset($_SESSION['s']['module']['nav']) && is_array($_SESSION['s']['module']['nav'])) { + foreach($_SESSION['s']['module']['nav'] as $nav) { + $tmp_items = array(); + foreach($nav['items'] as $item) { + $item['title'] = $app->lng($item['title']); + $tmp_items[] = $item; + } + $nav['title'] = $app->lng($nav['title']); + $nav['startpage'] = $nav['items'][0]['link']; + $nav['items'] = $tmp_items; + $nav_translated[] = $nav; + } + } else { + $nav_translated = null; + } + $app->tpl->setLoop('nav_left',$nav_translated); + + } + +} + +$app->tpl_defaults(); +$app->tpl->pparse(); + ?> \ No newline at end of file diff --git a/interface/web/sites/cron_del.php b/interface/web/sites/cron_del.php index 516b4473b9..484e5073c7 100644 --- a/interface/web/sites/cron_del.php +++ b/interface/web/sites/cron_del.php @@ -1,64 +1,64 @@ -<?php - -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -Modified 2009, Marius Cramer, pixcept KG -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. -*/ - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/cron.list.php"; -$tform_def_file = "form/cron.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -//* Check permissions for module -$app->auth->check_module_permissions('sites'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - } -} - -$page = new page_action; -$page->onDelete(); - +<?php + +/* +Copyright (c) 2008, Till Brehm, projektfarm Gmbh +Modified 2009, Marius Cramer, pixcept KG +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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/cron.list.php"; +$tform_def_file = "form/cron.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('sites'); + +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); + } +} + +$page = new page_action; +$page->onDelete(); + ?> \ No newline at end of file diff --git a/interface/web/sites/cron_list.php b/interface/web/sites/cron_list.php index 68e23163f2..dcd9a547e8 100644 --- a/interface/web/sites/cron_list.php +++ b/interface/web/sites/cron_list.php @@ -1,23 +1,23 @@ -<?php -require_once('../../lib/config.inc.php'); -require_once('../../lib/app.inc.php'); - -/****************************************** -* Begin Form configuration -******************************************/ - -$list_def_file = "list/cron.list.php"; - -/****************************************** -* End Form configuration -******************************************/ - -//* Check permissions for module -$app->auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - +<?php +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/cron.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('sites'); + +$app->uses('listform_actions'); + +$app->listform_actions->onLoad(); + + ?> \ No newline at end of file diff --git a/interface/web/sites/lib/admin.conf.php b/interface/web/sites/lib/admin.conf.php index a45d440345..67c94a5742 100644 --- a/interface/web/sites/lib/admin.conf.php +++ b/interface/web/sites/lib/admin.conf.php @@ -1,2 +1,2 @@ -<?php +<?php ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_database_admin_list.lng b/interface/web/sites/lib/lang/en_database_admin_list.lng index d076d60cf5..a49adcdadd 100644 --- a/interface/web/sites/lib/lang/en_database_admin_list.lng +++ b/interface/web/sites/lib/lang/en_database_admin_list.lng @@ -1,10 +1,10 @@ -<?php -$wb["list_head_txt"] = 'Database'; -$wb["active_txt"] = 'Active'; -$wb["remote_access_txt"] = 'Remote Access'; -$wb["server_id_txt"] = 'Server'; -$wb["database_user_txt"] = 'Database user'; -$wb["database_name_txt"] = 'Database name'; -$wb["add_new_record_txt"] = 'Add new Database'; -$wb["sys_groupid_txt"] = 'Client'; +<?php +$wb["list_head_txt"] = 'Database'; +$wb["active_txt"] = 'Active'; +$wb["remote_access_txt"] = 'Remote Access'; +$wb["server_id_txt"] = 'Server'; +$wb["database_user_txt"] = 'Database user'; +$wb["database_name_txt"] = 'Database name'; +$wb["add_new_record_txt"] = 'Add new Database'; +$wb["sys_groupid_txt"] = 'Client'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_user_quota_stats_list.lng b/interface/web/sites/lib/lang/en_user_quota_stats_list.lng index 943c13babc..1d4290856c 100644 --- a/interface/web/sites/lib/lang/en_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/en_user_quota_stats_list.lng @@ -1,8 +1,8 @@ -<?php -$wb["list_head_txt"] = 'Website harddisk quota'; -$wb["domain_txt"] = 'Domain / Website'; -$wb["system_user_txt"] = 'Linux user'; -$wb["used_txt"] = 'Used space'; -$wb["hard_txt"] = 'Hard limit'; -$wb["soft_txt"] = 'Soft limit'; +<?php +$wb["list_head_txt"] = 'Website harddisk quota'; +$wb["domain_txt"] = 'Domain / Website'; +$wb["system_user_txt"] = 'Linux user'; +$wb["used_txt"] = 'Used space'; +$wb["hard_txt"] = 'Hard limit'; +$wb["soft_txt"] = 'Soft limit'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 3f166cf022..d709cc50fe 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -1,75 +1,75 @@ -<?php -$wb["backup_interval_txt"] = 'Backup interval'; -$wb["backup_copies_txt"] = 'Number of backup copies'; -$wb["ssl_state_txt"] = 'State'; -$wb["ssl_locality_txt"] = 'Locality'; -$wb["ssl_organisation_txt"] = 'Organisation'; -$wb["ssl_organisation_unit_txt"] = 'Organisation Unit'; -$wb["ssl_country_txt"] = 'Country'; -$wb["ssl_request_txt"] = 'SSL Request'; -$wb["ssl_cert_txt"] = 'SSL Certificate'; -$wb["ssl_bundle_txt"] = 'SSL Bundle'; -$wb["ssl_action_txt"] = 'SSL Action'; -$wb["ssl_domain_txt"] = 'SSL Domain'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["type_txt"] = 'Type'; -$wb["parent_domain_id_txt"] = 'Parent Website'; -$wb["redirect_type_txt"] = 'Redirect Type'; -$wb["redirect_path_txt"] = 'Redirect Path'; -$wb["active_txt"] = 'Active'; -$wb["document_root_txt"] = 'Documentroot'; -$wb["system_user_txt"] = 'Linux User'; -$wb["system_group_txt"] = 'Linux Group'; -$wb["ip_address_txt"] = 'IP-Address'; -$wb["vhost_type_txt"] = 'VHost Type'; -$wb["hd_quota_txt"] = 'Harddisk Quota'; -$wb["traffic_quota_txt"] = 'Traffic Quota'; -$wb["cgi_txt"] = 'CGI'; -$wb["ssi_txt"] = 'SSI'; -$wb["errordocs_txt"] = 'Own Error-Documents'; -$wb["subdomain_txt"] = 'Auto-Subdomain'; -$wb["ssl_txt"] = 'SSL'; -$wb["suexec_txt"] = 'SuEXEC'; -$wb["php_txt"] = 'PHP'; -$wb["client_txt"] = 'Client'; -$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.'; -$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.'; -$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.'; -$wb["apache_directives_txt"] = 'Apache directives'; -$wb["domain_error_empty"] = 'Domain is empty.'; -$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.'; -$wb["domain_error_regex"] = 'Domain name invalid.'; -$wb["hd_quota_error_empty"] = 'Harddisk quota is 0 or empty.'; -$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.'; -$wb["error_ssl_state_empty"] = 'SSL State is empty.'; -$wb["error_ssl_locality_empty"] = 'SSL Locality is empty.'; -$wb["error_ssl_organisation_empty"] = 'SSL Organisation is empty.'; -$wb["error_ssl_organisation_unit_empty"] = 'SSL Organisation Unit is empty.'; -$wb["error_ssl_country_empty"] = 'SSL Country is empty.'; -$wb["error_ssl_cert_empty"] = 'SSL Certificate field is empty'; -$wb["client_group_id_txt"] = 'Client'; -$wb["stats_password_txt"] = 'Webstatistics password'; -$wb["allow_override_txt"] = 'Apache AllowOverride'; -$wb["limit_web_quota_free_txt"] = 'Max. available Harddisk Quota'; -$wb["ssl_state_error_regex"] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; -$wb["ssl_locality_error_regex"] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; -$wb["ssl_organisation_error_regex"] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; -$wb["ssl_organistaion_unit_error_regex"] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; -$wb["ssl_country_error_regex"] = 'Invalid SSL Country. Valid characters are: A-Z'; -$wb["limit_traffic_quota_free_txt"] = 'Max. available Traffic Quota'; -$wb["redirect_error_regex"] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; -$wb["php_open_basedir_txt"] = 'PHP open_basedir'; -$wb["traffic_quota_exceeded_txt"] = 'Traffic quota exceeded'; -$wb["ruby_txt"] = 'Ruby'; -$wb["stats_user_txt"] = 'Webstatistics username'; -$wb["stats_type_txt"] = 'Webstatistics program'; -$wb["custom_php_ini_txt"] = 'Custom php.ini settings'; -$wb['none_txt'] = 'None'; -$wb['disabled_txt'] = 'Disabled'; -$wb['no_redirect_txt'] = 'No redirect'; -$wb['no_flag_txt'] = 'No flag'; -$wb['save_certificate_txt'] = 'Save certificate'; -$wb['create_certificate_txt'] = 'Create certificate'; -$wb['delete_certificate_txt'] = 'Delete certificate'; +<?php +$wb["backup_interval_txt"] = 'Backup interval'; +$wb["backup_copies_txt"] = 'Number of backup copies'; +$wb["ssl_state_txt"] = 'State'; +$wb["ssl_locality_txt"] = 'Locality'; +$wb["ssl_organisation_txt"] = 'Organisation'; +$wb["ssl_organisation_unit_txt"] = 'Organisation Unit'; +$wb["ssl_country_txt"] = 'Country'; +$wb["ssl_request_txt"] = 'SSL Request'; +$wb["ssl_cert_txt"] = 'SSL Certificate'; +$wb["ssl_bundle_txt"] = 'SSL Bundle'; +$wb["ssl_action_txt"] = 'SSL Action'; +$wb["ssl_domain_txt"] = 'SSL Domain'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["type_txt"] = 'Type'; +$wb["parent_domain_id_txt"] = 'Parent Website'; +$wb["redirect_type_txt"] = 'Redirect Type'; +$wb["redirect_path_txt"] = 'Redirect Path'; +$wb["active_txt"] = 'Active'; +$wb["document_root_txt"] = 'Documentroot'; +$wb["system_user_txt"] = 'Linux User'; +$wb["system_group_txt"] = 'Linux Group'; +$wb["ip_address_txt"] = 'IP-Address'; +$wb["vhost_type_txt"] = 'VHost Type'; +$wb["hd_quota_txt"] = 'Harddisk Quota'; +$wb["traffic_quota_txt"] = 'Traffic Quota'; +$wb["cgi_txt"] = 'CGI'; +$wb["ssi_txt"] = 'SSI'; +$wb["errordocs_txt"] = 'Own Error-Documents'; +$wb["subdomain_txt"] = 'Auto-Subdomain'; +$wb["ssl_txt"] = 'SSL'; +$wb["suexec_txt"] = 'SuEXEC'; +$wb["php_txt"] = 'PHP'; +$wb["client_txt"] = 'Client'; +$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.'; +$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.'; +$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.'; +$wb["apache_directives_txt"] = 'Apache directives'; +$wb["domain_error_empty"] = 'Domain is empty.'; +$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb["domain_error_regex"] = 'Domain name invalid.'; +$wb["hd_quota_error_empty"] = 'Harddisk quota is 0 or empty.'; +$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.'; +$wb["error_ssl_state_empty"] = 'SSL State is empty.'; +$wb["error_ssl_locality_empty"] = 'SSL Locality is empty.'; +$wb["error_ssl_organisation_empty"] = 'SSL Organisation is empty.'; +$wb["error_ssl_organisation_unit_empty"] = 'SSL Organisation Unit is empty.'; +$wb["error_ssl_country_empty"] = 'SSL Country is empty.'; +$wb["error_ssl_cert_empty"] = 'SSL Certificate field is empty'; +$wb["client_group_id_txt"] = 'Client'; +$wb["stats_password_txt"] = 'Webstatistics password'; +$wb["allow_override_txt"] = 'Apache AllowOverride'; +$wb["limit_web_quota_free_txt"] = 'Max. available Harddisk Quota'; +$wb["ssl_state_error_regex"] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_locality_error_regex"] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_organisation_error_regex"] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_organistaion_unit_error_regex"] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_country_error_regex"] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb["limit_traffic_quota_free_txt"] = 'Max. available Traffic Quota'; +$wb["redirect_error_regex"] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb["php_open_basedir_txt"] = 'PHP open_basedir'; +$wb["traffic_quota_exceeded_txt"] = 'Traffic quota exceeded'; +$wb["ruby_txt"] = 'Ruby'; +$wb["stats_user_txt"] = 'Webstatistics username'; +$wb["stats_type_txt"] = 'Webstatistics program'; +$wb["custom_php_ini_txt"] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_domain_admin_list.lng b/interface/web/sites/lib/lang/en_web_domain_admin_list.lng index f8b37f4f84..e8825ae321 100644 --- a/interface/web/sites/lib/lang/en_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/en_web_domain_admin_list.lng @@ -1,9 +1,9 @@ -<?php -$wb["sys_groupid_txt"] = 'Client'; -$wb["list_head_txt"] = 'Websites'; -$wb["domain_id_txt"] = 'ID'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["add_new_record_txt"] = 'Add new website'; +<?php +$wb["sys_groupid_txt"] = 'Client'; +$wb["list_head_txt"] = 'Websites'; +$wb["domain_id_txt"] = 'ID'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["add_new_record_txt"] = 'Add new website'; ?> \ No newline at end of file diff --git a/interface/web/sites/templates/cron_edit.htm b/interface/web/sites/templates/cron_edit.htm index 39f9bc6469..bebccbfef2 100644 --- a/interface/web/sites/templates/cron_edit.htm +++ b/interface/web/sites/templates/cron_edit.htm @@ -1,68 +1,68 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_cron"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"><legend>Cron Job</legend> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="run_min">{tmpl_var name='run_min_txt'}</label> - <input name="run_min" id="run_min" value="{tmpl_var name='run_min'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */3, 10-20</p> - </div> - <div class="ctrlHolder"> - <label for="run_hour">{tmpl_var name='run_hour_txt'}</label> - <input name="run_hour" id="run_hour" value="{tmpl_var name='run_hour'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */2, 0, 10-12</p> - </div> - <div class="ctrlHolder"> - <label for="run_mday">{tmpl_var name='run_mday_txt'}</label> - <input name="run_mday" id="run_mday" value="{tmpl_var name='run_mday'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, */4, 1-5</p> - </div> - <div class="ctrlHolder"> - <label for="run_month">{tmpl_var name='run_month_txt'}</label> - <input name="run_month" id="run_month" value="{tmpl_var name='run_month'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, 1-6</p> - </div> - <div class="ctrlHolder"> - <label for="run_wday">{tmpl_var name='run_wday_txt'}</label> - <input name="run_wday" id="run_wday" value="{tmpl_var name='run_wday'}" size="10" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. *, 0, 1-5</p> - </div> - <div class="ctrlHolder"> - <label for="command">{tmpl_var name='command_txt'}</label> - <input name="command" id="command" value="{tmpl_var name='command'}" size="30" maxlength="255" type="text" class="textInput" /> - <p class="formHint">e.g. /var/www/clients/client1/myscript.sh or http://www.mydomain.com/path/script.php</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/cron_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/cron_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_cron"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Cron Job</legend> + <div class="ctrlHolder"> + <tmpl_if name="edit_disabled"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> + {tmpl_var name='parent_domain_id'} + </select> + <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> + <tmpl_else> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> + {tmpl_var name='parent_domain_id'} + </select> + </tmpl_if> + </div> + <div class="ctrlHolder"> + <label for="run_min">{tmpl_var name='run_min_txt'}</label> + <input name="run_min" id="run_min" value="{tmpl_var name='run_min'}" size="10" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. *, */3, 10-20</p> + </div> + <div class="ctrlHolder"> + <label for="run_hour">{tmpl_var name='run_hour_txt'}</label> + <input name="run_hour" id="run_hour" value="{tmpl_var name='run_hour'}" size="10" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. *, */2, 0, 10-12</p> + </div> + <div class="ctrlHolder"> + <label for="run_mday">{tmpl_var name='run_mday_txt'}</label> + <input name="run_mday" id="run_mday" value="{tmpl_var name='run_mday'}" size="10" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. *, */4, 1-5</p> + </div> + <div class="ctrlHolder"> + <label for="run_month">{tmpl_var name='run_month_txt'}</label> + <input name="run_month" id="run_month" value="{tmpl_var name='run_month'}" size="10" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. *, 1-6</p> + </div> + <div class="ctrlHolder"> + <label for="run_wday">{tmpl_var name='run_wday_txt'}</label> + <input name="run_wday" id="run_wday" value="{tmpl_var name='run_wday'}" size="10" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. *, 0, 1-5</p> + </div> + <div class="ctrlHolder"> + <label for="command">{tmpl_var name='command_txt'}</label> + <input name="command" id="command" value="{tmpl_var name='command'}" size="30" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. /var/www/clients/client1/myscript.sh or http://www.mydomain.com/path/script.php</p> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/cron_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/cron_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm index face8e4a00..7cb228d99f 100644 --- a/interface/web/sites/templates/database_admin_list.htm +++ b/interface/web/sites/templates/database_admin_list.htm @@ -17,33 +17,33 @@ <table class="list"> <thead> <tr> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> - <th class="tbl_col_remote_access" scope="col"><tmpl_var name="remote_access_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_database_user" 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_active" scope="col"><tmpl_var name="active_txt"></th> + <th class="tbl_col_remote_access" scope="col"><tmpl_var name="remote_access_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_database_user" 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_buttons" scope="col"> </th> </tr> <tr> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_remote_access"><select name="search_remote_access" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_remote_access'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_database_user"><input type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}" /></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_active"><select name="search_active" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_remote_access"><select name="search_remote_access" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_remote_access'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/database_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_database_user"><input type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}" /></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"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/database_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> </tr> </thead> <tbody> <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <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_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_database_user"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user"}</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_active"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <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_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_database_user"><a href="#" onClick="loadContent('sites/database_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="database_user"}</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"> <div class="buttons icons16"> <tmpl_if name="dblist_phpmyadmin_link"><a class="icons16 icoDbAdmin" href="sites/database_phpmyadmin.php?id={tmpl_var name='id'}" target="phpmyadmin"><span>{tmpl_var name='admin_txt'}</span></a></tmpl_if> diff --git a/interface/web/sites/templates/ftp_user_advanced.htm b/interface/web/sites/templates/ftp_user_advanced.htm index 1520630b53..85e6c66ef3 100644 --- a/interface/web/sites/templates/ftp_user_advanced.htm +++ b/interface/web/sites/templates/ftp_user_advanced.htm @@ -1,50 +1,50 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="uid">{tmpl_var name='uid_txt'}</label> - <input name="uid" id="uid" value="{tmpl_var name='uid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="gid">{tmpl_var name='gid_txt'}</label> - <input name="gid" id="gid" value="{tmpl_var name='gid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="quota_files">{tmpl_var name='quota_files_txt'}</label> - <input name="quota_files" id="quota_files" value="{tmpl_var name='quota_files'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> {tmpl_var name='quota_files_unity_txt'}</p> - </div> - <div class="ctrlHolder"> - <label for="ul_ratio">{tmpl_var name='ul_ratio_txt'}</label> - <input name="ul_ratio" id="ul_ratio" value="{tmpl_var name='ul_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> - </div> - <div class="ctrlHolder"> - <label for="dl_ratio">{tmpl_var name='dl_ratio_txt'}</label> - <input name="dl_ratio" id="dl_ratio" value="{tmpl_var name='dl_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> - </div> - <div class="ctrlHolder"> - <label for="ul_bandwidth">{tmpl_var name='ul_bandwidth_txt'}</label> - <input name="ul_bandwidth" id="ul_bandwidth" value="{tmpl_var name='ul_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> kb/s</p> - </div> - <div class="ctrlHolder"> - <label for="dl_bandwidth">{tmpl_var name='dl_bandwidth_txt'}</label> - <input name="dl_bandwidth" id="dl_bandwidth" value="{tmpl_var name='dl_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> kb/s</p> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_ftp_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="uid">{tmpl_var name='uid_txt'}</label> + <input name="uid" id="uid" value="{tmpl_var name='uid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="gid">{tmpl_var name='gid_txt'}</label> + <input name="gid" id="gid" value="{tmpl_var name='gid'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="dir">{tmpl_var name='dir_txt'}</label> + <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="quota_files">{tmpl_var name='quota_files_txt'}</label> + <input name="quota_files" id="quota_files" value="{tmpl_var name='quota_files'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> {tmpl_var name='quota_files_unity_txt'}</p> + </div> + <div class="ctrlHolder"> + <label for="ul_ratio">{tmpl_var name='ul_ratio_txt'}</label> + <input name="ul_ratio" id="ul_ratio" value="{tmpl_var name='ul_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> + </div> + <div class="ctrlHolder"> + <label for="dl_ratio">{tmpl_var name='dl_ratio_txt'}</label> + <input name="dl_ratio" id="dl_ratio" value="{tmpl_var name='dl_ratio'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> + </div> + <div class="ctrlHolder"> + <label for="ul_bandwidth">{tmpl_var name='ul_bandwidth_txt'}</label> + <input name="ul_bandwidth" id="ul_bandwidth" value="{tmpl_var name='ul_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> kb/s</p> + </div> + <div class="ctrlHolder"> + <label for="dl_bandwidth">{tmpl_var name='dl_bandwidth_txt'}</label> + <input name="dl_bandwidth" id="dl_bandwidth" value="{tmpl_var name='dl_bandwidth'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> kb/s</p> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/ftp_user_advanced_client.htm b/interface/web/sites/templates/ftp_user_advanced_client.htm index fd8d617ced..5698bb00f6 100644 --- a/interface/web/sites/templates/ftp_user_advanced_client.htm +++ b/interface/web/sites/templates/ftp_user_advanced_client.htm @@ -1,22 +1,22 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_ftp_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="dir">{tmpl_var name='dir_txt'}</label> + <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/ftp_user_edit.htm b/interface/web/sites/templates/ftp_user_edit.htm index f7588b3318..d3c6d78963 100644 --- a/interface/web/sites/templates/ftp_user_edit.htm +++ b/interface/web/sites/templates/ftp_user_edit.htm @@ -1,48 +1,48 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_ftp_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <div style="float: left;">{tmpl_var name='username_prefix'} </div> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> - <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_ftp_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> + {tmpl_var name='parent_domain_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="username">{tmpl_var name='username_txt'}</label> + <div style="float: left;">{tmpl_var name='username_prefix'} </div> + <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="password">{tmpl_var name='password_txt'}</label> + <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> + <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/ftp_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/ftp_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/shell_user_advanced.htm b/interface/web/sites/templates/shell_user_advanced.htm index eb7d8ceb11..870614c344 100644 --- a/interface/web/sites/templates/shell_user_advanced.htm +++ b/interface/web/sites/templates/shell_user_advanced.htm @@ -1,34 +1,34 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_shell_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="puser">{tmpl_var name='puser_txt'}</label> - <input name="puser" id="puser" value="{tmpl_var name='puser'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="pgroup">{tmpl_var name='pgroup_txt'}</label> - <input name="pgroup" id="pgroup" value="{tmpl_var name='pgroup'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="shell">{tmpl_var name='shell_txt'}</label> - <input name="shell" id="shell" value="{tmpl_var name='shell'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_shell_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="puser">{tmpl_var name='puser_txt'}</label> + <input name="puser" id="puser" value="{tmpl_var name='puser'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="pgroup">{tmpl_var name='pgroup_txt'}</label> + <input name="pgroup" id="pgroup" value="{tmpl_var name='pgroup'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="shell">{tmpl_var name='shell_txt'}</label> + <input name="shell" id="shell" value="{tmpl_var name='shell'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="dir">{tmpl_var name='dir_txt'}</label> + <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/shell_user_edit.htm b/interface/web/sites/templates/shell_user_edit.htm index 6e2c3d9f81..45bdcc4087 100644 --- a/interface/web/sites/templates/shell_user_edit.htm +++ b/interface/web/sites/templates/shell_user_edit.htm @@ -1,66 +1,66 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_shell_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <div style="float: left;">{tmpl_var name='username_prefix'} </div> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth"/> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)"/> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="chroot">{tmpl_var name='chroot_txt'}</label> - <select name="chroot" id="chroot" class="selectInput formLengthHalf"> - {tmpl_var name='chroot'} - </select> - </div> - <div class="ctrlHolder"> - <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> - <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> - </div> - <div class="ctrlHolder"> - <label for="ssh_rsa">ssh_rsa</label> - <input name="ssh_rsa" id="ssh_rsa" value="" maxlength="600" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_shell_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <tmpl_if name="edit_disabled"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> + {tmpl_var name='parent_domain_id'} + </select> + <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> + <tmpl_else> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> + {tmpl_var name='parent_domain_id'} + </select> + </tmpl_if> + </div> + <div class="ctrlHolder"> + <label for="username">{tmpl_var name='username_txt'}</label> + <div style="float: left;">{tmpl_var name='username_prefix'} </div> + <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth"/> + </div> + <div class="ctrlHolder"> + <label for="password">{tmpl_var name='password_txt'}</label> + <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)"/> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <label for="chroot">{tmpl_var name='chroot_txt'}</label> + <select name="chroot" id="chroot" class="selectInput formLengthHalf"> + {tmpl_var name='chroot'} + </select> + </div> + <div class="ctrlHolder"> + <label for="quota_size">{tmpl_var name='quota_size_txt'}</label> + <input name="quota_size" id="quota_size" value="{tmpl_var name='quota_size'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /><p class="formInputUnity"> MB</p> + </div> + <div class="ctrlHolder"> + <label for="ssh_rsa">ssh_rsa</label> + <input name="ssh_rsa" id="ssh_rsa" value="" maxlength="600" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/shell_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/shell_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/user_quota_stats_list.htm b/interface/web/sites/templates/user_quota_stats_list.htm index f7b7eaa085..b005d60cd8 100644 --- a/interface/web/sites/templates/user_quota_stats_list.htm +++ b/interface/web/sites/templates/user_quota_stats_list.htm @@ -7,30 +7,30 @@ <table class="list"> <thead> <tr> - <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> <th class="tbl_col_system_user" scope="col"><tmpl_var name="system_user_txt"></th> <th class="tbl_col_system_user" scope="col" style="text-align:right;"><tmpl_var name="used_txt"></th> <th class="tbl_col_system_user" scope="col" style="text-align:right;"><tmpl_var name="soft_txt"></th> - <th class="tbl_col_system_user" scope="col" style="text-align:right;"><tmpl_var name="hard_txt"></th> + <th class="tbl_col_system_user" scope="col" style="text-align:right;"><tmpl_var name="hard_txt"></th> <th class="tbl_col_buttons" scope="col"> </th> </tr> <tr> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> <td class="tbl_col_system_user"><input type="text" name="search_system_user" value="{tmpl_var name='search_system_user'}" /></td> <td class="tbl_col_system_user"> </td> <td class="tbl_col_system_user"> </td> - <td class="tbl_col_system_user"> </td> + <td class="tbl_col_system_user"> </td> <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/user_quota_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> </tr> </thead> <tbody> <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> <td class="tbl_col_system_user"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="system_user"}</a></td> <td class="tbl_col_used" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="used"}</a></td> <td class="tbl_col_soft" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="soft"}</a></td> - <td class="tbl_col_hard" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="hard"}</a></td> + <td class="tbl_col_hard" style="text-align:right;"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="hard"}</a></td> <td class="tbl_col_buttons"> <div class="buttons icons16"> diff --git a/interface/web/sites/templates/web_aliasdomain_edit.htm b/interface/web/sites/templates/web_aliasdomain_edit.htm index 82773d1ccf..688ed520b3 100644 --- a/interface/web/sites/templates/web_aliasdomain_edit.htm +++ b/interface/web/sites/templates/web_aliasdomain_edit.htm @@ -1,56 +1,56 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='domain_txt'}</label> - <tmpl_if name="domain_option"> - <select name="domain" id="domain" class="selectInput"> - {tmpl_var name='domain_option'} - </select> - <tmpl_else> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> - <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> - {tmpl_var name='subdomain'} - </select> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_aliasdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='domain_txt'}</label> + <tmpl_if name="domain_option"> + <select name="domain" id="domain" class="selectInput"> + {tmpl_var name='domain_option'} + </select> + <tmpl_else> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput" /> + </tmpl_if> + </div> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> + {tmpl_var name='parent_domain_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> + <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> + {tmpl_var name='redirect_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> + <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> + <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> + {tmpl_var name='subdomain'} + </select> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_aliasdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/web_domain_admin_list.htm b/interface/web/sites/templates/web_domain_admin_list.htm index 7290f1f8e4..efb72862e2 100644 --- a/interface/web/sites/templates/web_domain_admin_list.htm +++ b/interface/web/sites/templates/web_domain_admin_list.htm @@ -17,30 +17,30 @@ <table class="list"> <thead> <tr> - <th class="tbl_col_domain_id" scope="col"><tmpl_var name="domain_id_txt"></th> - <th class="tbl_col_active" scope="col"><tmpl_var name="active_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_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_domain_id" scope="col"><tmpl_var name="domain_id_txt"></th> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_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_domain" scope="col"><tmpl_var name="domain_txt"></th> <th class="tbl_col_buttons" scope="col"> </th> </tr> <tr> - <td class="tbl_col_domain_id"><input type="text" name="search_domain_id" size="4" value="{tmpl_var name='search_domain_id'}" /></td> - <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_active'}</select></td> - <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> - <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_server_id'}</select></td> - <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_domain_id"><input type="text" name="search_domain_id" size="4" value="{tmpl_var name='search_domain_id'}" /></td> + <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_sys_groupid"><select name="search_sys_groupid" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_sys_groupid'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','sites/web_domain_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','sites/web_domain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> </tr> </thead> <tbody> <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> - <td class="tbl_col_domain_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain_id"}</a></td> - <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> - <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('sites/web_domain_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/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> - <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_domain_id"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain_id"}</a></td> + <td class="tbl_col_active"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_sys_groupid"><a href="#" onClick="loadContent('sites/web_domain_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/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> <td class="tbl_col_buttons"> <div class="buttons icons16"> <a class="icons16 icoDelete" href="javascript: del_record('sites/web_domain_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> diff --git a/interface/web/sites/templates/web_domain_redirect.htm b/interface/web/sites/templates/web_domain_redirect.htm index 89e6fab80a..8f07bef02a 100644 --- a/interface/web/sites/templates/web_domain_redirect.htm +++ b/interface/web/sites/templates/web_domain_redirect.htm @@ -1,28 +1,28 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_domain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> + <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> + {tmpl_var name='redirect_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> + <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/web_subdomain_edit.htm b/interface/web/sites/templates/web_subdomain_edit.htm index 2206cf7bd5..c0bc0f7ed2 100644 --- a/interface/web/sites/templates/web_subdomain_edit.htm +++ b/interface/web/sites/templates/web_subdomain_edit.htm @@ -1,42 +1,42 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_web_subdomain"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="domain">{tmpl_var name='host_txt'}</label> - <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> - </div> - <div class="ctrlHolder"> - <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> - <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> - </div> - <div class="ctrlHolder"> - <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> - <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> - {tmpl_var name='redirect_type'} - </select> - </div> - <div class="ctrlHolder"> - <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> - <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_subdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_subdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_subdomain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='host_txt'}</label> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> + <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> + </div> + <div class="ctrlHolder"> + <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> + <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> + {tmpl_var name='redirect_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> + <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_subdomain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_subdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/templates/webdav_user_edit.htm b/interface/web/sites/templates/webdav_user_edit.htm index 37d46a8ed9..4b6b4edfda 100644 --- a/interface/web/sites/templates/webdav_user_edit.htm +++ b/interface/web/sites/templates/webdav_user_edit.htm @@ -1,58 +1,58 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_webdav_user"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <tmpl_if name="edit_disabled"> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> - {tmpl_var name='parent_domain_id'} - </select> - <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> - <tmpl_else> - <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> - <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> - {tmpl_var name='parent_domain_id'} - </select> - </tmpl_if> - </div> - <div class="ctrlHolder"> - <label for="username">{tmpl_var name='username_txt'}</label> - <div style="float: left;">{tmpl_var name='username_prefix'} </div> - <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> - </div> - <div class="ctrlHolder"> - <label for="password">{tmpl_var name='password_txt'}</label> - <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)"/> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='active_txt'}</p> - <div class="multiField"> - {tmpl_var name='active'} - </div> - </div> - <div class="ctrlHolder"> - <label for="dir">{tmpl_var name='dir_txt'}</label> - <div style="float: left;">webdav/</div> - <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> - </div> - - </fieldset> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/webdav_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/webdav_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_webdav_user"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <tmpl_if name="edit_disabled"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput" disabled="disabled"> + {tmpl_var name='parent_domain_id'} + </select> + <input type="hidden" name="parent_domain_id" value="{tmpl_var name='parent_domain_id_value'}" /> + <tmpl_else> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select name="parent_domain_id" id="parent_domain_id" class="selectInput"> + {tmpl_var name='parent_domain_id'} + </select> + </tmpl_if> + </div> + <div class="ctrlHolder"> + <label for="username">{tmpl_var name='username_txt'}</label> + <div style="float: left;">{tmpl_var name='username_prefix'} </div> + <input name="username" id="username" value="{tmpl_var name='username'}" size="30" maxlength="255" type="text" class="textInput formLengthFourth" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> + </div> + <div class="ctrlHolder"> + <label for="password">{tmpl_var name='password_txt'}</label> + <input name="password" id="password" value="{tmpl_var name='password'}" size="30" maxlength="255" type="password" class="textInput" onkeyup="pass_check(this.value)"/> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + <div class="ctrlHolder"> + <label for="dir">{tmpl_var name='dir_txt'}</label> + <div style="float: left;">webdav/</div> + <input name="dir" id="dir" value="{tmpl_var name='dir'}" size="30" maxlength="255" type="text" class="textInput" <tmpl_if name="edit_disabled">disabled="disabled"</tmpl_if>/> + </div> + + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/webdav_user_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/webdav_user_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/temp/en.lng b/interface/web/temp/en.lng index 3ce72dc44a..ccb4786598 100644 --- a/interface/web/temp/en.lng +++ b/interface/web/temp/en.lng @@ -344,34 +344,34 @@ $wb['phpmyadmin_url_txt'] = 'PHPMyAdmin URL'; ?> --|admin|en|en_users.lng -<?php -$wb["username_txt"] = 'Username'; -$wb["username_err"] = 'The username is too long or contains invalid characters.'; -$wb["username_empty"] = 'The username is empty.'; -$wb["username_unique"] = 'There is already a user with this username.'; -$wb["passwort_txt"] = 'Password'; -$wb["password_strength_txt"] = 'Password strength'; -$wb["modules_txt"] = 'Module'; -$wb["startmodule_txt"] = 'Startmodule'; -$wb["app_theme_txt"] = 'Design'; -$wb["typ_txt"] = 'Type'; -$wb["active_txt"] = 'Active'; -$wb["language_txt"] = 'Language'; -$wb["name_txt"] = 'Name'; -$wb["vorname_txt"] = 'Forename'; -$wb["unternehmen_txt"] = 'Company'; -$wb["strasse_txt"] = 'Street'; -$wb["ort_txt"] = 'City'; -$wb["plz_txt"] = 'ZIP'; -$wb["land_txt"] = 'Country'; -$wb["email_txt"] = 'Email'; -$wb["url_txt"] = 'Url'; -$wb["telefon_txt"] = 'Telephone'; -$wb["fax_txt"] = 'Fax'; -$wb["groups_txt"] = 'Groups'; -$wb["default_group_txt"] = 'Default Group'; -$wb["startmodule_err"] = 'Start module is not within modules.'; -?> +<?php +$wb["username_txt"] = 'Username'; +$wb["username_err"] = 'The username is too long or contains invalid characters.'; +$wb["username_empty"] = 'The username is empty.'; +$wb["username_unique"] = 'There is already a user with this username.'; +$wb["passwort_txt"] = 'Password'; +$wb["password_strength_txt"] = 'Password strength'; +$wb["modules_txt"] = 'Module'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +$wb["typ_txt"] = 'Type'; +$wb["active_txt"] = 'Active'; +$wb["language_txt"] = 'Language'; +$wb["name_txt"] = 'Name'; +$wb["vorname_txt"] = 'Forename'; +$wb["unternehmen_txt"] = 'Company'; +$wb["strasse_txt"] = 'Street'; +$wb["ort_txt"] = 'City'; +$wb["plz_txt"] = 'ZIP'; +$wb["land_txt"] = 'Country'; +$wb["email_txt"] = 'Email'; +$wb["url_txt"] = 'Url'; +$wb["telefon_txt"] = 'Telephone'; +$wb["fax_txt"] = 'Fax'; +$wb["groups_txt"] = 'Groups'; +$wb["default_group_txt"] = 'Default Group'; +$wb["startmodule_err"] = 'Start module is not within modules.'; +?> --|admin|en|en_users_list.lng <?php @@ -1223,13 +1223,13 @@ $wb["source_txt"] = 'Source'; $wb["add_new_record_txt"] = 'Add new Domain alias'; ?> --|mail|en|en_mail_alias_list.lng -<?php -$wb["list_head_txt"] = 'Email Alias'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Email alias'; +<?php +$wb["list_head_txt"] = 'Email Alias'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Email alias'; ?> --|mail|en|en_mail_blacklist.lng <?php @@ -1242,15 +1242,15 @@ $wb["type_txt"] = 'Type'; $wb["limit_mailfilter_txt"] = 'The max. number of email filters for your account is reached.'; ?> --|mail|en|en_mail_blacklist_list.lng -<?php -$wb["list_head_txt"] = 'Email Blacklist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["source_txt"] = 'Blacklisted address'; -$wb["type_txt"] = 'Type'; -$wb["recipient_txt"] = 'Recipient'; -$wb["add_new_record_txt"] = 'Add new Blacklist record'; -$wb["access_txt"] = 'access'; +<?php +$wb["list_head_txt"] = 'Email Blacklist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["source_txt"] = 'Blacklisted address'; +$wb["type_txt"] = 'Type'; +$wb["recipient_txt"] = 'Recipient'; +$wb["add_new_record_txt"] = 'Add new Blacklist record'; +$wb["access_txt"] = 'access'; ?> --|mail|en|en_mail_content_filter.lng <?php @@ -1296,14 +1296,14 @@ $wb["domain_error_regex"] = 'Invalid domain name od domain contains invalid char $wb["limit_mailcatchall_txt"] = 'The max. number of email catchall accounts for your account is reached.'; ?> --|mail|en|en_mail_domain_catchall_list.lng -<?php -$wb["list_head_txt"] = 'Email Catchall'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination email address'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["add_new_record_txt"] = 'Add new Catchall'; +<?php +$wb["list_head_txt"] = 'Email Catchall'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination email address'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["add_new_record_txt"] = 'Add new Catchall'; ?> --|mail|en|en_mail_domain_list.lng <?php @@ -1322,13 +1322,13 @@ $wb["limit_mailforward_txt"] = 'The max. number of email forwarders for your acc $wb["duplicate_mailbox_txt"] = 'There is already a mailbox with this email address'; ?> --|mail|en|en_mail_forward_list.lng -<?php -$wb["list_head_txt"] = 'Mail Forward'; -$wb["active_txt"] = 'Active'; -$wb["source_txt"] = 'source'; -$wb["destination_txt"] = 'Destination'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Email forward'; +<?php +$wb["list_head_txt"] = 'Mail Forward'; +$wb["active_txt"] = 'Active'; +$wb["source_txt"] = 'source'; +$wb["destination_txt"] = 'Destination'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Email forward'; ?> --|mail|en|en_mail_get.lng <?php @@ -1395,13 +1395,13 @@ $wb["spam_redirect_maildir_purge_txt"] = 'Purge Maildir after'; $wb["days_txt"] = 'Days.'; ?> --|mail|en|en_mail_spamfilter_list.lng -<?php -$wb["list_head_txt"] = 'Spamfilter'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["server_name_txt"] = 'server_name'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add new Spamfilter record'; +<?php +$wb["list_head_txt"] = 'Spamfilter'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["server_name_txt"] = 'server_name'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add new Spamfilter record'; ?> --|mail|en|en_mail_transport.lng <?php @@ -1415,14 +1415,14 @@ $wb["active_txt"] = 'Active'; $wb["limit_mailrouting_txt"] = 'The max. number of routes for your account is reached.'; ?> --|mail|en|en_mail_transport_list.lng -<?php -$wb["list_head_txt"] = 'Advanced Email Routing'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["transport_txt"] = 'Transport'; -$wb["sort_order_txt"] = 'Sort by'; -$wb["add_new_record_txt"] = 'Add new transport'; +<?php +$wb["list_head_txt"] = 'Advanced Email Routing'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["transport_txt"] = 'Transport'; +$wb["sort_order_txt"] = 'Sort by'; +$wb["add_new_record_txt"] = 'Add new transport'; ?> --|mail|en|en_mail_user.lng <?php @@ -1478,11 +1478,11 @@ $wb["page_of_txt"] = 'of'; $wb["delete_confirmation"] = 'Do you really want to Delete the mailfilter?'; ?> --|mail|en|en_mail_user_list.lng -<?php -$wb["list_head_txt"] = 'Mailbox'; -$wb["email_txt"] = 'Email'; -$wb["autoresponder_txt"] = 'Autoresponder'; -$wb["add_new_record_txt"] = 'Add new Mailbox'; +<?php +$wb["list_head_txt"] = 'Mailbox'; +$wb["email_txt"] = 'Email'; +$wb["autoresponder_txt"] = 'Autoresponder'; +$wb["add_new_record_txt"] = 'Add new Mailbox'; ?> --|mail|en|en_mail_user_stats_list.lng <?php @@ -1504,15 +1504,15 @@ $wb["type_txt"] = 'Type'; $wb["limit_mailfilter_txt"] = 'The max. number of email filters for your account is reached.'; ?> --|mail|en|en_mail_whitelist_list.lng -<?php -$wb["list_head_txt"] = 'Email Whitelist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["source_txt"] = 'Whitelisted address'; -$wb["type_txt"] = 'Type'; -$wb["recipient_txt"] = 'Recipient'; -$wb["add_new_record_txt"] = 'Add new Whitelist record'; -$wb["access_txt"] = 'access'; +<?php +$wb["list_head_txt"] = 'Email Whitelist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["source_txt"] = 'Whitelisted address'; +$wb["type_txt"] = 'Type'; +$wb["recipient_txt"] = 'Recipient'; +$wb["add_new_record_txt"] = 'Add new Whitelist record'; +$wb["access_txt"] = 'access'; ?> --|mail|en|en_spamfilter_blacklist.lng <?php @@ -1601,14 +1601,14 @@ $wb["message_size_limit_txt"] = 'Message size limit'; $wb["banned_rulenames_txt"] = 'Banned rulenames'; ?> --|mail|en|en_spamfilter_policy_list.lng -<?php -$wb["list_head_txt"] = 'Spamfilter Policy'; -$wb["policy_name_txt"] = 'Name'; -$wb["virus_lover_txt"] = 'Virus lover'; -$wb["spam_lover_txt"] = 'Spam lover'; -$wb["banned_files_lover_txt"] = 'Banned Files lover'; -$wb["bad_header_lover_txt"] = 'Bad Header lover'; -$wb["add_new_record_txt"] = 'Add Policy record'; +<?php +$wb["list_head_txt"] = 'Spamfilter Policy'; +$wb["policy_name_txt"] = 'Name'; +$wb["virus_lover_txt"] = 'Virus lover'; +$wb["spam_lover_txt"] = 'Spam lover'; +$wb["banned_files_lover_txt"] = 'Banned Files lover'; +$wb["bad_header_lover_txt"] = 'Bad Header lover'; +$wb["add_new_record_txt"] = 'Add Policy record'; ?> --|mail|en|en_spamfilter_users.lng <?php @@ -1620,15 +1620,15 @@ $wb["fullname_txt"] = 'Name'; $wb["local_txt"] = 'Local'; ?> --|mail|en|en_spamfilter_users_list.lng -<?php -$wb["list_head_txt"] = 'Spamfilter Users'; -$wb["local_txt"] = 'Local'; -$wb["server_id_txt"] = 'Server'; -$wb["priority_txt"] = 'Priority'; -$wb["policy_id_txt"] = 'Policy'; -$wb["fullname_txt"] = 'Name'; -$wb["email_txt"] = 'Email'; -$wb["add_new_record_txt"] = 'Add Spamfilter User'; +<?php +$wb["list_head_txt"] = 'Spamfilter Users'; +$wb["local_txt"] = 'Local'; +$wb["server_id_txt"] = 'Server'; +$wb["priority_txt"] = 'Priority'; +$wb["policy_id_txt"] = 'Policy'; +$wb["fullname_txt"] = 'Name'; +$wb["email_txt"] = 'Email'; +$wb["add_new_record_txt"] = 'Add Spamfilter User'; ?> --|mail|en|en_spamfilter_whitelist.lng <?php @@ -1641,14 +1641,14 @@ $wb["active_txt"] = 'Active'; $wb["limit_spamfilter_wblist_txt"] = 'The max. number of White- or Blacklist records for your account is reached.'; ?> --|mail|en|en_spamfilter_whitelist_list.lng -<?php -$wb["list_head_txt"] = 'Spamfilter Whitelist'; -$wb["active_txt"] = 'Active'; -$wb["server_id_txt"] = 'Server'; -$wb["priority_txt"] = 'Priority'; -$wb["rid_txt"] = 'User'; -$wb["email_txt"] = 'Whitelisted Email'; -$wb["add_new_record_txt"] = 'Add Whitelist record'; +<?php +$wb["list_head_txt"] = 'Spamfilter Whitelist'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["priority_txt"] = 'Priority'; +$wb["rid_txt"] = 'User'; +$wb["email_txt"] = 'Whitelisted Email'; +$wb["add_new_record_txt"] = 'Add Whitelist record'; ?> --|monitor|en|en.lng <?php @@ -2053,44 +2053,44 @@ $wb["this_year_txt"] = 'This year'; $wb["last_year_txt"] = 'Last year'; ?> --|sites|en|en_web_subdomain.lng -<?php -$wb["ssl_state_txt"] = 'State'; -$wb["ssl_locality_txt"] = 'Locality'; -$wb["ssl_organisation_txt"] = 'Organisation'; -$wb["ssl_organisation_unit_txt"] = 'Organisation Unit'; -$wb["ssl_country_txt"] = 'Country'; -$wb["ssl_request_txt"] = 'SSL Request'; -$wb["ssl_cert_txt"] = 'SSL Certificate'; -$wb["ssl_bundle_txt"] = 'SSL Bundle'; -$wb["ssl_action_txt"] = 'SSL Action'; -$wb["server_id_txt"] = 'Server'; -$wb["domain_txt"] = 'Domain'; -$wb["type_txt"] = 'Type'; -$wb["parent_domain_id_txt"] = 'Parent Website'; -$wb["redirect_type_txt"] = 'Redirect Type'; -$wb["redirect_path_txt"] = 'Redirect Path'; -$wb["active_txt"] = 'Active'; -$wb["document_root_txt"] = 'Documentroot'; -$wb["system_user_txt"] = 'Linux User'; -$wb["system_group_txt"] = 'Linux Group'; -$wb["ip_address_txt"] = 'IP-Address'; -$wb["vhost_type_txt"] = 'VHost Type'; -$wb["hd_quota_txt"] = 'Harddisk Quota'; -$wb["traffic_quota_txt"] = 'Traffic Quaota'; -$wb["cgi_txt"] = 'CGI'; -$wb["ssi_txt"] = 'SSI'; -$wb["ssl_txt"] = 'SSL'; -$wb["suexec_txt"] = 'SuEXEC'; -$wb["php_txt"] = 'PHP'; -$wb["client_txt"] = 'Client'; -$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.'; -$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.'; -$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.'; -$wb["apache_directives_txt"] = 'Apache directives'; -$wb["domain_error_empty"] = 'Domain is empty.'; -$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.'; -$wb["domain_error_regex"] = 'Domain name invalid.'; -$wb["host_txt"] = 'Host'; +<?php +$wb["ssl_state_txt"] = 'State'; +$wb["ssl_locality_txt"] = 'Locality'; +$wb["ssl_organisation_txt"] = 'Organisation'; +$wb["ssl_organisation_unit_txt"] = 'Organisation Unit'; +$wb["ssl_country_txt"] = 'Country'; +$wb["ssl_request_txt"] = 'SSL Request'; +$wb["ssl_cert_txt"] = 'SSL Certificate'; +$wb["ssl_bundle_txt"] = 'SSL Bundle'; +$wb["ssl_action_txt"] = 'SSL Action'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["type_txt"] = 'Type'; +$wb["parent_domain_id_txt"] = 'Parent Website'; +$wb["redirect_type_txt"] = 'Redirect Type'; +$wb["redirect_path_txt"] = 'Redirect Path'; +$wb["active_txt"] = 'Active'; +$wb["document_root_txt"] = 'Documentroot'; +$wb["system_user_txt"] = 'Linux User'; +$wb["system_group_txt"] = 'Linux Group'; +$wb["ip_address_txt"] = 'IP-Address'; +$wb["vhost_type_txt"] = 'VHost Type'; +$wb["hd_quota_txt"] = 'Harddisk Quota'; +$wb["traffic_quota_txt"] = 'Traffic Quaota'; +$wb["cgi_txt"] = 'CGI'; +$wb["ssi_txt"] = 'SSI'; +$wb["ssl_txt"] = 'SSL'; +$wb["suexec_txt"] = 'SuEXEC'; +$wb["php_txt"] = 'PHP'; +$wb["client_txt"] = 'Client'; +$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.'; +$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.'; +$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.'; +$wb["apache_directives_txt"] = 'Apache directives'; +$wb["domain_error_empty"] = 'Domain is empty.'; +$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb["domain_error_regex"] = 'Domain name invalid.'; +$wb["host_txt"] = 'Host'; ?> --|sites|en|en_web_subdomain_list.lng <?php diff --git a/interface/web/themes/default/css/central.css b/interface/web/themes/default/css/central.css index e9268d5bff..0afb8c646b 100644 --- a/interface/web/themes/default/css/central.css +++ b/interface/web/themes/default/css/central.css @@ -1,32 +1,32 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) central stylesheet - ISPConfig 3: default theme - * (de) Zentrales Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import core styles | Basis-Stylesheets einbinden */ -@import url(../yaml/core/base.css); - -/* import screen layout | Screen-Layout einbinden */ -@import url(navigation/nav_top.css); -@import url(navigation/nav_side.css); -@import url(screen/basemod.css); -@import url(screen/basemod_2col_left_seo.css); -@import url(screen/content.css); -@import url(screen/uni-form-generic.css); -@import url(screen/uni-form.css); -@import url(screen/content_ispc.css); - -/* import print layout | Druck-Layout einbinden */ -@import url(print/print_100.css); +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) central stylesheet - ISPConfig 3: default theme + * (de) Zentrales Stylesheet - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import core styles | Basis-Stylesheets einbinden */ +@import url(../yaml/core/base.css); + +/* import screen layout | Screen-Layout einbinden */ +@import url(navigation/nav_top.css); +@import url(navigation/nav_side.css); +@import url(screen/basemod.css); +@import url(screen/basemod_2col_left_seo.css); +@import url(screen/content.css); +@import url(screen/uni-form-generic.css); +@import url(screen/uni-form.css); +@import url(screen/content_ispc.css); + +/* import print layout | Druck-Layout einbinden */ +@import url(print/print_100.css); diff --git a/interface/web/themes/default/css/patches/central.css b/interface/web/themes/default/css/patches/central.css index 3ed00400bf..27dd462b75 100644 --- a/interface/web/themes/default/css/patches/central.css +++ b/interface/web/themes/default/css/patches/central.css @@ -1,37 +1,37 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE-Patch stylesheet - ISPConfig 3: default theme - * (de) IE-Korrektur-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout-independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(../yaml/core/iehacks.css); - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /** - * min-width/max-width workaround for IE5.x & IE6 - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html #page_margins { - /* Fallback if JavaScript is disabled */ - width: 80%; - } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) IE-Patch stylesheet - ISPConfig 3: default theme + * (de) IE-Korrektur-Stylesheet - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* Layout-independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ +@import url(../yaml/core/iehacks.css); + +/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ +@media screen, projection +{ + /** + * min-width/max-width workaround for IE5.x & IE6 + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid no + */ + + * html #page_margins { + /* Fallback if JavaScript is disabled */ + width: 80%; + } +} diff --git a/interface/web/themes/default/css/print/print_100.css b/interface/web/themes/default/css/print/print_100.css index 94315a8af5..95e63e80ab 100644 --- a/interface/web/themes/default/css/print/print_100.css +++ b/interface/web/themes/default/css/print/print_100.css @@ -1,31 +1,31 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - ISPConfig 3: default theme - * (de) Druck-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../../yaml/core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet - ISPConfig 3: default theme + * (de) Druck-Stylesheet - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../../yaml/core/print_base.css); + +/* #col1 - x +** #col2 - 0 +** #col3 - 0 +*/ +@media print +{ + #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + + #col2 { display:none; } + #col3 { display:none; } +} diff --git a/interface/web/themes/default/css/screen/basemod_2col_left_seo.css b/interface/web/themes/default/css/screen/basemod_2col_left_seo.css index 525204b239..3914fc33b1 100644 --- a/interface/web/themes/default/css/screen/basemod_2col_left_seo.css +++ b/interface/web/themes/default/css/screen/basemod_2col_left_seo.css @@ -1,48 +1,48 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Variation of screen layout (basemod.css) - ISPConfig 3: default theme - * (de) Variation des Screenlayouts (basemod.css) - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * (en) Repositioning content container - * (de) Neupositionierung der Content Container - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | - * | 200px | flexible | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - /* #col1 becomes the fixed navigation column | #col1 wird zur Navigationsspalte mit fester Breite */ - #col1 { width: 200px; float:left} - #col1_content { padding: 0 10px 0 0; } - - /* #col2 is turned off | #col2 abschalten */ - #col2 { display:none; } - - /* #col3 becomes the main column | #col3 wird zur Hauptspalte */ - #col3 { margin-left: 200px; margin-right: 0; } - #col3_content { padding: 0px 10px 10px 20px; } - - /* Graphic-free column dividers between #col1 and #col3 | Grafikfreier Spaltentrenner zw. #col1 und #col3*/ - #col3 {border-left: 1px #ddd solid;} - #main {padding: 1em 0} -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Variation of screen layout (basemod.css) - ISPConfig 3: default theme + * (de) Variation des Screenlayouts (basemod.css) - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media screen, projection +{ + /** + * (en) Repositioning content container + * (de) Neupositionierung der Content Container + * + * |-------------------------------| + * | #header | + * |-------------------------------| + * | #col1 | #col3 | + * | 200px | flexible | + * |-------------------------------| + * | #footer | + * |-------------------------------| + */ + + /* #col1 becomes the fixed navigation column | #col1 wird zur Navigationsspalte mit fester Breite */ + #col1 { width: 200px; float:left} + #col1_content { padding: 0 10px 0 0; } + + /* #col2 is turned off | #col2 abschalten */ + #col2 { display:none; } + + /* #col3 becomes the main column | #col3 wird zur Hauptspalte */ + #col3 { margin-left: 200px; margin-right: 0; } + #col3_content { padding: 0px 10px 10px 20px; } + + /* Graphic-free column dividers between #col1 and #col3 | Grafikfreier Spaltentrenner zw. #col1 und #col3*/ + #col3 {border-left: 1px #ddd solid;} + #main {padding: 1em 0} +} diff --git a/interface/web/themes/default/css/screen/content.css b/interface/web/themes/default/css/screen/content.css index ad5a0d2b6b..daf1310029 100644 --- a/interface/web/themes/default/css/screen/content.css +++ b/interface/web/themes/default/css/screen/content.css @@ -1,188 +1,188 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01% } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family: Consolas,"Lucida Console","Courier New",monospace; - font-size: 0.9em; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', sans-serif; - font-size: 75.00%; - color: #444; - } - - h1,h2,h3,h4,h5,h6 { - font-family: 'Trebuchet MS', sans-serif; - font-weight:bold; - color:#666; - margin: 0 0 0.25em 0; - } - - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 200% } /* 24px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic } /* 14px */ - - #header h1 { - font-size:2.5em; - letter-spacing:-2px; - line-height:65%; - color: silver; - } - - #header span { - color:#333333; - } - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em } - - dt { font-weight: bold } - dd { margin: 0 0 1em 2em } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic } - blockquote { margin: 0 0 1em 1.5em } - - strong,b { font-weight: bold } - em,i { font-style:italic } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note {background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted;} - .important {background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted;} - .warning {background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted;} - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a {color: #4D87C7; text-decoration:none;} - a:focus, - a:hover, - a:active {color:#182E7A; text-decoration:underline;} - - #topsubnav a { color: #f0f8ff; font-weight: normal; background:transparent; text-decoration:none; } - #topsubnav a:focus, - #topsubnav a:hover, - #topsubnav a:active { text-decoration:underline; background-color: transparent;} - - #footer a { color: #999; background:transparent; font-weight: bold;} - #footer a:focus, - #footer a:hover, - #footer a:active {color: #4D87C7; background-color: transparent; text-decoration:underline;} - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed } - - th,td { padding: 0.5em; } - thead th { background: #444 url(../../images/lists_thead_bg.png) repeat-x; color: #fff } - tbody th { background: #ccc; color: #333 } - tbody th.sub { background: #ddd; color: #333 } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #eee solid; - } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Uniform design of standard content elements - ISPConfig 3: default theme + * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - ISPConfig 3: default theme + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + * @appdef yaml + */ + +@media all +{ + /** + * Fonts + * (en) font-family and font-size selection for headings and standard text elements + * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente + * + * @section content-fonts + */ + + /* (en) reset font size for all elements to standard (16 Pixel) */ + /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ + html * { font-size: 100.01% } + + /* (en) reset monospaced elements to font size 16px in Gecko browsers */ + /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ + textarea, pre, tt, code { + font-family: Consolas,"Lucida Console","Courier New",monospace; + font-size: 0.9em; + } + + /* (en) base layout gets standard font size 12px */ + /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ + body { + font-family: 'Trebuchet MS', sans-serif; + font-size: 75.00%; + color: #444; + } + + h1,h2,h3,h4,h5,h6 { + font-family: 'Trebuchet MS', sans-serif; + font-weight:bold; + color:#666; + margin: 0 0 0.25em 0; + } + + h1 { font-size: 200% } /* 24px */ + h2 { font-size: 200% } /* 24px */ + h3 { font-size: 150% } /* 18px */ + h4 { font-size: 133.33% } /* 16px */ + h5 { font-size: 116.67% } /* 14px */ + h6 { font-size: 116.67%; font-style:italic } /* 14px */ + + #header h1 { + font-size:2.5em; + letter-spacing:-2px; + line-height:65%; + color: silver; + } + + #header span { + color:#333333; + } + + p { line-height: 1.5em; margin: 0 0 1em 0; } + + /* ### Lists | Listen #### */ + + ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em } + li { margin-left: 1.5em; line-height: 1.5em } + + dt { font-weight: bold } + dd { margin: 0 0 1em 2em } + + /* ### text formatting | Textauszeichnung ### */ + + cite, blockquote { font-style:italic } + blockquote { margin: 0 0 1em 1.5em } + + strong,b { font-weight: bold } + em,i { font-style:italic } + + pre, code { font-family: monospace; font-size: 1.1em; } + + acronym, abbr { + letter-spacing: .07em; + border-bottom: .1em dashed #c00; + cursor: help; + } + + /** + * Generic Content Classes + * (en) standard classes for positioning and highlighting + * (de) Standardklassen zur Positionierung und Hervorhebung + * + * @section content-generic-classes + */ + + .note {background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted;} + .important {background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted;} + .warning {background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted;} + + .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } + .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } + .center { text-align:center; margin: 0.5em auto } + + /** + * External Links + * + * (en) Formatting of hyperlinks + * (de) Gestaltung von Hyperlinks + * + */ + + a {color: #4D87C7; text-decoration:none;} + a:focus, + a:hover, + a:active {color:#182E7A; text-decoration:underline;} + + #topsubnav a { color: #f0f8ff; font-weight: normal; background:transparent; text-decoration:none; } + #topsubnav a:focus, + #topsubnav a:hover, + #topsubnav a:active { text-decoration:underline; background-color: transparent;} + + #footer a { color: #999; background:transparent; font-weight: bold;} + #footer a:focus, + #footer a:hover, + #footer a:active {color: #4D87C7; background-color: transparent; text-decoration:underline;} + + /** + * (en) Emphasizing external Hyperlinks via CSS + * (de) Hervorhebung externer Hyperlinks mit CSS + * + * @section content-external-links + * @app-yaml-default disabled + */ + + /* + #main a[href^="http://www.my-domain.com"], + #main a[href^="https://www.my-domain.com"] + { + padding-left: 12px; + background-image: url('your_image.gif'); + background-repeat: no-repeat; + background-position: 0 0.45em; + } + */ + + /** + * Tables | Tabellen + * (en) Generic classes for table-width and design definition + * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen + * + * @section content-tables + */ + + table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } + table.full { width: 100%; } + table.fixed { table-layout:fixed } + + th,td { padding: 0.5em; } + thead th { background: #444 url(../../images/lists_thead_bg.png) repeat-x; color: #fff } + tbody th { background: #ccc; color: #333 } + tbody th.sub { background: #ddd; color: #333 } + + /** + * Miscellaneous | Sonstiges + * + * @section content-misc + */ + + hr { + color: #fff; + background:transparent; + margin: 0 0 0.5em 0; + padding: 0 0 0.5em 0; + border:0; + border-bottom: 1px #eee solid; + } +} diff --git a/interface/web/themes/default/css/screen/uni-form-generic.css b/interface/web/themes/default/css/screen/uni-form-generic.css index f9e0f390cc..8daf43953a 100644 --- a/interface/web/themes/default/css/screen/uni-form-generic.css +++ b/interface/web/themes/default/css/screen/uni-form-generic.css @@ -1,136 +1,136 @@ -/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */ -/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */ -/* Do not edit this file directly, make your changes to uni-form.css in the same folder */ - -/* ------------------------------------------------------------------------------ */ - -.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ - - /* Some generals and more resets */ - .uniForm fieldset{ border: none; margin: 0; padding: 0; } - .uniForm fieldset legend{ margin: 0; padding: 0; } - - /* This is the main unit that contains our form elements */ - .uniForm .ctrlHolder, - .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } - - /* Clear all floats */ - .uniForm:after, - .uniForm .buttonHolder:after, - .uniForm .ctrlHolder:after, - .uniForm .ctrlHolder .multiField:after, - .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } - - /* A class to be used on a label that contains a checkbox or a radio button */ - .uniForm .inlineLabel, - .uniForm .inlineLabels .inlineLabel, - .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; } - /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */ - /* Legacy/Inheritance fix */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are above the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .blockLabels */ - - .uniForm label, - .uniForm .label, - .uniForm .blockLabels label, - .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; } - - /* Float the input elements */ - .uniForm .textInput, - .uniForm .blockLabels .textInput, - .uniForm .blockLabels .fileUpload, - .uniForm .selectInput, - .uniForm .blockLabels .selectInput, - .uniForm .blockLabels select, - .uniForm textarea, - .uniForm .blockLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .formHint, - .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; } - - /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */ - .uniForm .multiField, - .uniForm .blockLabels .multiField{ width: auto; float: left; } - .uniForm .multiField .inlineLabel, - .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .multiField .blockLabel, - .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; } - .uniForm .multiField .blockLabel .textInput, - .uniForm .multiField .blockLabel .selectInput, - .uniForm .multiField .blockLabel select, - .uniForm .blockLabels .multiField .blockLabel .textInput, - .uniForm .blockLabels .multiField .blockLabel .selectInput, - .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are in line with the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; } - - /* Float the input elements */ - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload, - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select, - .uniForm .inlineLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .inlineLabels .formHint{ clear: both; float: none; } - .uniForm .inlineLabels .multiField{ float: left; } - .uniForm .inlineLabels .multiField .inlineLabel{} - .uniForm .inlineLabels .multiField .blockLabel{} - .uniForm .inlineLabels .multiField .blockLabel .textInput, - .uniForm .inlineLabels .multiField .blockLabel .selectInput, - .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; } - .uniForm .inlineLabels .multiField select{ float: left; } - -/* ------------------------------------------------------------------------------ */ - - /* Required fields asterisk styling for .blockLabels */ - .uniForm label em, - .uniForm .label em, - .uniForm .blockLabels label em, - .uniForm .blockLabels .label em{ position: absolute; left: -7px; } - - /* Required fields asterisk styling for .inlineLabels */ - .uniForm .inlineLabels label em, - .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; } - .uniForm .inlineLabel em{ position: absolute; left: 7px; } - -/* ------------------------------------------------------------------------------ */ - - /* Messages */ - .uniForm #errorMsg, - .uniForm .error{ - } - .uniForm #errorMsg dt, - .uniForm #errorMsg h3{ - } - .uniForm #errorMsg dd{ - } - .uniForm #errorMsg ol{ - } - .uniForm #errorMsg ol li{ - } - .uniForm .errorField{ - } - - .uniForm #OKMsg{ - } - -/* ------------------------------------------------------------------------------ */ - - /* Columns */ - - .uniForm .col{ float: left; } - .uniForm .col.first{} +/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */ +/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */ +/* Do not edit this file directly, make your changes to uni-form.css in the same folder */ + +/* ------------------------------------------------------------------------------ */ + +.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ + + /* Some generals and more resets */ + .uniForm fieldset{ border: none; margin: 0; padding: 0; } + .uniForm fieldset legend{ margin: 0; padding: 0; } + + /* This is the main unit that contains our form elements */ + .uniForm .ctrlHolder, + .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } + + /* Clear all floats */ + .uniForm:after, + .uniForm .buttonHolder:after, + .uniForm .ctrlHolder:after, + .uniForm .ctrlHolder .multiField:after, + .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } + + /* A class to be used on a label that contains a checkbox or a radio button */ + .uniForm .inlineLabel, + .uniForm .inlineLabels .inlineLabel, + .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; } + /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */ + /* Legacy/Inheritance fix */ + .uniForm .inlineLabel input, + .uniForm .inlineLabels .inlineLabel input, + .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; } + +/* ------------------------------------------------------------------------------ */ + + /* Styles for form controls where labels are above the input elements */ + /* Set the class of the parent (preferably to a fieldset) to .blockLabels */ + + .uniForm label, + .uniForm .label, + .uniForm .blockLabels label, + .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; } + + /* Float the input elements */ + .uniForm .textInput, + .uniForm .blockLabels .textInput, + .uniForm .blockLabels .fileUpload, + .uniForm .selectInput, + .uniForm .blockLabels .selectInput, + .uniForm .blockLabels select, + .uniForm textarea, + .uniForm .blockLabels textarea{ float: left; } + + /* Postition the hints */ + .uniForm .formHint, + .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; } + + /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */ + .uniForm .multiField, + .uniForm .blockLabels .multiField{ width: auto; float: left; } + .uniForm .multiField .inlineLabel, + .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } + .uniForm .multiField .blockLabel, + .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; } + .uniForm .multiField .blockLabel .textInput, + .uniForm .multiField .blockLabel .selectInput, + .uniForm .multiField .blockLabel select, + .uniForm .blockLabels .multiField .blockLabel .textInput, + .uniForm .blockLabels .multiField .blockLabel .selectInput, + .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; } + +/* ------------------------------------------------------------------------------ */ + + /* Styles for form controls where labels are in line with the input elements */ + /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ + .uniForm .inlineLabels label, + .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; } + + /* Float the input elements */ + .uniForm .inlineLabels .textInput, + .uniForm .inlineLabels .fileUpload, + .uniForm .inlineLabels .selectInput, + .uniForm .inlineLabels select, + .uniForm .inlineLabels textarea{ float: left; } + + /* Postition the hints */ + .uniForm .inlineLabels .formHint{ clear: both; float: none; } + .uniForm .inlineLabels .multiField{ float: left; } + .uniForm .inlineLabels .multiField .inlineLabel{} + .uniForm .inlineLabels .multiField .blockLabel{} + .uniForm .inlineLabels .multiField .blockLabel .textInput, + .uniForm .inlineLabels .multiField .blockLabel .selectInput, + .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; } + .uniForm .inlineLabels .multiField select{ float: left; } + +/* ------------------------------------------------------------------------------ */ + + /* Required fields asterisk styling for .blockLabels */ + .uniForm label em, + .uniForm .label em, + .uniForm .blockLabels label em, + .uniForm .blockLabels .label em{ position: absolute; left: -7px; } + + /* Required fields asterisk styling for .inlineLabels */ + .uniForm .inlineLabels label em, + .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; } + .uniForm .inlineLabel em{ position: absolute; left: 7px; } + +/* ------------------------------------------------------------------------------ */ + + /* Messages */ + .uniForm #errorMsg, + .uniForm .error{ + } + .uniForm #errorMsg dt, + .uniForm #errorMsg h3{ + } + .uniForm #errorMsg dd{ + } + .uniForm #errorMsg ol{ + } + .uniForm #errorMsg ol li{ + } + .uniForm .errorField{ + } + + .uniForm #OKMsg{ + } + +/* ------------------------------------------------------------------------------ */ + + /* Columns */ + + .uniForm .col{ float: left; } + .uniForm .col.first{} .uniForm .col.last{} \ No newline at end of file diff --git a/interface/web/themes/default/licences.txt b/interface/web/themes/default/licences.txt index 5a50cbb39e..9b810056fd 100644 --- a/interface/web/themes/default/licences.txt +++ b/interface/web/themes/default/licences.txt @@ -1,8 +1,8 @@ -Theme created by Martin Henne (red-ray.de) - -based on: - -Templates: http://www.yaml.de -Web-Forms: http://www.sprawsm.com/uni-form/ -Icons: http://www.pinvoke.com and http://www.randomjabber.com/static/sizcons -Know-How: http://particletree.com/features/rediscovering-the-button-element +Theme created by Martin Henne (red-ray.de) + +based on: + +Templates: http://www.yaml.de +Web-Forms: http://www.sprawsm.com/uni-form/ +Icons: http://www.pinvoke.com and http://www.randomjabber.com/static/sizcons +Know-How: http://particletree.com/features/rediscovering-the-button-element diff --git a/interface/web/themes/default/templates/module.tpl.htm b/interface/web/themes/default/templates/module.tpl.htm index 36cdd09c73..5192c43814 100644 --- a/interface/web/themes/default/templates/module.tpl.htm +++ b/interface/web/themes/default/templates/module.tpl.htm @@ -1,37 +1,37 @@ - <tr> - <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> - <td rowspan="3" class="mainContent"> - <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> - <tr> - <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> - </tr> - </table> - </td> - </tr> - <tr> - <td width="128" align="right" valign="top" bgcolor="#DEE4F2"><table width="128" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td height="10"> </td> - </tr> - <tr><td align="center"> - <tmpl_loop name="nav_left"> - <table bgcolor="#F4F6FB" width="115"> - <tr> - <td class="navLeftHead"><tmpl_var name="title"></td> - </tr> - <tr> - <td> - <tmpl_loop name="items"> - <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> - </tmpl_loop> - </td> - </tr> - </table> - <br /> - </tmpl_loop> - </td></tr> - </table></td> - </tr> - <tr> - <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> + <tr> + <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> + <td rowspan="3" class="mainContent"> + <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> + <tr> + <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> + </tr> + </table> + </td> + </tr> + <tr> + <td width="128" align="right" valign="top" bgcolor="#DEE4F2"><table width="128" border="0" cellspacing="0" cellpadding="2"> + <tr> + <td height="10"> </td> + </tr> + <tr><td align="center"> + <tmpl_loop name="nav_left"> + <table bgcolor="#F4F6FB" width="115"> + <tr> + <td class="navLeftHead"><tmpl_var name="title"></td> + </tr> + <tr> + <td> + <tmpl_loop name="items"> + <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> + </tmpl_loop> + </td> + </tr> + </table> + <br /> + </tmpl_loop> + </td></tr> + </table></td> + </tr> + <tr> + <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> </tr> \ No newline at end of file diff --git a/interface/web/themes/default/templates/module_tree.tpl.htm b/interface/web/themes/default/templates/module_tree.tpl.htm index b0895789ab..bb6242d0b6 100644 --- a/interface/web/themes/default/templates/module_tree.tpl.htm +++ b/interface/web/themes/default/templates/module_tree.tpl.htm @@ -1,38 +1,38 @@ - <tr> - <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> - <td rowspan="3" class="mainContent"> - <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> - <tr> - <td width="200"><iframe height="100%" width="100%" frameborder="0" name="navframe" src="{tmpl_var name="navframe_page"}"></iframe></td> - <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> - </tr> - </table> - </td> - </tr> - <tr> - <td width="128" align="right" valign="top" bgcolor="#DEE4F2"><table width="128" border="0" cellspacing="0" cellpadding="2"> - <tr> - <td height="10"> </td> - </tr> - <tr><td align="center"> - <tmpl_loop name="nav_left"> - <table bgcolor="#F4F6FB" width="115"> - <tr> - <td class="navLeftHead"><tmpl_var name="title"></td> - </tr> - <tr> - <td> - <tmpl_loop name="items"> - <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> - </tmpl_loop> - </td> - </tr> - </table> - <br /> - </tmpl_loop> - </td></tr> - </table></td> - </tr> - <tr> - <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> + <tr> + <td width="128" height="26" background="themes/{tmpl_var name="theme"}/images/nav_top_bg.gif"> </td> + <td rowspan="3" class="mainContent"> + <table width="100%" height="100%" border="0" cellpadding="20" cellspacing="0"> + <tr> + <td width="200"><iframe height="100%" width="100%" frameborder="0" name="navframe" src="{tmpl_var name="navframe_page"}"></iframe></td> + <td><iframe height="100%" width="100%" frameborder="0" name="content" src="{tmpl_var name="startpage"}"></iframe></td> + </tr> + </table> + </td> + </tr> + <tr> + <td width="128" align="right" valign="top" bgcolor="#DEE4F2"><table width="128" border="0" cellspacing="0" cellpadding="2"> + <tr> + <td height="10"> </td> + </tr> + <tr><td align="center"> + <tmpl_loop name="nav_left"> + <table bgcolor="#F4F6FB" width="115"> + <tr> + <td class="navLeftHead"><tmpl_var name="title"></td> + </tr> + <tr> + <td> + <tmpl_loop name="items"> + <a href="<tmpl_var name='link'>" class="navLeftItem" target="<tmpl_var name='target'>"><tmpl_var name="title"></a><br> + </tmpl_loop> + </td> + </tr> + </table> + <br /> + </tmpl_loop> + </td></tr> + </table></td> + </tr> + <tr> + <td align="left" valign="bottom" bgcolor="#DEE4F2"> </td> </tr> \ No newline at end of file diff --git a/interface/web/themes/default/templates/sidenav.tpl.htm b/interface/web/themes/default/templates/sidenav.tpl.htm index 71cb9bb017..c71361c2bd 100644 --- a/interface/web/themes/default/templates/sidenav.tpl.htm +++ b/interface/web/themes/default/templates/sidenav.tpl.htm @@ -1,24 +1,24 @@ -<ul id="submenu"> -<tmpl_loop name="nav_left"> - <li class="title"> - <tmpl_if name="startpage"> - <a href="#" onClick="loadContent('<tmpl_var name='startpage'>')"> - </tmpl_if> - <tmpl_var name="title"> - <tmpl_if name="startpage"> - </a> - </tmpl_if> - </li> - <tmpl_loop name="items"> - <li <tmpl_if name="html_id"> id='<tmpl_var name="html_id">' </tmpl_if>> - <tmpl_if name="link"> - <a href="#" onClick="loadContent('<tmpl_var name='link'>')"> - </tmpl_if> - <tmpl_var name="title"> - <tmpl_if name="link"> - </a> - </tmpl_if> - </li> - </tmpl_loop> -</tmpl_loop> -</ul> +<ul id="submenu"> +<tmpl_loop name="nav_left"> + <li class="title"> + <tmpl_if name="startpage"> + <a href="#" onClick="loadContent('<tmpl_var name='startpage'>')"> + </tmpl_if> + <tmpl_var name="title"> + <tmpl_if name="startpage"> + </a> + </tmpl_if> + </li> + <tmpl_loop name="items"> + <li <tmpl_if name="html_id"> id='<tmpl_var name="html_id">' </tmpl_if>> + <tmpl_if name="link"> + <a href="#" onClick="loadContent('<tmpl_var name='link'>')"> + </tmpl_if> + <tmpl_var name="title"> + <tmpl_if name="link"> + </a> + </tmpl_if> + </li> + </tmpl_loop> +</tmpl_loop> +</ul> diff --git a/interface/web/themes/default/templates/tabbed_form.tpl.htm b/interface/web/themes/default/templates/tabbed_form.tpl.htm index 0e31bc0565..c4e618da4e 100644 --- a/interface/web/themes/default/templates/tabbed_form.tpl.htm +++ b/interface/web/themes/default/templates/tabbed_form.tpl.htm @@ -1,28 +1,28 @@ -<tmpl_if name="form_hint"> -<h2><tmpl_var name="form_hint"></h2> -</tmpl_if> -<div class="tabbox_tabs"> - <ul> -<tmpl_loop name="formTab"> -<tmpl_if name="active"> - <li class="active"><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> -<tmpl_else> - <li><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> -</tmpl_if> -</tmpl_loop> - </ul> -</div> -<div id="tabbox_content"> - - <tmpl_if name="msg"> - <div id="OKMsg"><p><tmpl_var name="msg"></p></div> - </tmpl_if> - <tmpl_if name="error"> - <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> - </tmpl_if> - - <tmpl_dyninclude name="content_tpl"> -</div> - -<input type="hidden" name="next_tab" value=""> -<input type="hidden" name="phpsessid" value="{tmpl_var name='phpsessid'}"> +<tmpl_if name="form_hint"> +<h2><tmpl_var name="form_hint"></h2> +</tmpl_if> +<div class="tabbox_tabs"> + <ul> +<tmpl_loop name="formTab"> +<tmpl_if name="active"> + <li class="active"><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> +<tmpl_else> + <li><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li> +</tmpl_if> +</tmpl_loop> + </ul> +</div> +<div id="tabbox_content"> + + <tmpl_if name="msg"> + <div id="OKMsg"><p><tmpl_var name="msg"></p></div> + </tmpl_if> + <tmpl_if name="error"> + <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div> + </tmpl_if> + + <tmpl_dyninclude name="content_tpl"> +</div> + +<input type="hidden" name="next_tab" value=""> +<input type="hidden" name="phpsessid" value="{tmpl_var name='phpsessid'}"> diff --git a/interface/web/themes/default/templates/topnav.tpl.htm b/interface/web/themes/default/templates/topnav.tpl.htm index 668df7ba37..562f4a0f07 100644 --- a/interface/web/themes/default/templates/topnav.tpl.htm +++ b/interface/web/themes/default/templates/topnav.tpl.htm @@ -1,9 +1,9 @@ -<ul id="topmenu"> -<tmpl_loop name="nav_top"> -<tmpl_if name="active"> - <li id="topNav_current"><a href="#" class="topnav topnav-<tmpl_var name='module'>"><tmpl_var name="title"></a></li> -<tmpl_else> - <li><a href="#" onClick="capp('<tmpl_var name='module'>')" class="topnav topnav-<tmpl_var name='module'>"><tmpl_var name="title"></a></li> -</tmpl_if> -</tmpl_loop> -</ul> +<ul id="topmenu"> +<tmpl_loop name="nav_top"> +<tmpl_if name="active"> + <li id="topNav_current"><a href="#" class="topnav topnav-<tmpl_var name='module'>"><tmpl_var name="title"></a></li> +<tmpl_else> + <li><a href="#" onClick="capp('<tmpl_var name='module'>')" class="topnav topnav-<tmpl_var name='module'>"><tmpl_var name="title"></a></li> +</tmpl_if> +</tmpl_loop> +</ul> diff --git a/interface/web/themes/default/yaml/!important.txt b/interface/web/themes/default/yaml/!important.txt index dfdf80ddac..ce2cc2df1b 100644 --- a/interface/web/themes/default/yaml/!important.txt +++ b/interface/web/themes/default/yaml/!important.txt @@ -1,4 +1,4 @@ -DON'T EDIT ANYTHING INSIDE THIS DIRECTORY! - -This theme is based on YAML V3.0.6, Build: 080609 (http://www.yaml.de/) -CSS-Styles can be changed in the /themes/default/css/ directory +DON'T EDIT ANYTHING INSIDE THIS DIRECTORY! + +This theme is based on YAML V3.0.6, Build: 080609 (http://www.yaml.de/) +CSS-Styles can be changed in the /themes/default/css/ directory diff --git a/interface/web/themes/default/yaml/core/base.css b/interface/web/themes/default/yaml/core/base.css index 632248e2f5..bc24d1550e 100644 --- a/interface/web/themes/default/yaml/core/base.css +++ b/interface/web/themes/default/yaml/core/base.css @@ -1,229 +1,229 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - * (de) YAML Basis-Stylesheet - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser reset - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - */ - - /* (en) Global reset of paddings and margins for all HTML elements */ - /* (de) Globales Zurücksetzen der Innen- und Außenabstände für alle HTML-Elemente */ - * { margin:0; padding: 0; } - - /* (en) Correction: margin/padding reset caused too small select boxes. */ - /* (de) Korrektur: Das Zurücksetzen der Abstände verursacht zu kleine Selectboxen. */ - option { padding-left: 0.4em; } - - /** - * (en) Global fix of the Italics bugs in IE 5.x and IE 6 - * (de) Globale Korrektur des Italics Bugs des IE 5.x und IE 6 - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html body * { overflow:visible; } - * html iframe, * html frame { overflow:auto; } - * html frameset { overflow:hidden; } - - /* (en) Forcing vertical scrollbars in Netscape, Firefox and Safari browsers */ - /* (de) Erzwingen vertikaler Scrollbalken in Netscape, Firefox und Safari Browsern */ - html { height: 100%; margin-bottom: 1px; } - body { - /* (en) Fix for rounding errors when scaling font sizes in older versions of Opera browser */ - /* (de) Beseitigung von Rundungsfehler beim Skalieren von Schriftgrößen in älteren Opera Versionen */ - font-size: 100.01%; - - /* (en) Standard values for colors and text alignment */ - /* (de) Vorgabe der Standardfarben und Textausrichtung */ - color: #000; - background: #fff; - text-align: left; - } - - /* (en) Clear borders for <fieldset> and <img> elements */ - /* (de) Rahmen für <fieldset> und <img> Elemente löschen */ - fieldset, img { border: 0 solid; } - - /* (en) new standard values for lists, blockquote and cite */ - /* (de) Neue Standardwerte für Listen & Zitate */ - ul, ol, dl { margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - blockquote { margin: 0 0 1em 1.5em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section base layout | Basis Layout - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | #col2 | - * | 200 px | flexible | 200px | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - #header { position:relative; } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topnav { text-align: right; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topnav { - position:absolute; - top: 10px; - right: 10px; - } - - /* (en) Backup for correct positioning */ - /* (de) Absicherung korrekte Positionierung */ - #header, #nav, #main, #footer { clear:both; } - - /* (en/de) Standard: 200 Pixel */ - #col1 { float: left; width: 200px } - /* (en/de) Standard: 200 Pixel */ - #col2 { float:right; width: 200px } - /* (en) Standard: center column with flexible width */ - /* (de) Standard: Flexible mittlere Spalte */ - #col3 { width:auto; margin: 0 200px } - - /* (en) Preparation for absolute positioning within content columns */ - /* (de) Vorbereitung für absolute Positionierungen innerhalb der Inhaltsspalten */ - #col1_content, #col2_content, #col3_content { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section generic classes for layout switching | Generische Klassen zur Layoutumschaltung - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * .hidecol1 -> 2-column-layout (using #col2 and #col3) - * .hidecol2 -> 2-column-layout (using #col1 and #col3) - * .hideboth -> single-column-layout (using #col3) - */ - - .hideboth #col3 { margin-left: 0; margin-right: 0; } - .hidecol1 #col3 { margin-left: 0; margin-right: 200px; } - .hidecol2 #col3 { margin-left: 200px; margin-right: 0; } - - .hideboth #col1, .hideboth #col2, .hidecol1 #col1, .hidecol2 #col2 { display:none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section clearing methods - * @see http://yaml.de/en/documentation/basics/general.html - */ - - /* (en) clearfix method for clearing floats */ - /* (de) Clearfix-Methode zum Clearen der Float-Umgebungen */ - .clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - - /* (en) essential for Safari browser !! */ - /* (de) Diese Angabe benötigt der Safari-Browser zwingend !! */ - .clearfix { display: block; } - - /* (en) overflow method for clearing floats */ - /* (de) Overflow-Methode zum Clearen der Float-Umgebungen */ - .floatbox { overflow:hidden; } - - /* (en) IE-Clearing: Only used in Internet Explorer, switched on in iehacks.css */ - /* (de) IE-Clearing: Benötigt nur der Internet Explorer und über iehacks.css zugeschaltet */ - #ie_clearing { display: none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section subtemplates - * @see http://www.yaml.de/en/documentation/practice/subtemplates.html - */ - - .subcolumns { width: 100%; overflow:hidden; } - - /* (en) alternative class for optional support of old Mozilla/Netscape browers */ - /* (de) Alternative Klasse zur optionalen Unterstützung alter Mozilla/Netscape-Brower */ - .subcolumns_oldgecko { width: 100%; float:left; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l {float: left; } - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r {float: right; margin-left: -5px; } - - .c25l, .c25r { width: 25%; } - .c33l, .c33r { width: 33.333%; } - .c50l, .c50r { width: 50%; } - .c66l, .c66r { width: 66.666%; } - .c75l, .c75r { width: 75%; } - .c38l, .c38r { width: 38.2%; } - .c62l, .c62r { width: 61.8%; } - - .subc { padding: 0 0.5em; } - .subcl { padding: 0 1em 0 0; } - .subcr { padding: 0 0 0 1em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section hidden elements | Versteckte Elemente - * @see http://www.yaml.de/en/documentation/basics/skip-links.html - * - * (en) skip links and hidden content - * (de) Skip-Links und versteckte Inhalte - */ - - /* (en) classes for invisible elements in the base layout */ - /* (de) Klassen für unsichtbare Elemente im Basislayout */ - .skip, .hideme, .print { - position: absolute; - top: -1000em; - left: -1000em; - height: 1px; - width: 1px; - } - - /* (en) make skip links visible when using tab navigation */ - /* (de) Skip-Links für Tab-Navigation sichtbar schalten */ - .skip:focus, .skip:active { - position: static; - top: 0; - left: 0; - height: auto; - width: auto; - } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) YAML core stylesheet + * (de) YAML Basis-Stylesheet + * + * Don't make any changes in this file! + * Your changes should be placed in any css-file in your own stylesheet folder. + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media all +{ + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section browser reset + * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html + */ + + /* (en) Global reset of paddings and margins for all HTML elements */ + /* (de) Globales Zurücksetzen der Innen- und Außenabstände für alle HTML-Elemente */ + * { margin:0; padding: 0; } + + /* (en) Correction: margin/padding reset caused too small select boxes. */ + /* (de) Korrektur: Das Zurücksetzen der Abstände verursacht zu kleine Selectboxen. */ + option { padding-left: 0.4em; } + + /** + * (en) Global fix of the Italics bugs in IE 5.x and IE 6 + * (de) Globale Korrektur des Italics Bugs des IE 5.x und IE 6 + * + * @bugfix + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + * html body * { overflow:visible; } + * html iframe, * html frame { overflow:auto; } + * html frameset { overflow:hidden; } + + /* (en) Forcing vertical scrollbars in Netscape, Firefox and Safari browsers */ + /* (de) Erzwingen vertikaler Scrollbalken in Netscape, Firefox und Safari Browsern */ + html { height: 100%; margin-bottom: 1px; } + body { + /* (en) Fix for rounding errors when scaling font sizes in older versions of Opera browser */ + /* (de) Beseitigung von Rundungsfehler beim Skalieren von Schriftgrößen in älteren Opera Versionen */ + font-size: 100.01%; + + /* (en) Standard values for colors and text alignment */ + /* (de) Vorgabe der Standardfarben und Textausrichtung */ + color: #000; + background: #fff; + text-align: left; + } + + /* (en) Clear borders for <fieldset> and <img> elements */ + /* (de) Rahmen für <fieldset> und <img> Elemente löschen */ + fieldset, img { border: 0 solid; } + + /* (en) new standard values for lists, blockquote and cite */ + /* (de) Neue Standardwerte für Listen & Zitate */ + ul, ol, dl { margin: 0 0 1em 1em } + li { margin-left: 1.5em; line-height: 1.5em; } + + dt { font-weight: bold; } + dd { margin: 0 0 1em 2em; } + + blockquote { margin: 0 0 1em 1.5em; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section base layout | Basis Layout + * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html + * + * |-------------------------------| + * | #header | + * |-------------------------------| + * | #col1 | #col3 | #col2 | + * | 200 px | flexible | 200px | + * |-------------------------------| + * | #footer | + * |-------------------------------| + */ + + #header { position:relative; } + + /* (en) Text Alignment for #topnav content */ + /* (de) Textausrichtung für #topnav Inhalte */ + #topnav { text-align: right; } + + /* (en) Absolute positioning only within #header */ + /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ + #header #topnav { + position:absolute; + top: 10px; + right: 10px; + } + + /* (en) Backup for correct positioning */ + /* (de) Absicherung korrekte Positionierung */ + #header, #nav, #main, #footer { clear:both; } + + /* (en/de) Standard: 200 Pixel */ + #col1 { float: left; width: 200px } + /* (en/de) Standard: 200 Pixel */ + #col2 { float:right; width: 200px } + /* (en) Standard: center column with flexible width */ + /* (de) Standard: Flexible mittlere Spalte */ + #col3 { width:auto; margin: 0 200px } + + /* (en) Preparation for absolute positioning within content columns */ + /* (de) Vorbereitung für absolute Positionierungen innerhalb der Inhaltsspalten */ + #col1_content, #col2_content, #col3_content { position:relative; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section generic classes for layout switching | Generische Klassen zur Layoutumschaltung + * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html + * + * .hidecol1 -> 2-column-layout (using #col2 and #col3) + * .hidecol2 -> 2-column-layout (using #col1 and #col3) + * .hideboth -> single-column-layout (using #col3) + */ + + .hideboth #col3 { margin-left: 0; margin-right: 0; } + .hidecol1 #col3 { margin-left: 0; margin-right: 200px; } + .hidecol2 #col3 { margin-left: 200px; margin-right: 0; } + + .hideboth #col1, .hideboth #col2, .hidecol1 #col1, .hidecol2 #col2 { display:none; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section clearing methods + * @see http://yaml.de/en/documentation/basics/general.html + */ + + /* (en) clearfix method for clearing floats */ + /* (de) Clearfix-Methode zum Clearen der Float-Umgebungen */ + .clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + } + + /* (en) essential for Safari browser !! */ + /* (de) Diese Angabe benötigt der Safari-Browser zwingend !! */ + .clearfix { display: block; } + + /* (en) overflow method for clearing floats */ + /* (de) Overflow-Methode zum Clearen der Float-Umgebungen */ + .floatbox { overflow:hidden; } + + /* (en) IE-Clearing: Only used in Internet Explorer, switched on in iehacks.css */ + /* (de) IE-Clearing: Benötigt nur der Internet Explorer und über iehacks.css zugeschaltet */ + #ie_clearing { display: none; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section subtemplates + * @see http://www.yaml.de/en/documentation/practice/subtemplates.html + */ + + .subcolumns { width: 100%; overflow:hidden; } + + /* (en) alternative class for optional support of old Mozilla/Netscape browers */ + /* (de) Alternative Klasse zur optionalen Unterstützung alter Mozilla/Netscape-Brower */ + .subcolumns_oldgecko { width: 100%; float:left; } + + .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l {float: left; } + .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r {float: right; margin-left: -5px; } + + .c25l, .c25r { width: 25%; } + .c33l, .c33r { width: 33.333%; } + .c50l, .c50r { width: 50%; } + .c66l, .c66r { width: 66.666%; } + .c75l, .c75r { width: 75%; } + .c38l, .c38r { width: 38.2%; } + .c62l, .c62r { width: 61.8%; } + + .subc { padding: 0 0.5em; } + .subcl { padding: 0 1em 0 0; } + .subcr { padding: 0 0 0 1em; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section hidden elements | Versteckte Elemente + * @see http://www.yaml.de/en/documentation/basics/skip-links.html + * + * (en) skip links and hidden content + * (de) Skip-Links und versteckte Inhalte + */ + + /* (en) classes for invisible elements in the base layout */ + /* (de) Klassen für unsichtbare Elemente im Basislayout */ + .skip, .hideme, .print { + position: absolute; + top: -1000em; + left: -1000em; + height: 1px; + width: 1px; + } + + /* (en) make skip links visible when using tab navigation */ + /* (de) Skip-Links für Tab-Navigation sichtbar schalten */ + .skip:focus, .skip:active { + position: static; + top: 0; + left: 0; + height: auto; + width: auto; + } +} diff --git a/interface/web/themes/default/yaml/core/iehacks.css b/interface/web/themes/default/yaml/core/iehacks.css index 85445964d7..41c3ee4202 100644 --- a/interface/web/themes/default/yaml/core/iehacks.css +++ b/interface/web/themes/default/yaml/core/iehacks.css @@ -1,310 +1,310 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - structure-independent bugfixes of IE/Win CSS-bugs - * (de) YAML Basis-Stylesheet - Strukturunabhängige Bugfixes von CSS-Bugs des IE/Win - * - * Don't make any changes in this file! - * Your changes should be added to a separate patch-file. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * (en) Debugging: When you see a green background, IE is getting this stylesheet - * (de) Fehlersuche: Hintergrund leuchtet grün, wenn das Stylesheet korrekt geladen wurde - * - * @debug - * @app-yaml-default disabled - */ - - /* body { background: #0f0; background-image: none; } */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Forcing vertical scrollbars is not needed in IE (only for Firefox/Netscape/Safari) - * (de) Erzwingen vertikaler Scrollbalken im IE nicht benötigt (nur im Firefox/Netscape/Safari) - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - html { height: auto; margin-bottom:0; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Fixes IE5.x and IE6 overflow behavior of textarea and input elements elements - * (de) Korrigiert das fehlerhafte overflow-Verhalten von textarea und input-Elementen - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html textarea { overflow:scroll; overflow-x: hidden; } - * html input { overflow: hidden; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Stability fixes with 'position:relative' - * (de) Stabilitätsverbesserungen durch 'position:relative' - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - body { position:relative; } /* Essential in IE7 for correct layout scaling ... */ - * html body { position:static; } /* ... but not for IE5.x and IE6 */ - #main { position: relative; } /* helpful for several problems in older IE versions*/ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Clearfix Method for containing floats in IE - * (de) Clearfix-Anpassung für diverse IE-Versionen - * - * @workaround - * @see http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/#comment28 - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - - .clearfix { display: inline-block; } /* ... especial for IE7 */ - .clearfix { display: block; } /* ... für IE5,IE6,IE7 */ - * html .clearfix { height: 1%; } /* ... für IE5 + IE6/Win | hasLayout aktivieren */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Adjustment of .floatbox class for IE - * (de) Anpassung der .floatbox-Klasse für IE - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html .floatbox { width:100%; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Special class for oversized content element - * (de) Spezielle Klasse für übergroße Inhaltselemente - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - .slidebox { - position:relative; - margin-right: -1000px; - height: 1%; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en): Bugfix for partially displayed column separators - * (de): Bugfix für unvollständige Darstellung der Spalteninhalte / Spaltentrenner - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1, - * html #col2, - * html #col3 { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Preventing several css bugs by forcing "hasLayout" - * (de) Vermeidung verschiedenster Bugs durch Erzwingen von "hasLayout" - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - body { height: 1%; } - #page_margins, #page, #header, #nav, #main, #footer { zoom:1; } /* IE6 & IE7 */ - #page_margins, #page { height: 1%; } /* IE 5.x */ - * html #header, * html #nav, * html #main, * html #footer { width: 100%; } /* IE 5.x & IE6 */ - * html #header, * html #nav, * html #main, * html #footer { wid\th: auto; } /* IE 6 */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Disappearing List-Background Bug - * @see http://www.positioniseverything.net/explorer/ie-listbug.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html ul, * html ol, * html dl { position: relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * List-Numbering Bug - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - body ol li { display:list-item; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Workaround for 'collapsing margin at #col3' when using CSS-property clear - * Left margin of #col3 collapses when using clear:both in 1-3-2 (or 2-3-1) layout and right column is the - * longest and left column is the shortest one. For IE6 and IE7 a special workaround was developed - * in YAML. - * - * (de) Workaround für 'kollabierenden Margin an #col3' bei Verwendung der CSS-Eigenschaft clear - * Der linke Margin von #col3 kollabiert bei der Verwendung von clear:both im 1-3-2 (oder 2-3-1) Layout - * wenn gleichzeitig die rechte Spalte die kürzeste und die rechte die Längste ist. Im IE6 und IE7 lässt - * sich der Bug durch eine speziell für YAML entwickelten Workaround umgehen. - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - #ie_clearing { - /* (en) Only a small help for debugging */ - /* (de) Nur eine kleine Hilfe zur Fehlersuche */ - position:static; - - /* (en) Make container visible in IE */ - /* (de) Container sichtbar machen im IE */ - display:block; - - /* (en) No fix possible in IE5.x, normal clearing used instead */ - /* (de) Kein Fix im IE5.x möglich, daher normales Clearing */ - \clear:both; - - /* (en) forcing clearing-like behavior with a simple oversized container in IE6 & IE7*/ - /* (de) IE-Clearing mit 100%-DIV für IE6 bzw. übergroßem Container im IE7 */ - width: 100%; - font-size:0px; - margin: -2px 0 -1em 1px; - } - - * html #ie_clearing { margin: -2px 0 -1em 0; } - #col3_content {margin-bottom:-2px; } - - /* (en) avoid horizontal scrollbars in IE7 in borderless layouts because of negative margins */ - /* (de) Vermeidung horizontaler Scrollbalken bei randabfallenden Layouts im IE7 */ - html { margin-right: 1px; } - * html { margin-right: 0 } - - - /* (en) Bugfix: Essential for IE7 */ - /* (de) Bugfix: Notwendig im IE7 */ - #col3 { position:relative; z-index: -1; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * IE/Win Guillotine Bug - * @see http://www.positioniseverything.net/explorer/guillotine.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html body a, * html body a:hover { background-color: transparent; } - -} - -@media screen, projection -{ - /** - * (en) IE-Adjustments for content columns and subtemplates - * (de) IE-Anpassung für Spaltencontainer und Subtemplates - * - * Doubled Float-Margin Bug - * @see http://positioniseverything.net/explorer/doubled-margin.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col1, #col2 { display:inline; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l, - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r { display:inline; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Internet Explorer and the Expanding Box Problem - * @see http://www.positioniseverything.net/explorer/expandingboxbug.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1_content, - * html #col2_content, - * html #col3_content { word-wrap: break-word; } - - * html .subcolumns .subc, - * html .subcolumns .subcl, - * html .subcolumns .subcr { word-wrap: break-word; overflow:hidden; } -} - -@media print -{ - /** - * (en) Avoid unneeded page breaks of #col3 content in print layout. - * (de) Vermeiden von unnötigen Seitenumbrüchen beim Ausdruck der Spalte #col3. - * - * @bugfix - * @affected IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col3 { height: 1%; } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) YAML core stylesheet - structure-independent bugfixes of IE/Win CSS-bugs + * (de) YAML Basis-Stylesheet - Strukturunabhängige Bugfixes von CSS-Bugs des IE/Win + * + * Don't make any changes in this file! + * Your changes should be added to a separate patch-file. + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + * @appdef yaml + */ + +@media all +{ + /** + * (en) Debugging: When you see a green background, IE is getting this stylesheet + * (de) Fehlersuche: Hintergrund leuchtet grün, wenn das Stylesheet korrekt geladen wurde + * + * @debug + * @app-yaml-default disabled + */ + + /* body { background: #0f0; background-image: none; } */ + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Forcing vertical scrollbars is not needed in IE (only for Firefox/Netscape/Safari) + * (de) Erzwingen vertikaler Scrollbalken im IE nicht benötigt (nur im Firefox/Netscape/Safari) + * + * @workaround + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + + html { height: auto; margin-bottom:0; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Fixes IE5.x and IE6 overflow behavior of textarea and input elements elements + * (de) Korrigiert das fehlerhafte overflow-Verhalten von textarea und input-Elementen + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid no + */ + + * html textarea { overflow:scroll; overflow-x: hidden; } + * html input { overflow: hidden; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Stability fixes with 'position:relative' + * (de) Stabilitätsverbesserungen durch 'position:relative' + * + * @bugfix + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + + body { position:relative; } /* Essential in IE7 for correct layout scaling ... */ + * html body { position:static; } /* ... but not for IE5.x and IE6 */ + #main { position: relative; } /* helpful for several problems in older IE versions*/ + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Clearfix Method for containing floats in IE + * (de) Clearfix-Anpassung für diverse IE-Versionen + * + * @workaround + * @see http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/#comment28 + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + + + .clearfix { display: inline-block; } /* ... especial for IE7 */ + .clearfix { display: block; } /* ... für IE5,IE6,IE7 */ + * html .clearfix { height: 1%; } /* ... für IE5 + IE6/Win | hasLayout aktivieren */ + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Adjustment of .floatbox class for IE + * (de) Anpassung der .floatbox-Klasse für IE + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + * html .floatbox { width:100%; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Special class for oversized content element + * (de) Spezielle Klasse für übergroße Inhaltselemente + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + .slidebox { + position:relative; + margin-right: -1000px; + height: 1%; + } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en): Bugfix for partially displayed column separators + * (de): Bugfix für unvollständige Darstellung der Spalteninhalte / Spaltentrenner + * + * @bugfix + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + * html #col1, + * html #col2, + * html #col3 { position:relative; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Preventing several css bugs by forcing "hasLayout" + * (de) Vermeidung verschiedenster Bugs durch Erzwingen von "hasLayout" + * + * @workaround + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid no + */ + + body { height: 1%; } + #page_margins, #page, #header, #nav, #main, #footer { zoom:1; } /* IE6 & IE7 */ + #page_margins, #page { height: 1%; } /* IE 5.x */ + * html #header, * html #nav, * html #main, * html #footer { width: 100%; } /* IE 5.x & IE6 */ + * html #header, * html #nav, * html #main, * html #footer { wid\th: auto; } /* IE 6 */ + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * Disappearing List-Background Bug + * @see http://www.positioniseverything.net/explorer/ie-listbug.html + * + * @bugfix + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + * html ul, * html ol, * html dl { position: relative; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * List-Numbering Bug + * + * @bugfix + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + body ol li { display:list-item; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * (en) Workaround for 'collapsing margin at #col3' when using CSS-property clear + * Left margin of #col3 collapses when using clear:both in 1-3-2 (or 2-3-1) layout and right column is the + * longest and left column is the shortest one. For IE6 and IE7 a special workaround was developed + * in YAML. + * + * (de) Workaround für 'kollabierenden Margin an #col3' bei Verwendung der CSS-Eigenschaft clear + * Der linke Margin von #col3 kollabiert bei der Verwendung von clear:both im 1-3-2 (oder 2-3-1) Layout + * wenn gleichzeitig die rechte Spalte die kürzeste und die rechte die Längste ist. Im IE6 und IE7 lässt + * sich der Bug durch eine speziell für YAML entwickelten Workaround umgehen. + * + * @workaround + * @affected IE 5.x/Win, IE6, IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid no + */ + + #ie_clearing { + /* (en) Only a small help for debugging */ + /* (de) Nur eine kleine Hilfe zur Fehlersuche */ + position:static; + + /* (en) Make container visible in IE */ + /* (de) Container sichtbar machen im IE */ + display:block; + + /* (en) No fix possible in IE5.x, normal clearing used instead */ + /* (de) Kein Fix im IE5.x möglich, daher normales Clearing */ + \clear:both; + + /* (en) forcing clearing-like behavior with a simple oversized container in IE6 & IE7*/ + /* (de) IE-Clearing mit 100%-DIV für IE6 bzw. übergroßem Container im IE7 */ + width: 100%; + font-size:0px; + margin: -2px 0 -1em 1px; + } + + * html #ie_clearing { margin: -2px 0 -1em 0; } + #col3_content {margin-bottom:-2px; } + + /* (en) avoid horizontal scrollbars in IE7 in borderless layouts because of negative margins */ + /* (de) Vermeidung horizontaler Scrollbalken bei randabfallenden Layouts im IE7 */ + html { margin-right: 1px; } + * html { margin-right: 0 } + + + /* (en) Bugfix: Essential for IE7 */ + /* (de) Bugfix: Notwendig im IE7 */ + #col3 { position:relative; z-index: -1; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * IE/Win Guillotine Bug + * @see http://www.positioniseverything.net/explorer/guillotine.html + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + * html body a, * html body a:hover { background-color: transparent; } + +} + +@media screen, projection +{ + /** + * (en) IE-Adjustments for content columns and subtemplates + * (de) IE-Anpassung für Spaltencontainer und Subtemplates + * + * Doubled Float-Margin Bug + * @see http://positioniseverything.net/explorer/doubled-margin.html + * + * @bugfix + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + + #col1, #col2 { display:inline; } + + .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l, + .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r { display:inline; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * Internet Explorer and the Expanding Box Problem + * @see http://www.positioniseverything.net/explorer/expandingboxbug.html + * + * @workaround + * @affected IE 5.x/Win, IE6 + * @css-for IE 5.x/Win, IE6 + * @valid yes + */ + + * html #col1_content, + * html #col2_content, + * html #col3_content { word-wrap: break-word; } + + * html .subcolumns .subc, + * html .subcolumns .subcl, + * html .subcolumns .subcr { word-wrap: break-word; overflow:hidden; } +} + +@media print +{ + /** + * (en) Avoid unneeded page breaks of #col3 content in print layout. + * (de) Vermeiden von unnötigen Seitenumbrüchen beim Ausdruck der Spalte #col3. + * + * @bugfix + * @affected IE7 + * @css-for IE 5.x/Win, IE6, IE7 + * @valid yes + */ + + #col3 { height: 1%; } +} diff --git a/interface/web/themes/default/yaml/core/print_base.css b/interface/web/themes/default/yaml/core/print_base.css index 54c6a39690..4418795dc4 100644 --- a/interface/web/themes/default/yaml/core/print_base.css +++ b/interface/web/themes/default/yaml/core/print_base.css @@ -1,120 +1,120 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - print layout - * (de) YAML Core-Stylesheet - Druck Layout - * - * Don't make any changes in this file! - * Your changes should be added to 'print_xyz_draft.css' drafts from 'yaml/print/' folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media print -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Preparing base layout for print */ - /* (de) Basislayout für Druck aufbereiten */ - body, #page_margins, #page, #main { margin:0; padding: 0; border: 0; } - #page_margins, #page { width: 100% !important; min-width:0; max-width: none; } - #header { height: auto; } - - /* (en) Hide unneeded container of the screenlayout in print layout */ - /* (de) Für den Druck nicht benötigte Container des Layouts abschalten */ - #topnav, #nav, #search, #footer { display: none; } - - /* (en) Linearising subtemplates */ - /* (de) Linearisierung der Subtemplates */ - .c25l, .c33l, .c38l, .c50l, .c62l, .c66l, .c75l, - .c25r, .c33r, .c38r, .c50r, .c62r, .c66r, .c75r { - width: 100%; margin:0; float:none; overflow:visible; display:table; - } - .subc, .subcl, .subcr { margin: 0; padding: 0; } - - /* (en) make .print class visible */ - /* (de) .print-Klasse sichtbar schalten */ - .print { position: static; top: 0; left: 0; height: auto; width: auto; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section content preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Change font to serif */ - /* (de) Zeichensatz auf Serifen umstellen */ - body * { font-family: "Times New Roman", Times, serif; } - code, pre { font-family:"Courier New", Courier, mono; } - body { font-size: 12pt; } - - /* (en) Avoid page breaks right after headings */ - /* (de) Vermeidung von Seitenumbrüchen direkt nach einer Ãœberschrift */ - h1,h2,h3,h4,h5,h6 { page-break-after:avoid; } - - /* (en) Format acronyms and abbreviations for print*/ - /* (de) Auszeichnung von Abkürzungen */ - abbr[title]:after, - acronym[title]:after { content: '(' attr(title) ')'; } - - /* (en) Disable background graphics of links */ - /* (de) Abschalten evlt. vorhandener Hintergrundgrafiken zur Linkkennzeichnung */ - #page a[href^="http:"], - #page a[href^="https:"] { padding-left: 0; background-image: none; } - - /* (en) Enable URL output in print layout */ - /* (de) Sichtbare Auszeichnung der URLs von Links */ - a[href]:after { - content:" <URL: "attr(href)">"; - color:#444; - background:inherit; - font-style:italic; - } - - /* (en) Preparation for optional column labels */ - /* (de) Vorbereitung für optionale Spaltenauszeichnung */ - #col1_content:before, #col2_content:before, #col3_content:before { - content: ""; - color:#888; - background:inherit; - display:block; - font-weight:bold; - font-size:1.5em; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser fixes for print layouts - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /** - * (en) overflow:hidden Bug in print layouts - * (de) overflow:hidden Bug in Drucklayouts - * - * @bugfix - * @since 3.0 - * @affected FF2.0, IE7 - * @css-for all browsers - * @valid yes - */ - - .floatbox, - .subcolumns, - .subcolums_oldgecko { overflow:visible; display: table; } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) YAML core stylesheet - print layout + * (de) YAML Core-Stylesheet - Druck Layout + * + * Don't make any changes in this file! + * Your changes should be added to 'print_xyz_draft.css' drafts from 'yaml/print/' folder. + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media print +{ + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section layout preparation + * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html + */ + + /* (en) Preparing base layout for print */ + /* (de) Basislayout für Druck aufbereiten */ + body, #page_margins, #page, #main { margin:0; padding: 0; border: 0; } + #page_margins, #page { width: 100% !important; min-width:0; max-width: none; } + #header { height: auto; } + + /* (en) Hide unneeded container of the screenlayout in print layout */ + /* (de) Für den Druck nicht benötigte Container des Layouts abschalten */ + #topnav, #nav, #search, #footer { display: none; } + + /* (en) Linearising subtemplates */ + /* (de) Linearisierung der Subtemplates */ + .c25l, .c33l, .c38l, .c50l, .c62l, .c66l, .c75l, + .c25r, .c33r, .c38r, .c50r, .c62r, .c66r, .c75r { + width: 100%; margin:0; float:none; overflow:visible; display:table; + } + .subc, .subcl, .subcr { margin: 0; padding: 0; } + + /* (en) make .print class visible */ + /* (de) .print-Klasse sichtbar schalten */ + .print { position: static; top: 0; left: 0; height: auto; width: auto; } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section content preparation + * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html + */ + + /* (en) Change font to serif */ + /* (de) Zeichensatz auf Serifen umstellen */ + body * { font-family: "Times New Roman", Times, serif; } + code, pre { font-family:"Courier New", Courier, mono; } + body { font-size: 12pt; } + + /* (en) Avoid page breaks right after headings */ + /* (de) Vermeidung von Seitenumbrüchen direkt nach einer Ãœberschrift */ + h1,h2,h3,h4,h5,h6 { page-break-after:avoid; } + + /* (en) Format acronyms and abbreviations for print*/ + /* (de) Auszeichnung von Abkürzungen */ + abbr[title]:after, + acronym[title]:after { content: '(' attr(title) ')'; } + + /* (en) Disable background graphics of links */ + /* (de) Abschalten evlt. vorhandener Hintergrundgrafiken zur Linkkennzeichnung */ + #page a[href^="http:"], + #page a[href^="https:"] { padding-left: 0; background-image: none; } + + /* (en) Enable URL output in print layout */ + /* (de) Sichtbare Auszeichnung der URLs von Links */ + a[href]:after { + content:" <URL: "attr(href)">"; + color:#444; + background:inherit; + font-style:italic; + } + + /* (en) Preparation for optional column labels */ + /* (de) Vorbereitung für optionale Spaltenauszeichnung */ + #col1_content:before, #col2_content:before, #col3_content:before { + content: ""; + color:#888; + background:inherit; + display:block; + font-weight:bold; + font-size:1.5em; + } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section browser fixes for print layouts + * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html + */ + + /** + * (en) overflow:hidden Bug in print layouts + * (de) overflow:hidden Bug in Drucklayouts + * + * @bugfix + * @since 3.0 + * @affected FF2.0, IE7 + * @css-for all browsers + * @valid yes + */ + + .floatbox, + .subcolumns, + .subcolums_oldgecko { overflow:visible; display: table; } +} diff --git a/interface/web/themes/default/yaml/core/slim_base.css b/interface/web/themes/default/yaml/core/slim_base.css index ef205e1d78..75596ca9fe 100644 --- a/interface/web/themes/default/yaml/core/slim_base.css +++ b/interface/web/themes/default/yaml/core/slim_base.css @@ -1,50 +1,50 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -*{margin:0;padding:0} -option{padding-left:.4em} -* html body *{overflow:visible} -* html iframe,* html frame{overflow:auto} -* html frameset{overflow:hidden} -html{height:100%;margin-bottom:1px} -body{font-size:100.01%;color:#000;background:#fff;text-align:left} -fieldset,img{border:0 solid} -ul,ol,dl{margin:0 0 1em 1em} -li{margin-left:1.5em;line-height:1.5em} -dt{font-weight:700} -dd{margin:0 0 1em 2em} -blockquote{margin:0 0 1em 1.5em} -#header{position:relative} -#topnav{text-align:right} -#header #topnav{position:absolute;top:10px;right:10px} -#header,#nav,#main,#footer{clear:both} -#col1{float:left;width:200px} -#col2{float:right;width:200px} -#col3{width:auto;margin:0 200px} -#col1_content,#col2_content,#col3_content{position:relative} -.hideboth #col3{margin-left:0;margin-right:0} -.hidecol1 #col3{margin-left:0;margin-right:200px} -.hidecol2 #col3{margin-left:200px;margin-right:0} -.hideboth #col1,.hideboth #col2,.hidecol1 #col1,.hidecol2 #col2{display:none} -.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} -.clearfix{display:block} -.floatbox{overflow:hidden} -#ie_clearing{display:none} -.subcolumns{width:100%;overflow:hidden} -.subcolumns_oldgecko{width:100%;float:left} -.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l{float:left} -.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{float:right;margin-left:-5px} -.c25l,.c25r{width:25%} -.c33l,.c33r{width:33.333%} -.c50l,.c50r{width:50%} -.c66l,.c66r{width:66.666%} -.c75l,.c75r{width:75%} -.c38l,.c38r{width:38.2%} -.c62l,.c62r{width:61.8%} -.subc{padding:0 .5em} -.subcl{padding:0 1em 0 0} -.subcr{padding:0 0 0 1em} -.skip,.hideme,.print{position:absolute;top:-1000em;left:-1000em;height:1px;width:1px} -.skip:focus,.skip:active{position:static;top:0;left:0;height:auto;width:auto} +@charset "UTF-8"; +/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) +* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ +@media all { +*{margin:0;padding:0} +option{padding-left:.4em} +* html body *{overflow:visible} +* html iframe,* html frame{overflow:auto} +* html frameset{overflow:hidden} +html{height:100%;margin-bottom:1px} +body{font-size:100.01%;color:#000;background:#fff;text-align:left} +fieldset,img{border:0 solid} +ul,ol,dl{margin:0 0 1em 1em} +li{margin-left:1.5em;line-height:1.5em} +dt{font-weight:700} +dd{margin:0 0 1em 2em} +blockquote{margin:0 0 1em 1.5em} +#header{position:relative} +#topnav{text-align:right} +#header #topnav{position:absolute;top:10px;right:10px} +#header,#nav,#main,#footer{clear:both} +#col1{float:left;width:200px} +#col2{float:right;width:200px} +#col3{width:auto;margin:0 200px} +#col1_content,#col2_content,#col3_content{position:relative} +.hideboth #col3{margin-left:0;margin-right:0} +.hidecol1 #col3{margin-left:0;margin-right:200px} +.hidecol2 #col3{margin-left:200px;margin-right:0} +.hideboth #col1,.hideboth #col2,.hidecol1 #col1,.hidecol2 #col2{display:none} +.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} +.clearfix{display:block} +.floatbox{overflow:hidden} +#ie_clearing{display:none} +.subcolumns{width:100%;overflow:hidden} +.subcolumns_oldgecko{width:100%;float:left} +.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l{float:left} +.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{float:right;margin-left:-5px} +.c25l,.c25r{width:25%} +.c33l,.c33r{width:33.333%} +.c50l,.c50r{width:50%} +.c66l,.c66r{width:66.666%} +.c75l,.c75r{width:75%} +.c38l,.c38r{width:38.2%} +.c62l,.c62r{width:61.8%} +.subc{padding:0 .5em} +.subcl{padding:0 1em 0 0} +.subcr{padding:0 0 0 1em} +.skip,.hideme,.print{position:absolute;top:-1000em;left:-1000em;height:1px;width:1px} +.skip:focus,.skip:active{position:static;top:0;left:0;height:auto;width:auto} } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/core/slim_iehacks.css b/interface/web/themes/default/yaml/core/slim_iehacks.css index 0b46deb4e7..a201c14796 100644 --- a/interface/web/themes/default/yaml/core/slim_iehacks.css +++ b/interface/web/themes/default/yaml/core/slim_iehacks.css @@ -1,36 +1,36 @@ -@charset UTF-8; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -html{height:auto;margin-bottom:0;margin-right:1px} -* html textarea{overflow:scroll;overflow-x:hidden} -* html input{overflow:hidden} -body{position:relative;height:1%} -* html body{position:static} -#main{position:relative} -.clearfix{display:inline-block} -.clearfix{display:block} -* html .clearfix{height:1%} -* html .floatbox{width:100%} -.slidebox{position:relative;margin-right:-1000px;height:1%} -* html #col1,* html #col2,* html #col3{position:relative} -#page_margins,#page,#header,#nav,#main,#footer{zoom:1} -#page_margins,#page{height:1%} -* html #header,* html #nav,* html #main,* html #footer{width:100%;wid\th:auto} -* html ul,* html ol,* html dl{position:relative} -body ol li{display:list-item} -#ie_clearing{position:static;display:block;\clear:both;width:100%;font-size:0;margin:-2px 0 -1em 1px} -* html #ie_clearing{margin:-2px 0 -1em} -#col3_content{margin-bottom:-2px} -* html{margin-right:0} -#col3{position:relative;z-index:-1} -* html body a,* html body a:hover{background-color:transparent} -} -@media screen,projection { -#col1,#col2,.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l,.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{display:inline} -* html #col1_content,* html #col2_content,* html #col3_content{word-wrap:break-word} -* html .subcolumns .subc,* html .subcolumns .subcl,* html .subcolumns .subcr{word-wrap:break-word;overflow:hidden} -} -@media print { -#col3{height:1%} +@charset UTF-8; +/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) +* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ +@media all { +html{height:auto;margin-bottom:0;margin-right:1px} +* html textarea{overflow:scroll;overflow-x:hidden} +* html input{overflow:hidden} +body{position:relative;height:1%} +* html body{position:static} +#main{position:relative} +.clearfix{display:inline-block} +.clearfix{display:block} +* html .clearfix{height:1%} +* html .floatbox{width:100%} +.slidebox{position:relative;margin-right:-1000px;height:1%} +* html #col1,* html #col2,* html #col3{position:relative} +#page_margins,#page,#header,#nav,#main,#footer{zoom:1} +#page_margins,#page{height:1%} +* html #header,* html #nav,* html #main,* html #footer{width:100%;wid\th:auto} +* html ul,* html ol,* html dl{position:relative} +body ol li{display:list-item} +#ie_clearing{position:static;display:block;\clear:both;width:100%;font-size:0;margin:-2px 0 -1em 1px} +* html #ie_clearing{margin:-2px 0 -1em} +#col3_content{margin-bottom:-2px} +* html{margin-right:0} +#col3{position:relative;z-index:-1} +* html body a,* html body a:hover{background-color:transparent} +} +@media screen,projection { +#col1,#col2,.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l,.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{display:inline} +* html #col1_content,* html #col2_content,* html #col3_content{word-wrap:break-word} +* html .subcolumns .subc,* html .subcolumns .subcl,* html .subcolumns .subcr{word-wrap:break-word;overflow:hidden} +} +@media print { +#col3{height:1%} } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/core/slim_print_base.css b/interface/web/themes/default/yaml/core/slim_print_base.css index 42a5d5b069..f371b158c3 100644 --- a/interface/web/themes/default/yaml/core/slim_print_base.css +++ b/interface/web/themes/default/yaml/core/slim_print_base.css @@ -1,21 +1,21 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media print { -body,#page_margins,#page,#main{border:0;margin:0;padding:0} -#page_margins,#page{width:100%!important;min-width:0;max-width:none} -#header{height:auto} -#topnav,#nav,#search,#footer{display:none} -.c25l,.c33l,.c38l,.c50l,.c62l,.c66l,.c75l,.c25r,.c33r,.c38r,.c50r,.c62r,.c66r,.c75r{width:100%;float:none;overflow:visible;display:table;margin:0} -.subc,.subcl,.subcr{margin:0;padding:0} -.print{position:static;top:0;left:0;height:auto;width:auto} -body *{font-family:"Times New Roman", Times, serif} -code,pre{font-family:"Courier New", Courier, mono} -body{font-size:12pt} -h1,h2,h3,h4,h5,h6{page-break-after:avoid} -abbr[title]:after,acronym[title]:after{content:'(' attr(title) ')'} -#page a[href^="http:"],#page a[href^="https:"]{padding-left:0;background-image:none} -a[href]:after{content:" <URL: "attr(href)">";color:#444;background:inherit;font-style:italic} -#col1_content:before,#col2_content:before,#col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em} -.floatbox,.subcolumns,.subcolums_oldgecko{overflow:visible;display:table} +@charset "UTF-8"; +/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) +* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ +@media print { +body,#page_margins,#page,#main{border:0;margin:0;padding:0} +#page_margins,#page{width:100%!important;min-width:0;max-width:none} +#header{height:auto} +#topnav,#nav,#search,#footer{display:none} +.c25l,.c33l,.c38l,.c50l,.c62l,.c66l,.c75l,.c25r,.c33r,.c38r,.c50r,.c62r,.c66r,.c75r{width:100%;float:none;overflow:visible;display:table;margin:0} +.subc,.subcl,.subcr{margin:0;padding:0} +.print{position:static;top:0;left:0;height:auto;width:auto} +body *{font-family:"Times New Roman", Times, serif} +code,pre{font-family:"Courier New", Courier, mono} +body{font-size:12pt} +h1,h2,h3,h4,h5,h6{page-break-after:avoid} +abbr[title]:after,acronym[title]:after{content:'(' attr(title) ')'} +#page a[href^="http:"],#page a[href^="https:"]{padding-left:0;background-image:none} +a[href]:after{content:" <URL: "attr(href)">";color:#444;background:inherit;font-style:italic} +#col1_content:before,#col2_content:before,#col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em} +.floatbox,.subcolumns,.subcolums_oldgecko{overflow:visible;display:table} } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/debug/debug.css b/interface/web/themes/default/yaml/debug/debug.css index 0c4269b133..f0a1304f77 100644 --- a/interface/web/themes/default/yaml/debug/debug.css +++ b/interface/web/themes/default/yaml/debug/debug.css @@ -1,157 +1,157 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML debugging stylesheet - * (de) YAML Stylesheet zur Fehlersuche - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 43 $ - * @lastmodified $Date: 2007-06-11 16:09:28 +0200 (Mo, 11 Jun 2007) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation for debugging - * @see http://www.yaml.de/en/documentation/practice/drafting-and-debugging.html - */ - - /* Adding debugging background */ - body { background: transparent url(images/grid_pattern.png) top left no-repeat !important; } - - /* CSS-Warning, if core stylesheet 'iehacks.css' is missing in the layout */ - *:first-child+html #ie_clearing { display:block; } - * html #ie_clearing { display:block; } - - #ie_clearing { - width: 500px; - font-size: 25px; - position:absolute; - top: -2px; - left:0px; - background: url("images/warning_iehacks.gif") top left no-repeat; - } - - /** - * @section pixel grid - */ - - .bg_grid { - background-image:url(images/grid_pattern.png) !important; - background-repeat:no-repeat; - background-position:top left !important; - } - - /** - * @section transparency - */ - - .transOFF { -moz-opacity: 1.0; opacity: 1.0; filter: alpha(Opacity=100);} - .trans50, - .transON { -moz-opacity: 0.5; opacity: 0.5; filter: alpha(Opacity=50);} - .trans25 { -moz-opacity: 0.25; opacity: 0.25; filter: alpha(Opacity=25);} - .trans75 { -moz-opacity: 0.75; opacity: 0.75; filter: alpha(Opacity=75);} - - /** - * @section colors - */ - - .bg_red { background-color: #f00 !important;} - .bg_blue { background-color: #00f !important;} - .bg_green { background-color: #0f0 !important;} - - /** - * @visualize semantic structure - * - * Many thanks to Tomas Caspers for some ideas - */ - - div[id] { padding: 0 !important; margin: 2px; border: 1px #000 solid !important; } - div[id]:before { - display:block; - color: #fff; - background: #800; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div #"attr(id)"]"; - } - - div[class="floatbox"] { background: #f4f4f4; } - div[class="floatbox"]:before { - display:block; - color: #fff; - background: #66a; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] { background: #f8f8f8; } - div[class="subcolumns"]:before { - display:block; - color: #fff; - background: #444; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] > div:before { - display:block; - color: #fff; - background: #080; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subc"], div[class="subcl"], div[class="subcr"] { background: #eee; } - div[class="subc"]:before, div[class="subcl"]:before, div[class="subcr"]:before { - display:block; - color: #fff; - background: #6a6; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - h1:before { content: "[h1] "; } - h2:before { content: "[h2] "; } - h3:before { content: "[h3] "; } - h4:before { content: "[h4] "; } - h5:before { content: "[h5] "; } - h6:before { content: "[h6] "; } - - a:hover:before { content: " ( href='" attr(href) "' ) "; } - a:hover:after { content: " [ title='"attr(title)"' ] "; } - - img:after { content:" ( alt='" attr(alt)"' ) "; } - - address, blockquote, dl, fieldset, form, h1, h2, h3, h4, ol, p, pre, ul { - border: 1px dotted #888; - margin: 2px; - padding: 2px; - display: block; - } - - /** - * @visualize inline elements - * - * Many thanks to Tomas Caspers for some ideas - */ - - abbr, acronym { background: #d9eaff; } - q, cite, dfn, kbd { background: #ffe3f6; } - /* :lang(de), :lang(en), :lang(fr), :lang(es) { background: #d9efaa !important; } */ -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) YAML debugging stylesheet + * (de) YAML Stylesheet zur Fehlersuche + * + * Don't make any changes in this file! + * Your changes should be placed in any css-file in your own stylesheet folder. + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 43 $ + * @lastmodified $Date: 2007-06-11 16:09:28 +0200 (Mo, 11 Jun 2007) $ + */ + +@media all +{ + /*------------------------------------------------------------------------------------------------------*/ + + /** + * @section layout preparation for debugging + * @see http://www.yaml.de/en/documentation/practice/drafting-and-debugging.html + */ + + /* Adding debugging background */ + body { background: transparent url(images/grid_pattern.png) top left no-repeat !important; } + + /* CSS-Warning, if core stylesheet 'iehacks.css' is missing in the layout */ + *:first-child+html #ie_clearing { display:block; } + * html #ie_clearing { display:block; } + + #ie_clearing { + width: 500px; + font-size: 25px; + position:absolute; + top: -2px; + left:0px; + background: url("images/warning_iehacks.gif") top left no-repeat; + } + + /** + * @section pixel grid + */ + + .bg_grid { + background-image:url(images/grid_pattern.png) !important; + background-repeat:no-repeat; + background-position:top left !important; + } + + /** + * @section transparency + */ + + .transOFF { -moz-opacity: 1.0; opacity: 1.0; filter: alpha(Opacity=100);} + .trans50, + .transON { -moz-opacity: 0.5; opacity: 0.5; filter: alpha(Opacity=50);} + .trans25 { -moz-opacity: 0.25; opacity: 0.25; filter: alpha(Opacity=25);} + .trans75 { -moz-opacity: 0.75; opacity: 0.75; filter: alpha(Opacity=75);} + + /** + * @section colors + */ + + .bg_red { background-color: #f00 !important;} + .bg_blue { background-color: #00f !important;} + .bg_green { background-color: #0f0 !important;} + + /** + * @visualize semantic structure + * + * Many thanks to Tomas Caspers for some ideas + */ + + div[id] { padding: 0 !important; margin: 2px; border: 1px #000 solid !important; } + div[id]:before { + display:block; + color: #fff; + background: #800; + padding: 2px; + font: bold .8em "Lucida console", monospace; + content: "[div #"attr(id)"]"; + } + + div[class="floatbox"] { background: #f4f4f4; } + div[class="floatbox"]:before { + display:block; + color: #fff; + background: #66a; + padding: 2px; + font: bold .8em "Lucida console", monospace; + content: "[div ."attr(class)"]"; + } + + div[class="subcolumns"] { background: #f8f8f8; } + div[class="subcolumns"]:before { + display:block; + color: #fff; + background: #444; + padding: 2px; + font: bold .8em "Lucida console", monospace; + content: "[div ."attr(class)"]"; + } + + div[class="subcolumns"] > div:before { + display:block; + color: #fff; + background: #080; + padding: 2px; + font: bold .8em "Lucida console", monospace; + content: "[div ."attr(class)"]"; + } + + div[class="subc"], div[class="subcl"], div[class="subcr"] { background: #eee; } + div[class="subc"]:before, div[class="subcl"]:before, div[class="subcr"]:before { + display:block; + color: #fff; + background: #6a6; + padding: 2px; + font: bold .8em "Lucida console", monospace; + content: "[div ."attr(class)"]"; + } + + h1:before { content: "[h1] "; } + h2:before { content: "[h2] "; } + h3:before { content: "[h3] "; } + h4:before { content: "[h4] "; } + h5:before { content: "[h5] "; } + h6:before { content: "[h6] "; } + + a:hover:before { content: " ( href='" attr(href) "' ) "; } + a:hover:after { content: " [ title='"attr(title)"' ] "; } + + img:after { content:" ( alt='" attr(alt)"' ) "; } + + address, blockquote, dl, fieldset, form, h1, h2, h3, h4, ol, p, pre, ul { + border: 1px dotted #888; + margin: 2px; + padding: 2px; + display: block; + } + + /** + * @visualize inline elements + * + * Many thanks to Tomas Caspers for some ideas + */ + + abbr, acronym { background: #d9eaff; } + q, cite, dfn, kbd { background: #ffe3f6; } + /* :lang(de), :lang(en), :lang(fr), :lang(es) { background: #d9efaa !important; } */ +} diff --git a/interface/web/themes/default/yaml/navigation/nav_vlist.css b/interface/web/themes/default/yaml/navigation/nav_vlist.css index af2f7e890c..7f1a5b9335 100644 --- a/interface/web/themes/default/yaml/navigation/nav_vlist.css +++ b/interface/web/themes/default/yaml/navigation/nav_vlist.css @@ -1,109 +1,109 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Vertical list navigation "vlist" - * (de) Vertikale Navigationsliste "vlist" - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #submenu { - width: 100%; - overflow: hidden; - margin: 2.4em 0 1.5em 0; - list-style-type: none; - border-top: 2px #ddd solid; - border-bottom: 2px #ddd solid; - } - - #submenu ul { list-style-type: none; margin:0; padding: 0; } - #submenu li { float:left; width: 100%; margin:0; padding: 0; } - - #submenu a, - #submenu strong { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - text-decoration: none; - background-color:#fff; - color: #444; - border-bottom: 1px #eee solid; - } - - /* Menu Title */ - #submenu li#title { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #444; - background-color: #fff; - border-bottom: 4px #888 solid; - } - - #submenu li span { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - border-bottom: 1px #ddd solid; - } - - /* Level 1 */ - #submenu li#active, - #submenu li strong { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #fff; - background-color:#aab; - border-bottom: 1px #eee solid; - } - - #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } - #submenu li a:focus, - #submenu li a:hover, - #submenu li a:active { background-color:#f63; color: #fff; } - - /* Level 2 */ - #submenu li ul li a, - #submenu li ul li#active, - #submenu li ul li strong, - #submenu li ul li span { width: 80%; padding-left: 20%; } - - #submenu li ul li a { background-color:#f8f8f8; color: #666; } - #submenu li ul li a:focus, - #submenu li ul li a:hover, - #submenu li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 3 */ - #submenu li ul li ul li a, - #submenu li ul li ul li#active, - #submenu li ul li ul li strong, - #submenu li ul li ul li span { width: 70%; padding-left: 30%; } - - #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } - #submenu li ul li ul li a:focus, - #submenu li ul li ul li a:hover, - #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 4 */ - #submenu li ul li ul li ul li a, - #submenu li ul li ul li ul li#active, - #submenu li ul li ul li ul li strong, - #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } - - #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } - #submenu li ul li ul li ul li a:focus, - #submenu li ul li ul li ul li a:hover, - #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Vertical list navigation "vlist" + * (de) Vertikale Navigationsliste "vlist" + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media all +{ + #submenu { + width: 100%; + overflow: hidden; + margin: 2.4em 0 1.5em 0; + list-style-type: none; + border-top: 2px #ddd solid; + border-bottom: 2px #ddd solid; + } + + #submenu ul { list-style-type: none; margin:0; padding: 0; } + #submenu li { float:left; width: 100%; margin:0; padding: 0; } + + #submenu a, + #submenu strong { + display:block; + width: 90%; + padding: 3px 0px 3px 10%; + text-decoration: none; + background-color:#fff; + color: #444; + border-bottom: 1px #eee solid; + } + + /* Menu Title */ + #submenu li#title { + width: 90%; + padding: 3px 0px 3px 10%; + font-weight: bold; + color: #444; + background-color: #fff; + border-bottom: 4px #888 solid; + } + + #submenu li span { + display:block; + width: 90%; + padding: 3px 0px 3px 10%; + font-weight: bold; + border-bottom: 1px #ddd solid; + } + + /* Level 1 */ + #submenu li#active, + #submenu li strong { + width: 90%; + padding: 3px 0px 3px 10%; + font-weight: bold; + color: #fff; + background-color:#aab; + border-bottom: 1px #eee solid; + } + + #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } + #submenu li a:focus, + #submenu li a:hover, + #submenu li a:active { background-color:#f63; color: #fff; } + + /* Level 2 */ + #submenu li ul li a, + #submenu li ul li#active, + #submenu li ul li strong, + #submenu li ul li span { width: 80%; padding-left: 20%; } + + #submenu li ul li a { background-color:#f8f8f8; color: #666; } + #submenu li ul li a:focus, + #submenu li ul li a:hover, + #submenu li ul li a:active { background-color:#f63; color: #fff; } + + /* Level 3 */ + #submenu li ul li ul li a, + #submenu li ul li ul li#active, + #submenu li ul li ul li strong, + #submenu li ul li ul li span { width: 70%; padding-left: 30%; } + + #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } + #submenu li ul li ul li a:focus, + #submenu li ul li ul li a:hover, + #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } + + /* Level 4 */ + #submenu li ul li ul li ul li a, + #submenu li ul li ul li ul li#active, + #submenu li ul li ul li ul li strong, + #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } + + #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } + #submenu li ul li ul li ul li a:focus, + #submenu li ul li ul li ul li a:hover, + #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/patches/patch_layout_draft.css b/interface/web/themes/default/yaml/patches/patch_layout_draft.css index 83e835357b..4490d7f1fb 100644 --- a/interface/web/themes/default/yaml/patches/patch_layout_draft.css +++ b/interface/web/themes/default/yaml/patches/patch_layout_draft.css @@ -1,29 +1,29 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Example of a patch stylesheet for the Internet Explorer - * (de) Beispiel für ein Anpassungs-Stylesheet für den Internet Explorer - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(/yaml/core/iehacks.css); - -/* Box model adjustments for vlist navigation | Box-Modell-Anpassungen für vlist-Navigation */ -/* @import url(/yaml/patches/patch_nav_vlist.css); */ - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /* add your adjustments here | Fügen Sie Ihre Anpassungen hier ein */ - -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Example of a patch stylesheet for the Internet Explorer + * (de) Beispiel für ein Anpassungs-Stylesheet für den Internet Explorer + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* Layout independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ +@import url(/yaml/core/iehacks.css); + +/* Box model adjustments for vlist navigation | Box-Modell-Anpassungen für vlist-Navigation */ +/* @import url(/yaml/patches/patch_nav_vlist.css); */ + +/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ +@media screen, projection +{ + /* add your adjustments here | Fügen Sie Ihre Anpassungen hier ein */ + +} diff --git a/interface/web/themes/default/yaml/patches/patch_nav_vlist.css b/interface/web/themes/default/yaml/patches/patch_nav_vlist.css index 21041be294..cbf29487f9 100644 --- a/interface/web/themes/default/yaml/patches/patch_nav_vlist.css +++ b/interface/web/themes/default/yaml/patches/patch_nav_vlist.css @@ -1,61 +1,61 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE adjustment stylesheet for YAML vlist navigation - * Import this file within the IE-patch-file if needed in your layout - * - * (de) IE Anpassungs-Stylesheet für YAML vlist-Navigation - * Einbindung ins Layout erfolgt über den Import innerhalb des IE-Anspassungs-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * Box Model Bug - * (en) Adjustment of width values for list elements of the menu in IE 5.x/Win. - * Note: If IE6 is running in quirks mode, it also needs 100% values! - * - * (de) Korrektur der Breitenangaben der Listenelemente des Submenüs im IE 5.x/Win. - * Hinweis: Befindet sich der IE6 im Quirks Mode, so benötigt er ebenfalls 100%-Werte ! - * - * @bugfix - * @affected IE 5.x/Win (IE6 in Quirks-Mode) - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - /* level 1 */ - * html #submenu li a, - * html #submenu li strong, - * html #submenu li span, - * html #submenu li#title, - * html #submenu li#active { width: 100%; w\idth: 90%; } - - /* level 2 */ - * html #submenu li ul li a, - * html #submenu li ul li strong, - * html #submenu li ul li span, - * html #submenu li ul li#active { width: 100%; w\idth: 80%; } - - /* level 3 */ - * html #submenu li ul li ul li a, - * html #submenu li ul li ul li strong, - * html #submenu li ul li ul li span, - * html #submenu li ul li ul li#active { width: 100%; w\idth: 70%; } - - /* level 4 */ - * html #submenu li ul li ul li ul li a, - * html #submenu li ul li ul li ul li strong, - * html #submenu li ul li ul li ul li span, - * html #submenu li ul li ul li ul li#active { width: 100%; w\idth: 60%; } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) IE adjustment stylesheet for YAML vlist navigation + * Import this file within the IE-patch-file if needed in your layout + * + * (de) IE Anpassungs-Stylesheet für YAML vlist-Navigation + * Einbindung ins Layout erfolgt über den Import innerhalb des IE-Anspassungs-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media screen, projection +{ + /** + * Box Model Bug + * (en) Adjustment of width values for list elements of the menu in IE 5.x/Win. + * Note: If IE6 is running in quirks mode, it also needs 100% values! + * + * (de) Korrektur der Breitenangaben der Listenelemente des Submenüs im IE 5.x/Win. + * Hinweis: Befindet sich der IE6 im Quirks Mode, so benötigt er ebenfalls 100%-Werte ! + * + * @bugfix + * @affected IE 5.x/Win (IE6 in Quirks-Mode) + * @css-for IE 5.x/Win, IE6 + * @valid no + */ + + /* level 1 */ + * html #submenu li a, + * html #submenu li strong, + * html #submenu li span, + * html #submenu li#title, + * html #submenu li#active { width: 100%; w\idth: 90%; } + + /* level 2 */ + * html #submenu li ul li a, + * html #submenu li ul li strong, + * html #submenu li ul li span, + * html #submenu li ul li#active { width: 100%; w\idth: 80%; } + + /* level 3 */ + * html #submenu li ul li ul li a, + * html #submenu li ul li ul li strong, + * html #submenu li ul li ul li span, + * html #submenu li ul li ul li#active { width: 100%; w\idth: 70%; } + + /* level 4 */ + * html #submenu li ul li ul li ul li a, + * html #submenu li ul li ul li ul li strong, + * html #submenu li ul li ul li ul li span, + * html #submenu li ul li ul li ul li#active { width: 100%; w\idth: 60%; } +} diff --git a/interface/web/themes/default/yaml/print/print_003_draft.css b/interface/web/themes/default/yaml/print/print_003_draft.css index 29c6df6291..0363b4ee82 100644 --- a/interface/web/themes/default/yaml/print/print_003_draft.css +++ b/interface/web/themes/default/yaml/print/print_003_draft.css @@ -1,32 +1,32 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - 0 -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - 0 +** #col2 - 0 +** #col3 - x +*/ + +@media print +{ + #col1 { display:none; } + #col2 { display:none; } + + #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/print/print_020_draft.css b/interface/web/themes/default/yaml/print/print_020_draft.css index 885b0b9915..2ded4f1143 100644 --- a/interface/web/themes/default/yaml/print/print_020_draft.css +++ b/interface/web/themes/default/yaml/print/print_020_draft.css @@ -1,31 +1,31 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1 { display:none; } - #col3 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - 0 +** #col2 - x +** #col3 - 0 +*/ +@media print +{ + #col1 { display:none; } + #col3 { display:none; } + + #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/print/print_023_draft.css b/interface/web/themes/default/yaml/print/print_023_draft.css index a80bb08753..e005a588ae 100644 --- a/interface/web/themes/default/yaml/print/print_023_draft.css +++ b/interface/web/themes/default/yaml/print/print_023_draft.css @@ -1,40 +1,40 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content {width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} - +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - 0 +** #col2 - x +** #col3 - x +*/ + +@media print +{ + #col1 { display:none; } + + #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col2_content { page-break-after:always; } + + #col3, #col3_content {width: 100%; margin:0; padding: 0; border:0; } + + /* Optional Column Labels | Optionale Spaltenauszeichnung + #col2_content:before { content:" [ left | middle | right column ]"; } + #col3_content:before { content:" [ left | middle | right column ]"; } + */ +} + diff --git a/interface/web/themes/default/yaml/print/print_100_draft.css b/interface/web/themes/default/yaml/print/print_100_draft.css index 99f29b4f12..2a6c71b197 100644 --- a/interface/web/themes/default/yaml/print/print_100_draft.css +++ b/interface/web/themes/default/yaml/print/print_100_draft.css @@ -1,31 +1,31 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - x +** #col2 - 0 +** #col3 - 0 +*/ +@media print +{ + #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + + #col2 { display:none; } + #col3 { display:none; } +} diff --git a/interface/web/themes/default/yaml/print/print_103_draft.css b/interface/web/themes/default/yaml/print/print_103_draft.css index 983e61a4ad..a436374703 100644 --- a/interface/web/themes/default/yaml/print/print_103_draft.css +++ b/interface/web/themes/default/yaml/print/print_103_draft.css @@ -1,38 +1,38 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - x -*/ -@media print -{ - #col1, #col1_content {float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content {page-break-after:always; } - - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - x +** #col2 - 0 +** #col3 - x +*/ +@media print +{ + #col1, #col1_content {float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col1_content {page-break-after:always; } + + #col2 { display:none; } + + #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } + + /* Optional Column Labels | Optionale Spaltenauszeichnung + #col1_content:before { content:" [ left | middle | right column ]"; } + #col3_content:before { content:" [ left | middle | right column ]"; } + */ } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/print/print_120_draft.css b/interface/web/themes/default/yaml/print/print_120_draft.css index 43f0950601..50ee571497 100644 --- a/interface/web/themes/default/yaml/print/print_120_draft.css +++ b/interface/web/themes/default/yaml/print/print_120_draft.css @@ -1,39 +1,39 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3 { display:none; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - */ -} +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - x +** #col2 - x +** #col3 - 0 +*/ +@media print +{ + #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col1_content { page-break-after:always; } + + #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col2_content { page-break-after:always; } + + #col3 { display:none; } + + /* Optional Column Labels | Optionale Spaltenauszeichnung + #col1_content:before { content:" [ left | middle | right column ]"; } + #col2_content:before { content:" [ left | middle | right column ]"; } + */ +} diff --git a/interface/web/themes/default/yaml/print/print_123_draft.css b/interface/web/themes/default/yaml/print/print_123_draft.css index d2586db76c..42a7de1d5a 100644 --- a/interface/web/themes/default/yaml/print/print_123_draft.css +++ b/interface/web/themes/default/yaml/print/print_123_draft.css @@ -1,40 +1,40 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - x -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) print stylesheet + * (de) Druck-Stylesheet + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +/* import print base styles | Basisformatierung für Drucklayout einbinden */ +@import url(../core/print_base.css); + +/* #col1 - x +** #col2 - x +** #col3 - x +*/ +@media print +{ + #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col1_content { page-break-after:always; } + + #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } + #col2_content { page-break-after:always; } + + #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } + + /* Optional Column Labels | Optionale Spaltenauszeichnung + #col1_content:before { content:" [ left | middle | right column ]"; } + #col2_content:before { content:" [ left | middle | right column ]"; } + #col3_content:before { content:" [ left | middle | right column ]"; } + */ } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/screen/basemod_draft.css b/interface/web/themes/default/yaml/screen/basemod_draft.css index c738ee0ed8..6d33ff8dda 100644 --- a/interface/web/themes/default/yaml/screen/basemod_draft.css +++ b/interface/web/themes/default/yaml/screen/basemod_draft.css @@ -1,70 +1,70 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Template for designing a screen layout - * (de) Gestaltungsvorlage für die Erstellung eines Screenlayouts - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of the Basic Layout | Gestaltung des YAML Basis-Layouts - * - * @section layout-basics - */ - - /* Page margins and background | Randbereiche & Seitenhintergrund */ - body { } - - /* Layout: Width, Background, Border | Layout: Breite, Hintergrund, Rahmen */ - #page_margins { } - #page{ } - - /* Design of the Main Layout Elements | Gestaltung der Hauptelemente des Layouts */ - #header { } - #topnav { } - - #main { } - - #footer { } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Formatting of the Content Area | Formatierung der Inhaltsbereichs - * - * @section layout-main - */ - - #col1 { } - #col1_content { } - - #col2 { } - #col2_content { } - - #col3 { } - #col3_content { } - - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of Additional Layout Elements | Gestaltung weiterer Layoutelemente - * - * @section layout-misc - */ - - +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Template for designing a screen layout + * (de) Gestaltungsvorlage für die Erstellung eines Screenlayouts + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + */ + +@media screen, projection +{ + /*------------------------------------------------------------------------------------------------------*/ + + /** + * Design of the Basic Layout | Gestaltung des YAML Basis-Layouts + * + * @section layout-basics + */ + + /* Page margins and background | Randbereiche & Seitenhintergrund */ + body { } + + /* Layout: Width, Background, Border | Layout: Breite, Hintergrund, Rahmen */ + #page_margins { } + #page{ } + + /* Design of the Main Layout Elements | Gestaltung der Hauptelemente des Layouts */ + #header { } + #topnav { } + + #main { } + + #footer { } + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * Formatting of the Content Area | Formatierung der Inhaltsbereichs + * + * @section layout-main + */ + + #col1 { } + #col1_content { } + + #col2 { } + #col2_content { } + + #col3 { } + #col3_content { } + + + /*------------------------------------------------------------------------------------------------------*/ + + /** + * Design of Additional Layout Elements | Gestaltung weiterer Layoutelemente + * + * @section layout-misc + */ + + } \ No newline at end of file diff --git a/interface/web/themes/default/yaml/screen/content_default.css b/interface/web/themes/default/yaml/screen/content_default.css index 5742599df1..1852ac1169 100644 --- a/interface/web/themes/default/yaml/screen/content_default.css +++ b/interface/web/themes/default/yaml/screen/content_default.css @@ -1,170 +1,170 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01%; } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family:"Courier New", Courier, monospace; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; - font-size: 75.00%; - } - - h1,h2,h3,h4,h5,h6 { font-weight:bold; margin: 0 0 0.25em 0; } - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 166.67% } /* 20px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic; } /* 14px */ - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em; } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic; } - blockquote { margin: 0 0 1em 1.5em; } - - strong,b { font-weight: bold; } - em,i { font-style:italic; } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note { background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted; } - .important { background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted; } - .warning { background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted; } - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto; } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a { color: #900; text-decoration:none; } - a:focus, - a:hover, - a:active { background-color: #fee; text-decoration:underline; } - - #topnav a { color: #aac; font-weight: bold; background:transparent; text-decoration:none; } - #topnav a:focus, - #topnav a:hover, - #topnav a:active{ text-decoration:underline; background-color: transparent; } - - #footer a { color: #aac; background:transparent; font-weight: bold; } - #footer a:focus, - #footer a:hover, - #footer a:active { color: #fff; background-color: transparent; text-decoration:underline; } - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed; } - - th,td { padding: 0.5em; } - thead th { background: #444; color: #fff; } - tbody th { background: #ccc; color: #333; } - tbody th.sub { background: #ddd; color: #333; } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #000 solid; - } -} - +@charset "UTF-8"; +/** + * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework + * + * (en) Uniform design of standard content elements + * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente + * + * @copyright Copyright 2005-2008, Dirk Jesse + * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), + * YAML-C (http://www.yaml.de/en/license/license-conditions.html) + * @link http://www.yaml.de + * @package yaml + * @version 3.0.6 + * @revision $Revision: 202 $ + * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ + * @appdef yaml + */ + +@media all +{ + /** + * Fonts + * (en) font-family and font-size selection for headings and standard text elements + * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente + * + * @section content-fonts + */ + + /* (en) reset font size for all elements to standard (16 Pixel) */ + /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ + html * { font-size: 100.01%; } + + /* (en) reset monospaced elements to font size 16px in Gecko browsers */ + /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ + textarea, pre, tt, code { + font-family:"Courier New", Courier, monospace; + } + + /* (en) base layout gets standard font size 12px */ + /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ + body { + font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; + font-size: 75.00%; + } + + h1,h2,h3,h4,h5,h6 { font-weight:bold; margin: 0 0 0.25em 0; } + h1 { font-size: 200% } /* 24px */ + h2 { font-size: 166.67% } /* 20px */ + h3 { font-size: 150% } /* 18px */ + h4 { font-size: 133.33% } /* 16px */ + h5 { font-size: 116.67% } /* 14px */ + h6 { font-size: 116.67%; font-style:italic; } /* 14px */ + + p { line-height: 1.5em; margin: 0 0 1em 0; } + + /* ### Lists | Listen #### */ + + ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em; } + li { margin-left: 1.5em; line-height: 1.5em; } + + dt { font-weight: bold; } + dd { margin: 0 0 1em 2em; } + + /* ### text formatting | Textauszeichnung ### */ + + cite, blockquote { font-style:italic; } + blockquote { margin: 0 0 1em 1.5em; } + + strong,b { font-weight: bold; } + em,i { font-style:italic; } + + pre, code { font-family: monospace; font-size: 1.1em; } + + acronym, abbr { + letter-spacing: .07em; + border-bottom: .1em dashed #c00; + cursor: help; + } + + /** + * Generic Content Classes + * (en) standard classes for positioning and highlighting + * (de) Standardklassen zur Positionierung und Hervorhebung + * + * @section content-generic-classes + */ + + .note { background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted; } + .important { background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted; } + .warning { background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted; } + + .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } + .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } + .center { text-align:center; margin: 0.5em auto; } + + /** + * External Links + * + * (en) Formatting of hyperlinks + * (de) Gestaltung von Hyperlinks + * + */ + + a { color: #900; text-decoration:none; } + a:focus, + a:hover, + a:active { background-color: #fee; text-decoration:underline; } + + #topnav a { color: #aac; font-weight: bold; background:transparent; text-decoration:none; } + #topnav a:focus, + #topnav a:hover, + #topnav a:active{ text-decoration:underline; background-color: transparent; } + + #footer a { color: #aac; background:transparent; font-weight: bold; } + #footer a:focus, + #footer a:hover, + #footer a:active { color: #fff; background-color: transparent; text-decoration:underline; } + + /** + * (en) Emphasizing external Hyperlinks via CSS + * (de) Hervorhebung externer Hyperlinks mit CSS + * + * @section content-external-links + * @app-yaml-default disabled + */ + + /* + #main a[href^="http://www.my-domain.com"], + #main a[href^="https://www.my-domain.com"] + { + padding-left: 12px; + background-image: url('your_image.gif'); + background-repeat: no-repeat; + background-position: 0 0.45em; + } + */ + + /** + * Tables | Tabellen + * (en) Generic classes for table-width and design definition + * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen + * + * @section content-tables + */ + + table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } + table.full { width: 100%; } + table.fixed { table-layout:fixed; } + + th,td { padding: 0.5em; } + thead th { background: #444; color: #fff; } + tbody th { background: #ccc; color: #333; } + tbody th.sub { background: #ddd; color: #333; } + + /** + * Miscellaneous | Sonstiges + * + * @section content-misc + */ + + hr { + color: #fff; + background:transparent; + margin: 0 0 0.5em 0; + padding: 0 0 0.5em 0; + border:0; + border-bottom: 1px #000 solid; + } +} + diff --git a/interface/web/themes/default_64_navimg/css/additional.css b/interface/web/themes/default_64_navimg/css/additional.css index 61bed3f859..465f042d38 100644 --- a/interface/web/themes/default_64_navimg/css/additional.css +++ b/interface/web/themes/default_64_navimg/css/additional.css @@ -1,60 +1,60 @@ -@media all -{ - #topNav a { - background-color: #D3D3D3; - background-position: center top; - background-repeat: no-repeat; - color:black; - display:inline-block; - height:20px; - padding-top:68px; - text-align:center; - text-decoration:none; - width:97px; - } - - .topnav-admin { - background-image: url('/themes/default/icons/x64/system.png') !important; - } - - .topnav-client { - background-image: url('/themes/default/icons/x64/client.png') !important; - } - - .topnav-mail { - background-image: url('/themes/default/icons/x64/email.png') !important; - } - - .topnav-monitor { - background-image: url('/themes/default/icons/x64/monitor.png') !important; - } - - .topnav-sites { - background-image: url('/themes/default/icons/x64/sites.png') !important; - } - - .topnav-dns { - background-image: url('/themes/default/icons/x64/dns.png') !important; - } - - .topnav-tools { - background-image: url('/themes/default/icons/x64/tools.png') !important; - } - - .topnav-help { - background-image: url('/themes/default/icons/x64/help.png') !important; - } - - .topnav- { - background-image: url('/themes/default/icons/x64/login.png') !important; - } - - .topnav-domain { - background-image: url('/themes/default/icons/x64/domain.png') !important; - } - - .topnav-dashboard { - background-image: url('/themes/default/icons/x64/dashboard.png') !important; - } - +@media all +{ + #topNav a { + background-color: #D3D3D3; + background-position: center top; + background-repeat: no-repeat; + color:black; + display:inline-block; + height:20px; + padding-top:68px; + text-align:center; + text-decoration:none; + width:97px; + } + + .topnav-admin { + background-image: url('/themes/default/icons/x64/system.png') !important; + } + + .topnav-client { + background-image: url('/themes/default/icons/x64/client.png') !important; + } + + .topnav-mail { + background-image: url('/themes/default/icons/x64/email.png') !important; + } + + .topnav-monitor { + background-image: url('/themes/default/icons/x64/monitor.png') !important; + } + + .topnav-sites { + background-image: url('/themes/default/icons/x64/sites.png') !important; + } + + .topnav-dns { + background-image: url('/themes/default/icons/x64/dns.png') !important; + } + + .topnav-tools { + background-image: url('/themes/default/icons/x64/tools.png') !important; + } + + .topnav-help { + background-image: url('/themes/default/icons/x64/help.png') !important; + } + + .topnav- { + background-image: url('/themes/default/icons/x64/login.png') !important; + } + + .topnav-domain { + background-image: url('/themes/default/icons/x64/domain.png') !important; + } + + .topnav-dashboard { + background-image: url('/themes/default/icons/x64/dashboard.png') !important; + } + } \ No newline at end of file diff --git a/interface/web/themes/default_no_navimg/css/additional.css b/interface/web/themes/default_no_navimg/css/additional.css index c5ceae2498..01ca51f3fa 100644 --- a/interface/web/themes/default_no_navimg/css/additional.css +++ b/interface/web/themes/default_no_navimg/css/additional.css @@ -1,60 +1,60 @@ -@media all -{ - #topNav a { - background-color: #D3D3D3; - background-position: center top; - background-repeat: no-repeat; - color:black; - display:inline-block; - height:20px; - padding-top:5px; - text-align:center; - text-decoration:none; - width:97px; - } - - .topnav-admin { - background-image: none !important; - } - - .topnav-client { - background-image: none !important; - } - - .topnav-mail { - background-image: none !important; - } - - .topnav-monitor { - background-image: none !important; - } - - .topnav-sites { - background-image: none !important; - } - - .topnav-dns { - background-image: none !important; - } - - .topnav-tools { - background-image: none !important; - } - - .topnav-help { - background-image: none !important; - } - - .topnav- { - background-image: none !important; - } - - .topnav-domain { - background-image: none !important; - } - - .topnav-dashboard { - background-image: none !important; - } - +@media all +{ + #topNav a { + background-color: #D3D3D3; + background-position: center top; + background-repeat: no-repeat; + color:black; + display:inline-block; + height:20px; + padding-top:5px; + text-align:center; + text-decoration:none; + width:97px; + } + + .topnav-admin { + background-image: none !important; + } + + .topnav-client { + background-image: none !important; + } + + .topnav-mail { + background-image: none !important; + } + + .topnav-monitor { + background-image: none !important; + } + + .topnav-sites { + background-image: none !important; + } + + .topnav-dns { + background-image: none !important; + } + + .topnav-tools { + background-image: none !important; + } + + .topnav-help { + background-image: none !important; + } + + .topnav- { + background-image: none !important; + } + + .topnav-domain { + background-image: none !important; + } + + .topnav-dashboard { + background-image: none !important; + } + } \ No newline at end of file diff --git a/interface/web/tools/form/user_settings.tform.php b/interface/web/tools/form/user_settings.tform.php index f261b1150c..65316114d7 100644 --- a/interface/web/tools/form/user_settings.tform.php +++ b/interface/web/tools/form/user_settings.tform.php @@ -1,164 +1,164 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -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. -*/ - -/* - Form Definition - - Tabellendefinition - - Datentypen: - - INTEGER (Wandelt Ausdr�cke in Int um) - - DOUBLE - - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) - - VARCHAR (kein weiterer Format Check) - - TEXT (kein weiterer Format Check) - - DATE (Datumsformat, Timestamp Umwandlung) - - Formtype: - - TEXT (normales Textfeld) - - TEXTAREA (normales Textfeld) - - PASSWORD (Feldinhalt wird nicht angezeigt) - - SELECT (Gibt Werte als option Feld aus) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hinweis: - Das ID-Feld ist nicht bei den Table Values einzuf�gen. - - -*/ - -$form['title'] = 'User Settings'; -$form['description'] = 'Form to edit the user password and language.'; -$form['name'] = 'usersettings'; -$form['action'] = 'user_settings.php'; -$form['db_table'] = 'sys_user'; -$form['db_table_idx'] = 'userid'; -$form["db_history"] = "no"; -$form['tab_default'] = 'users'; -$form['list_default'] = 'index.php'; -$form['auth'] = 'no'; - -//* 0 = id of the user, > 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form['tabs']['users'] = array ( - 'title' => 'Settings', - 'width' => 80, - 'template' => 'templates/user_settings.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'passwort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '100', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'language_is_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z]{2}$/i', - 'errmsg'=> 'language_regex_mismatch'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '2', - 'rows' => '', - 'cols' => '' - ), - 'id_rsa' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id_rsa FROM client WHERE {AUTHSQL}', - 'valuefield'=> 'id_rsa' - ), - 'value' => '' - ), - 'ssh_rsa' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT ssh_rsa FROM client WHERE {AUTHSQL}', - 'valuefield'=> 'ssh_rsa' - ), - 'value' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - - -?> +<?php + +/* +Copyright (c) 2005, Till Brehm, projektfarm Gmbh +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. +*/ + +/* + Form Definition + + Tabellendefinition + + Datentypen: + - INTEGER (Wandelt Ausdr�cke in Int um) + - DOUBLE + - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) + - VARCHAR (kein weiterer Format Check) + - TEXT (kein weiterer Format Check) + - DATE (Datumsformat, Timestamp Umwandlung) + + Formtype: + - TEXT (normales Textfeld) + - TEXTAREA (normales Textfeld) + - PASSWORD (Feldinhalt wird nicht angezeigt) + - SELECT (Gibt Werte als option Feld aus) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hinweis: + Das ID-Feld ist nicht bei den Table Values einzuf�gen. + + +*/ + +$form['title'] = 'User Settings'; +$form['description'] = 'Form to edit the user password and language.'; +$form['name'] = 'usersettings'; +$form['action'] = 'user_settings.php'; +$form['db_table'] = 'sys_user'; +$form['db_table_idx'] = 'userid'; +$form["db_history"] = "no"; +$form['tab_default'] = 'users'; +$form['list_default'] = 'index.php'; +$form['auth'] = 'no'; + +//* 0 = id of the user, > 0 id must match with id of current user +$form['auth_preset']['userid'] = 0; +//* 0 = default groupid of the user, > 0 id must match with groupid of current user +$form['auth_preset']['groupid'] = 0; + +//** Permissions are: r = read, i = insert, u = update, d = delete +$form['auth_preset']['perm_user'] = 'riud'; +$form['auth_preset']['perm_group'] = 'riud'; +$form['auth_preset']['perm_other'] = ''; + +//* Languages +$language_list = array(); +$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); +while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..') { + if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { + $tmp = substr($file, 0, 2); + $language_list[$tmp] = $tmp; + } + } +} + +$form['tabs']['users'] = array ( + 'title' => 'Settings', + 'width' => 80, + 'template' => 'templates/user_settings.htm', + 'fields' => array ( + ################################## + # Beginn Datenbankfelder + ################################## + 'passwort' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption'=> 'CRYPT', + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '15', + 'maxlength' => '100', + 'rows' => '', + 'cols' => '' + ), + 'language' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'language_is_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z]{2}$/i', + 'errmsg'=> 'language_regex_mismatch'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $language_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '2', + 'rows' => '', + 'cols' => '' + ), + 'id_rsa' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT id_rsa FROM client WHERE {AUTHSQL}', + 'valuefield'=> 'id_rsa' + ), + 'value' => '' + ), + 'ssh_rsa' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT ssh_rsa FROM client WHERE {AUTHSQL}', + 'valuefield'=> 'ssh_rsa' + ), + 'value' => '' + ) + ################################## + # ENDE Datenbankfelder + ################################## + ) +); + + +?> diff --git a/interface/web/tools/templates/user_settings.htm b/interface/web/tools/templates/user_settings.htm index a3202adb77..b257fcc9dd 100644 --- a/interface/web/tools/templates/user_settings.htm +++ b/interface/web/tools/templates/user_settings.htm @@ -1,44 +1,44 @@ -<h2><tmpl_var name="list_head_txt"></h2> -<p><tmpl_var name="list_desc_txt"></p> - -<div class="panel panel_usersettings"> - - <div class="pnl_formsarea"> - <fieldset class="inlineLabels"> - <div class="ctrlHolder"> - <label for="passwort">{tmpl_var name='passwort_txt'}</label> - <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value)"/> - </div> - <div class="ctrlHolder"> - <p class="label">{tmpl_var name='password_strength_txt'}</p> - <div id="passBar"></div> - <p class="formHint"><span id="passText"> </span></p> - </div> - <div class="ctrlHolder"> - <label for="passwort2">{tmpl_var name='passwort_txt'}</label> - <input name="passwort2" id="passwort2" value="" size="15" maxlength="100" type="password" class="textInput" /> - </div> - <div class="ctrlHolder"> - <label for="language">{tmpl_var name='language_txt'}</label> - <select name="language" id="language" class="selectInput withicons"> - {tmpl_var name='language'} - </select> - </div> - <div class="ctrlHolder"> - <label for="id_rsa">id_rsa</label> - <textarea name="id_rsa" id="id_rsa" readonly rows='10' cols='30'>{tmpl_var name='id_rsa'}</textarea> - </div> - <div class="ctrlHolder"> - <label for="ssh_rsa">ssh_rsa</label> - <input name="ssh_rsa" id="ssh_rsa" value="{tmpl_var name='ssh_rsa'}" size="30" maxlength="600" type="text" class="textInput" /> - </div> - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="buttonHolder buttons"> - <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/user_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> - <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> - </div> - </div> - -</div> +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_usersettings"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="passwort">{tmpl_var name='passwort_txt'}</label> + <input name="passwort" id="passwort" value="{tmpl_var name='passwort'}" size="15" maxlength="100" type="password" class="textInput" onkeyup="pass_check(this.value)"/> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='password_strength_txt'}</p> + <div id="passBar"></div> + <p class="formHint"><span id="passText"> </span></p> + </div> + <div class="ctrlHolder"> + <label for="passwort2">{tmpl_var name='passwort_txt'}</label> + <input name="passwort2" id="passwort2" value="" size="15" maxlength="100" type="password" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="language">{tmpl_var name='language_txt'}</label> + <select name="language" id="language" class="selectInput withicons"> + {tmpl_var name='language'} + </select> + </div> + <div class="ctrlHolder"> + <label for="id_rsa">id_rsa</label> + <textarea name="id_rsa" id="id_rsa" readonly rows='10' cols='30'>{tmpl_var name='id_rsa'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssh_rsa">ssh_rsa</label> + <input name="ssh_rsa" id="ssh_rsa" value="{tmpl_var name='ssh_rsa'}" size="30" maxlength="600" type="text" class="textInput" /> + </div> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','tools/user_settings.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('tools/index.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/server/lib/classes/tpl_cache.inc.php b/server/lib/classes/tpl_cache.inc.php index 18e7d385f9..a3999466a7 100644 --- a/server/lib/classes/tpl_cache.inc.php +++ b/server/lib/classes/tpl_cache.inc.php @@ -1,186 +1,186 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 2002 Active Fish Group | -// +----------------------------------------------------------------------+ -// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | -// +----------------------------------------------------------------------+ -// -// $Id: cache.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ - -/** - * Class uses all of vlibTemplate's functionality but caches the template files. - * It creates an identical tree structure to your filesystem but with cached files. - * - * @author Kelvin Jones <kelvin@kelvinjones.co.uk> - * @since 22/02/2002 - * @package vLIB - * @access public - */ - -class tplc extends tpl { - -/*-----------------------------------------------------------------------------\ -| DO NOT TOUCH ANYTHING IN THIS CLASS, IT MAY NOT WORK OTHERWISE | -\-----------------------------------------------------------------------------*/ - - var $_cache = 1; // tells vlibTemplate that we're caching - var $_cachefile; // full path to current cache file (even if it doesn't yet exist) - var $_cacheexists; // has this file been cached before - var $_cachefilelocked; // is this file currently locked whilst writing - var $_cachefiledir; // dir of current cache file - var $_clearcache = 0; - - - /** - * FUNCTION: clearCache - * will unset a file, and set $this->_cacheexists to 0. - * - * @access public - * @return boolean - */ - function clearCache() { - $this->_clearcache = 1; - return true; - } - - /** - * FUNCTION: recache - * alias for clearCache(). - * - * @access public - * @return boolean - */ - function recache() { - return $this->clearCache(); - } - - /** - * FUNCTION: setCacheLifeTime - * sets the lifetime of the cached file - * - * @param int $int number of seconds to set lifetime to - * @access public - * @return boolean - */ - function setCacheLifeTime($int = null) { - if ($int == null || !is_int($int)) return false; - if ($int == 0) $int = 60; - if ($int == -1) $int = 157680000; // set to 5 yrs time - $this->OPTIONS['CACHE_LIFETIME'] = $int; - return true; - } - - /** - * FUNCTION: setCacheExtension - * sets the extention of the cache file - * - * @param str $str name of new cache extention - * @access public - * @return boolean - */ - function setCacheExtension($str = null) { - if ($str == null || !preg_match('/^[a-z0-9]+$/', strtolower($str))) return false; - $this->OPTIONS['CACHE_EXTENSION'] = strtolower($str); - return true; - } - - -/*----------------------------------------\ - Private Functions ------------------------------------------*/ - - /** - * FUNCTION: _checkCache - * checks if there's a cache, if there is then it will read the cache file as the template. - */ - function _checkCache ($tmplfile) { - $this->_cachefile = $this->_getFilename($tmplfile); - if ($this->_clearcache) { - if (file_exists($this->_cachefile)) unlink($this->_cachefile); - return false; - } - - if (file_exists($this->_cachefile)) { - $this->_cacheexists = 1; - - // if it's expired - if ((filemtime($this->_cachefile) + $this->OPTIONS['CACHE_LIFETIME']) < date ('U') - || filectime($this->_cachefile) < filemtime($tmplfile)) { - $this->_cacheexists = 0; - return false; // so that we know to recache - } - else { - return true; - } - - } else { - $this->_cacheexists = 0; - return false; - } - } - - - /** - * FUNCTION: _getFilename - * gets the full pathname for the cached file - * - */ - function _getFilename($tmplfile) { - return $this->OPTIONS['CACHE_DIRECTORY'].'/'.md5('vlibCachestaR'.realpath($tmplfile)).'.'.$this->OPTIONS['CACHE_EXTENSION']; - } - - /** - * FUNCTION: _createCache - * creates the cached file - * - */ - function _createCache($data) { - $cache_file = $this->_cachefile; - if(!$this->_prepareDirs($cache_file)) return false; // prepare all of the directories - - $f = fopen ($cache_file, "w"); - flock($f, 2); // set an EXclusive lock - if (!$f) vlibTemplateError::raiseError('VT_ERROR_NO_CACHE_WRITE',KILL,$cache_file); - fputs ($f, $data); // write the parsed string from vlibTemplate - flock($f, 3); // UNlock file - fclose ($f); - touch ($cache_file); - return true; - } - - /** - * FUNCTION: _prepareDirs - * prepares the directory structure - * - */ - function _prepareDirs($file) { - if (empty($file)) die('no filename'); //do error in future - $filepath = dirname($file); - if (is_dir($filepath)) return true; - - $dirs = preg_split('/[\\/]/', $filepath); - $currpath; - foreach ($dirs as $dir) { - $currpath .= $dir .'/'; - $type = @filetype($currpath); - - ($type=='link') and $type = 'dir'; - if ($type != 'dir' && $type != false && !empty($type)) { - vlibTemplateError::raiseError('VT_ERROR_WRONG_CACHE_TYPE',KILL,'directory: '.$currpath.', type: '.$type); - } - if ($type == 'dir') { - continue; - } - else { - $s = @mkdir($currpath, 0775); - if (!$s) vlibTemplateError::raiseError('VT_ERROR_CACHE_MKDIR_FAILURE',KILL,'directory: '.$currpath); - } - } - return true; - } - -} // -- end vlibTemplateCache class +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP version 4.0 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 2002 Active Fish Group | +// +----------------------------------------------------------------------+ +// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | +// +----------------------------------------------------------------------+ +// +// $Id: cache.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ + +/** + * Class uses all of vlibTemplate's functionality but caches the template files. + * It creates an identical tree structure to your filesystem but with cached files. + * + * @author Kelvin Jones <kelvin@kelvinjones.co.uk> + * @since 22/02/2002 + * @package vLIB + * @access public + */ + +class tplc extends tpl { + +/*-----------------------------------------------------------------------------\ +| DO NOT TOUCH ANYTHING IN THIS CLASS, IT MAY NOT WORK OTHERWISE | +\-----------------------------------------------------------------------------*/ + + var $_cache = 1; // tells vlibTemplate that we're caching + var $_cachefile; // full path to current cache file (even if it doesn't yet exist) + var $_cacheexists; // has this file been cached before + var $_cachefilelocked; // is this file currently locked whilst writing + var $_cachefiledir; // dir of current cache file + var $_clearcache = 0; + + + /** + * FUNCTION: clearCache + * will unset a file, and set $this->_cacheexists to 0. + * + * @access public + * @return boolean + */ + function clearCache() { + $this->_clearcache = 1; + return true; + } + + /** + * FUNCTION: recache + * alias for clearCache(). + * + * @access public + * @return boolean + */ + function recache() { + return $this->clearCache(); + } + + /** + * FUNCTION: setCacheLifeTime + * sets the lifetime of the cached file + * + * @param int $int number of seconds to set lifetime to + * @access public + * @return boolean + */ + function setCacheLifeTime($int = null) { + if ($int == null || !is_int($int)) return false; + if ($int == 0) $int = 60; + if ($int == -1) $int = 157680000; // set to 5 yrs time + $this->OPTIONS['CACHE_LIFETIME'] = $int; + return true; + } + + /** + * FUNCTION: setCacheExtension + * sets the extention of the cache file + * + * @param str $str name of new cache extention + * @access public + * @return boolean + */ + function setCacheExtension($str = null) { + if ($str == null || !preg_match('/^[a-z0-9]+$/', strtolower($str))) return false; + $this->OPTIONS['CACHE_EXTENSION'] = strtolower($str); + return true; + } + + +/*----------------------------------------\ + Private Functions +-----------------------------------------*/ + + /** + * FUNCTION: _checkCache + * checks if there's a cache, if there is then it will read the cache file as the template. + */ + function _checkCache ($tmplfile) { + $this->_cachefile = $this->_getFilename($tmplfile); + if ($this->_clearcache) { + if (file_exists($this->_cachefile)) unlink($this->_cachefile); + return false; + } + + if (file_exists($this->_cachefile)) { + $this->_cacheexists = 1; + + // if it's expired + if ((filemtime($this->_cachefile) + $this->OPTIONS['CACHE_LIFETIME']) < date ('U') + || filectime($this->_cachefile) < filemtime($tmplfile)) { + $this->_cacheexists = 0; + return false; // so that we know to recache + } + else { + return true; + } + + } else { + $this->_cacheexists = 0; + return false; + } + } + + + /** + * FUNCTION: _getFilename + * gets the full pathname for the cached file + * + */ + function _getFilename($tmplfile) { + return $this->OPTIONS['CACHE_DIRECTORY'].'/'.md5('vlibCachestaR'.realpath($tmplfile)).'.'.$this->OPTIONS['CACHE_EXTENSION']; + } + + /** + * FUNCTION: _createCache + * creates the cached file + * + */ + function _createCache($data) { + $cache_file = $this->_cachefile; + if(!$this->_prepareDirs($cache_file)) return false; // prepare all of the directories + + $f = fopen ($cache_file, "w"); + flock($f, 2); // set an EXclusive lock + if (!$f) vlibTemplateError::raiseError('VT_ERROR_NO_CACHE_WRITE',KILL,$cache_file); + fputs ($f, $data); // write the parsed string from vlibTemplate + flock($f, 3); // UNlock file + fclose ($f); + touch ($cache_file); + return true; + } + + /** + * FUNCTION: _prepareDirs + * prepares the directory structure + * + */ + function _prepareDirs($file) { + if (empty($file)) die('no filename'); //do error in future + $filepath = dirname($file); + if (is_dir($filepath)) return true; + + $dirs = preg_split('/[\\/]/', $filepath); + $currpath; + foreach ($dirs as $dir) { + $currpath .= $dir .'/'; + $type = @filetype($currpath); + + ($type=='link') and $type = 'dir'; + if ($type != 'dir' && $type != false && !empty($type)) { + vlibTemplateError::raiseError('VT_ERROR_WRONG_CACHE_TYPE',KILL,'directory: '.$currpath.', type: '.$type); + } + if ($type == 'dir') { + continue; + } + else { + $s = @mkdir($currpath, 0775); + if (!$s) vlibTemplateError::raiseError('VT_ERROR_CACHE_MKDIR_FAILURE',KILL,'directory: '.$currpath); + } + } + return true; + } + +} // -- end vlibTemplateCache class ?> \ No newline at end of file diff --git a/server/lib/classes/tpl_error.inc.php b/server/lib/classes/tpl_error.inc.php index 2f139882b9..d15b80a2ca 100644 --- a/server/lib/classes/tpl_error.inc.php +++ b/server/lib/classes/tpl_error.inc.php @@ -1,92 +1,92 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | PHP version 4.0 | -// +----------------------------------------------------------------------+ -// | Copyright (c) 2002 Active Fish Group | -// +----------------------------------------------------------------------+ -// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | -// +----------------------------------------------------------------------+ -// -// $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ - -define('FATAL', E_USER_ERROR); -define('WARNING', E_USER_WARNING); -define('NOTICE', E_USER_NOTICE); -define('KILL', -1); // used for killing inside parsing. - -/** - * Class is used by vlibTemplate. - * It handles all of the error reporting for vlibTemplate. - * - * @author Kelvin Jones <kelvin@kelvinjones.co.uk> - * @since 06/03/2002 - * @package vLIB - * @access private - */ - -class vlibTemplateError { - -/*-----------------------------------------------------------------------------\ -| DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE | -\-----------------------------------------------------------------------------*/ - - function raiseError ($code, $level = null, $extra=null) { - if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level - - $error_codes = array( - 'VT_ERROR_NOFILE' => 'vlibTemplate Error: Template ('.$extra.') file not found.', - 'VT_ERROR_PARSE' => 'vlibTemplate Error: Parse error!<br>To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).', - 'VT_NOTICE_INVALID_TAG' => 'vlibTemplate Notice: Invalid tag ('.$extra.').', - 'VT_ERROR_INVALID_TAG' => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.', - 'VT_NOTICE_INVALID_ATT' => 'vlibTemplate Notice: Invalid attribute ('.$extra.').', - 'VT_WARNING_INVALID_ARR' => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').', - 'VT_ERROR_INVALID_ERROR_CODE' => 'vlibTemplate Error: Invalid error raised.', - 'VT_ERROR_WRONG_NO_PARAMS' => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.', - 'VT_ERROR_UNKNOWN_VAR' => 'vlibTemplate Error: template var not found.', - 'VT_ERROR_NO_CACHE_WRITE' => 'vlibTemplate Error: unable to write to cache file ('.$extra.').', - 'VT_ERROR_WRONG_CACHE_TYPE' => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').', - 'VT_ERROR_CACHE_MKDIR_FAILURE' => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').', - 'VT_WARNING_NOT_CACHE_OBJ' => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.', - 'VT_WARNING_LOOP_NOT_SET' => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.', - 'VT_WARNING_INVALID_RESOURCE' => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".', - 'VT_WARNING_INVALID_LOOP_DB' => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.', - 'VT_WARNING_INVALID_IF_OP' => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.' - ); - - $error_levels = array( - 'VT_ERROR_NOFILE' => FATAL, - 'VT_ERROR_PARSE' => FATAL, - 'VT_NOTICE_INVALID_TAG' => NOTICE, - 'VT_ERROR_INVALID_TAG' => FATAL, - 'VT_NOTICE_INVALID_ATT' => NOTICE, - 'VT_WARNING_INVALID_ARR' => WARNING, - 'VT_ERROR_INVALID_ERROR_CODE' => FATAL, - 'VT_ERROR_WRONG_NO_PARAMS' => WARNING, - 'VT_ERROR_UNKNOWN_VAR' => WARNING, - 'VT_ERROR_NO_CACHE_WRITE' => KILL, - 'VT_ERROR_WRONG_CACHE_TYPE' => KILL, - 'VT_ERROR_CACHE_MKDIR_FAILURE' => KILL, - 'VT_WARNING_NOT_CACHE_OBJ' => WARNING, - 'VT_WARNING_LOOP_NOT_SET' => WARNING, - 'VT_WARNING_INVALID_RESOURCE' => WARNING, - 'VT_WARNING_INVALID_LOOP_DB' => WARNING, - 'VT_WARNING_INVALID_IF_OP' => WARNING - ); - - ($level === null) and $level = $error_levels[$code]; - if ($level == KILL) { - die ($error_codes[$code]); - } - - if ($msg = $error_codes[$code]) { - trigger_error($msg, $level); - } else { - $level = $error_levels['VT_ERROR_INVALID_ERROR_CODE']; - $msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE']; - trigger_error($msg, $level); - } - return; - } -} +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4: */ +// +----------------------------------------------------------------------+ +// | PHP version 4.0 | +// +----------------------------------------------------------------------+ +// | Copyright (c) 2002 Active Fish Group | +// +----------------------------------------------------------------------+ +// | Authors: Kelvin Jones <kelvin@kelvinjones.co.uk> | +// +----------------------------------------------------------------------+ +// +// $Id: error.php,v 1.1 2003/07/08 12:32:06 platinum Exp $ + +define('FATAL', E_USER_ERROR); +define('WARNING', E_USER_WARNING); +define('NOTICE', E_USER_NOTICE); +define('KILL', -1); // used for killing inside parsing. + +/** + * Class is used by vlibTemplate. + * It handles all of the error reporting for vlibTemplate. + * + * @author Kelvin Jones <kelvin@kelvinjones.co.uk> + * @since 06/03/2002 + * @package vLIB + * @access private + */ + +class vlibTemplateError { + +/*-----------------------------------------------------------------------------\ +| DO NOT TOUCH ANYTHING IN THIS CLASS IT MAY NOT WORK OTHERWISE | +\-----------------------------------------------------------------------------*/ + + function raiseError ($code, $level = null, $extra=null) { + if (!($level & error_reporting())&& $level != KILL) return; // binary AND checks for reporting level + + $error_codes = array( + 'VT_ERROR_NOFILE' => 'vlibTemplate Error: Template ('.$extra.') file not found.', + 'VT_ERROR_PARSE' => 'vlibTemplate Error: Parse error!<br>To debug this file, use vlibTemplateDebug instead of vlibTemplate in the class instantiation(i.e. new vlibTemplateDebug).', + 'VT_NOTICE_INVALID_TAG' => 'vlibTemplate Notice: Invalid tag ('.$extra.').', + 'VT_ERROR_INVALID_TAG' => 'vlibTemplate Error: Invalid tag ('.$extra.'). To disable this you must turn of the STRICT option.', + 'VT_NOTICE_INVALID_ATT' => 'vlibTemplate Notice: Invalid attribute ('.$extra.').', + 'VT_WARNING_INVALID_ARR' => 'vlibTemplate Warning: Invalid loop structure passed to vlibTemplate::setLoop() (loop name: '.$extra.').', + 'VT_ERROR_INVALID_ERROR_CODE' => 'vlibTemplate Error: Invalid error raised.', + 'VT_ERROR_WRONG_NO_PARAMS' => 'vlibTemplate Warning: Wrond parameter count passed to '.$extra.'.', + 'VT_ERROR_UNKNOWN_VAR' => 'vlibTemplate Error: template var not found.', + 'VT_ERROR_NO_CACHE_WRITE' => 'vlibTemplate Error: unable to write to cache file ('.$extra.').', + 'VT_ERROR_WRONG_CACHE_TYPE' => 'vlibTemplate Error: non-directory file found in cache root with same name as directory ('.$extra.').', + 'VT_ERROR_CACHE_MKDIR_FAILURE' => 'vlibTemplate Error: failed to create directory in cache root ('.$extra.').', + 'VT_WARNING_NOT_CACHE_OBJ' => 'vlibTemplate Warning: called a vlibTemplateCache function ('.$extra.') without instantiating the vlibTemplateCache class.', + 'VT_WARNING_LOOP_NOT_SET' => 'vlibTemplate Warning: called vlibTemplate::addRow() or vlibTemplate::addLoop() with an invalid loop name.', + 'VT_WARNING_INVALID_RESOURCE' => 'vlibTemplate Warning: Invalid resource type passed to vlibTemplate::setDbLoop() for Db "'.$extra.'".', + 'VT_WARNING_INVALID_LOOP_DB' => 'vlibTemplate Warning: Invalid Db type passed to vlibTemplate::setDbLoop(), "'.$extra.'" not currently available.', + 'VT_WARNING_INVALID_IF_OP' => 'vlibTemplate Warning: The Operator "'.$extra.'" is not supported by vlibTemplate.' + ); + + $error_levels = array( + 'VT_ERROR_NOFILE' => FATAL, + 'VT_ERROR_PARSE' => FATAL, + 'VT_NOTICE_INVALID_TAG' => NOTICE, + 'VT_ERROR_INVALID_TAG' => FATAL, + 'VT_NOTICE_INVALID_ATT' => NOTICE, + 'VT_WARNING_INVALID_ARR' => WARNING, + 'VT_ERROR_INVALID_ERROR_CODE' => FATAL, + 'VT_ERROR_WRONG_NO_PARAMS' => WARNING, + 'VT_ERROR_UNKNOWN_VAR' => WARNING, + 'VT_ERROR_NO_CACHE_WRITE' => KILL, + 'VT_ERROR_WRONG_CACHE_TYPE' => KILL, + 'VT_ERROR_CACHE_MKDIR_FAILURE' => KILL, + 'VT_WARNING_NOT_CACHE_OBJ' => WARNING, + 'VT_WARNING_LOOP_NOT_SET' => WARNING, + 'VT_WARNING_INVALID_RESOURCE' => WARNING, + 'VT_WARNING_INVALID_LOOP_DB' => WARNING, + 'VT_WARNING_INVALID_IF_OP' => WARNING + ); + + ($level === null) and $level = $error_levels[$code]; + if ($level == KILL) { + die ($error_codes[$code]); + } + + if ($msg = $error_codes[$code]) { + trigger_error($msg, $level); + } else { + $level = $error_levels['VT_ERROR_INVALID_ERROR_CODE']; + $msg = $error_codes['VT_ERROR_INVALID_ERROR_CODE']; + trigger_error($msg, $level); + } + return; + } +} ?> \ No newline at end of file diff --git a/server/mods-available/mail_module.inc.php b/server/mods-available/mail_module.inc.php index 1b7f9575ba..23e0b8d7df 100644 --- a/server/mods-available/mail_module.inc.php +++ b/server/mods-available/mail_module.inc.php @@ -1,162 +1,162 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -class mail_module { - - var $module_name = 'mail_module'; - var $class_name = 'mail_module'; - var $actions_available = array( 'mail_domain_insert', - 'mail_domain_update', - 'mail_domain_delete', - 'mail_user_insert', - 'mail_user_update', - 'mail_user_delete', - 'mail_access_insert', - 'mail_access_update', - 'mail_access_delete', - 'mail_forwarding_insert', - 'mail_forwarding_update', - 'mail_forwarding_delete', - 'mail_transport_insert', - 'mail_transport_update', - 'mail_transport_delete', - 'mail_get_insert', - 'mail_get_update', - 'mail_get_delete', - 'mail_content_filter_insert', - 'mail_content_filter_update', - 'mail_content_filter_delete', - 'mail_mailinglist_insert', - 'mail_mailinglist_update', - 'mail_mailinglist_delete'); - - //* This function is called during ispconfig installation to determine - // if a symlink shall be created for this plugin. - function onInstall() { - global $conf; - - if($conf['services']['mail'] == true) { - return true; - } else { - return false; - } - - } - - /* - This function is called when the module is loaded - */ - - function onLoad() { - global $app; - - /* - Annonce the actions that where provided by this module, so plugins - can register on them. - */ - - $app->plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('mail_access','mail_module','process'); - $app->modules->registerTableHook('mail_domain','mail_module','process'); - $app->modules->registerTableHook('mail_forwarding','mail_module','process'); - $app->modules->registerTableHook('mail_transport','mail_module','process'); - $app->modules->registerTableHook('mail_user','mail_module','process'); - $app->modules->registerTableHook('mail_get','mail_module','process'); - $app->modules->registerTableHook('mail_content_filter','mail_module','process'); - $app->modules->registerTableHook('mail_mailinglist','mail_module','process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'mail_access': - if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - break; - case 'mail_domain': - if($action == 'i') $app->plugins->raiseEvent('mail_domain_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_domain_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_domain_delete',$data); - break; - case 'mail_forwarding': - if($action == 'i') $app->plugins->raiseEvent('mail_forwarding_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_forwarding_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_forwarding_delete',$data); - break; - case 'mail_transport': - if($action == 'i') $app->plugins->raiseEvent('mail_transport_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_transport_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_transport_delete',$data); - break; - case 'mail_user': - if($action == 'i') $app->plugins->raiseEvent('mail_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_user_delete',$data); - break; - case 'mail_get': - if($action == 'i') $app->plugins->raiseEvent('mail_get_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_get_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_get_delete',$data); - break; - case 'mail_content_filter': - if($action == 'i') $app->plugins->raiseEvent('mail_content_filter_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_content_filter_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_content_filter_delete',$data); - break; - case 'mail_mailinglist': - if($action == 'i') $app->plugins->raiseEvent('mail_mailinglist_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_mailinglist_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_mailinglist_delete',$data); - break; - } // end switch - } // end function - -} // end class - +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +class mail_module { + + var $module_name = 'mail_module'; + var $class_name = 'mail_module'; + var $actions_available = array( 'mail_domain_insert', + 'mail_domain_update', + 'mail_domain_delete', + 'mail_user_insert', + 'mail_user_update', + 'mail_user_delete', + 'mail_access_insert', + 'mail_access_update', + 'mail_access_delete', + 'mail_forwarding_insert', + 'mail_forwarding_update', + 'mail_forwarding_delete', + 'mail_transport_insert', + 'mail_transport_update', + 'mail_transport_delete', + 'mail_get_insert', + 'mail_get_update', + 'mail_get_delete', + 'mail_content_filter_insert', + 'mail_content_filter_update', + 'mail_content_filter_delete', + 'mail_mailinglist_insert', + 'mail_mailinglist_update', + 'mail_mailinglist_delete'); + + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + global $conf; + + if($conf['services']['mail'] == true) { + return true; + } else { + return false; + } + + } + + /* + This function is called when the module is loaded + */ + + function onLoad() { + global $app; + + /* + Annonce the actions that where provided by this module, so plugins + can register on them. + */ + + $app->plugins->announceEvents($this->module_name,$this->actions_available); + + /* + As we want to get notified of any changes on several database tables, + we register for them. + + The following function registers the function "functionname" + to be executed when a record for the table "dbtable" is + processed in the sys_datalog. "classname" is the name of the + class that contains the function functionname. + */ + + $app->modules->registerTableHook('mail_access','mail_module','process'); + $app->modules->registerTableHook('mail_domain','mail_module','process'); + $app->modules->registerTableHook('mail_forwarding','mail_module','process'); + $app->modules->registerTableHook('mail_transport','mail_module','process'); + $app->modules->registerTableHook('mail_user','mail_module','process'); + $app->modules->registerTableHook('mail_get','mail_module','process'); + $app->modules->registerTableHook('mail_content_filter','mail_module','process'); + $app->modules->registerTableHook('mail_mailinglist','mail_module','process'); + + } + + /* + This function is called when a change in one of the registered tables is detected. + The function then raises the events for the plugins. + */ + + function process($tablename,$action,$data) { + global $app; + + switch ($tablename) { + case 'mail_access': + if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); + break; + case 'mail_domain': + if($action == 'i') $app->plugins->raiseEvent('mail_domain_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_domain_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_domain_delete',$data); + break; + case 'mail_forwarding': + if($action == 'i') $app->plugins->raiseEvent('mail_forwarding_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_forwarding_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_forwarding_delete',$data); + break; + case 'mail_transport': + if($action == 'i') $app->plugins->raiseEvent('mail_transport_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_transport_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_transport_delete',$data); + break; + case 'mail_user': + if($action == 'i') $app->plugins->raiseEvent('mail_user_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_user_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_user_delete',$data); + break; + case 'mail_get': + if($action == 'i') $app->plugins->raiseEvent('mail_get_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_get_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_get_delete',$data); + break; + case 'mail_content_filter': + if($action == 'i') $app->plugins->raiseEvent('mail_content_filter_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_content_filter_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_content_filter_delete',$data); + break; + case 'mail_mailinglist': + if($action == 'i') $app->plugins->raiseEvent('mail_mailinglist_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('mail_mailinglist_update',$data); + if($action == 'd') $app->plugins->raiseEvent('mail_mailinglist_delete',$data); + break; + } // end switch + } // end function + +} // end class + ?> \ No newline at end of file diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index 9375233440..f24fadde5e 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -1,204 +1,204 @@ -<?php -/* -Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com -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. -*/ - -class remoteaction_core_module { - var $module_name = 'remoteaction_core_module'; - var $class_name = 'remoteaction_core_module'; - /* No actions at this time. maybe later... */ - var $actions_available = array(); - //* This function is called during ispconfig installation to determine - // if a symlink shall be created for this plugin. - function onInstall() { - return true; - } - - /* - This function is called when the module is loaded - */ - function onLoad() { - /* - * Check for actions to execute - */ - $this->_execActions(); - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - function process($tablename, $action, $data) { - // not needed - } // end function - - private function _actionDone($id, $state) { - /* - * First set the state - */ - global $app; - $sql = "UPDATE sys_remoteaction " . - "SET action_state = '" . $app->dbmaster->quote($state) . "' " . - "WHERE action_id = " . intval($id); - $app->dbmaster->query($sql); - - /* - * Then save the maxid for the next time... - */ - $fp = fopen(dirname(__FILE__) . "/../lib/remote_action.inc.php", 'wb'); - $content = '<?php' . "\n" . '$maxid_remote_action = ' . $id . ';' . "\n?>"; - fwrite($fp, $content); - fclose($fp); - } - - - /** - * This method searches for scheduled actions and exec then - */ - private function _execActions() { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /* - * First we (till and i, oliver) thought, it was enough to write - * "select from where action_status = 'pending'" and then execute this actions. - * But it is not! - * If a hacker can hack into a server, she can change the valus of action_status - * and so re-exec a action, executed some days bevore. So she can (for example) - * stop a service, a admin stopped some days before! To avoid this, we ignore - * the status (it is only for the interface to show) and use our own maxid - */ - include_once (dirname(__FILE__) . "/../lib/remote_action.inc.php"); - - /* - * Get all actions this server should execute - */ - $sql = "SELECT action_id, action_type, action_param " . - "FROM sys_remoteaction " . - "WHERE server_id = " . $server_id . " ". - " AND action_id > " . intval($maxid_remote_action) . " ". - "ORDER BY action_id"; - $actions = $app->dbmaster->queryAllRecords($sql); - - /* - * process all actions - */ - if(is_array($actions)) { - foreach ($actions as $action) { - if ($action['action_type'] == 'os_update') { - /* do the update */ - $this->_doOsUpdate($action); - /* this action takes so much time, - * we stop executing the actions not to waste more time */ - return; - } - if ($action['action_type'] == 'ispc_update') { - /* do the update */ - $this->_doIspCUpdate($action); - /* this action takes so much time, - * we stop executing the actions not to waste more time */ - return; - } - } - } - } - - private function _doOsUpdate($action) { - /* - * Do the update - */ - //TODO : change this when distribution information has been integrated into server record - if(file_exists('/etc/gentoo-release')) { - exec("glsa-check -f --nocolor affected"); - } - else { - exec("aptitude update"); - exec("aptitude upgrade -y"); - } - - /* - * All well done! - */ - $this->_actionDone($action['action_id'], 'ok'); - } - - private function _doIspCUpdate($action) { - - // Ensure that this code is not executed twice as this would cause a loop in case of a failure - $this->_actionDone($action['action_id'], 'ok'); - - /* - * Get the version-number of the newest version - */ - $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt'); - $new_version = trim($new_version); - - /* - * Do the update - */ - - /* jump into the temporary dir */ - $oldDir = getcwd(); - chdir("/tmp"); - - /* delete the old files (if there are any...) */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); - exec("rm /tmp/ispconfig3_install -R"); - - /* get the newest version */ - exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); - - /* extract the files */ - exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz"); - - /* - * Initialize the automated update - * (the update is then done next start of server.sh - */ - chdir("/tmp/ispconfig3_install/install"); - exec("touch autoupdate"); - - /* - * do some clean-up - */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); - - /* - * go back to the "old path" - */ - chdir($oldDir); - - /* - * All well done! - */ - //$this->_actionDone($action['action_id'], 'ok'); - } -} +<?php +/* +Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com +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. +*/ + +class remoteaction_core_module { + var $module_name = 'remoteaction_core_module'; + var $class_name = 'remoteaction_core_module'; + /* No actions at this time. maybe later... */ + var $actions_available = array(); + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + return true; + } + + /* + This function is called when the module is loaded + */ + function onLoad() { + /* + * Check for actions to execute + */ + $this->_execActions(); + } + + /* + This function is called when a change in one of the registered tables is detected. + The function then raises the events for the plugins. + */ + function process($tablename, $action, $data) { + // not needed + } // end function + + private function _actionDone($id, $state) { + /* + * First set the state + */ + global $app; + $sql = "UPDATE sys_remoteaction " . + "SET action_state = '" . $app->dbmaster->quote($state) . "' " . + "WHERE action_id = " . intval($id); + $app->dbmaster->query($sql); + + /* + * Then save the maxid for the next time... + */ + $fp = fopen(dirname(__FILE__) . "/../lib/remote_action.inc.php", 'wb'); + $content = '<?php' . "\n" . '$maxid_remote_action = ' . $id . ';' . "\n?>"; + fwrite($fp, $content); + fclose($fp); + } + + + /** + * This method searches for scheduled actions and exec then + */ + private function _execActions() { + global $app; + global $conf; + + /* the id of the server as int */ + $server_id = intval($conf["server_id"]); + + /* + * First we (till and i, oliver) thought, it was enough to write + * "select from where action_status = 'pending'" and then execute this actions. + * But it is not! + * If a hacker can hack into a server, she can change the valus of action_status + * and so re-exec a action, executed some days bevore. So she can (for example) + * stop a service, a admin stopped some days before! To avoid this, we ignore + * the status (it is only for the interface to show) and use our own maxid + */ + include_once (dirname(__FILE__) . "/../lib/remote_action.inc.php"); + + /* + * Get all actions this server should execute + */ + $sql = "SELECT action_id, action_type, action_param " . + "FROM sys_remoteaction " . + "WHERE server_id = " . $server_id . " ". + " AND action_id > " . intval($maxid_remote_action) . " ". + "ORDER BY action_id"; + $actions = $app->dbmaster->queryAllRecords($sql); + + /* + * process all actions + */ + if(is_array($actions)) { + foreach ($actions as $action) { + if ($action['action_type'] == 'os_update') { + /* do the update */ + $this->_doOsUpdate($action); + /* this action takes so much time, + * we stop executing the actions not to waste more time */ + return; + } + if ($action['action_type'] == 'ispc_update') { + /* do the update */ + $this->_doIspCUpdate($action); + /* this action takes so much time, + * we stop executing the actions not to waste more time */ + return; + } + } + } + } + + private function _doOsUpdate($action) { + /* + * Do the update + */ + //TODO : change this when distribution information has been integrated into server record + if(file_exists('/etc/gentoo-release')) { + exec("glsa-check -f --nocolor affected"); + } + else { + exec("aptitude update"); + exec("aptitude upgrade -y"); + } + + /* + * All well done! + */ + $this->_actionDone($action['action_id'], 'ok'); + } + + private function _doIspCUpdate($action) { + + // Ensure that this code is not executed twice as this would cause a loop in case of a failure + $this->_actionDone($action['action_id'], 'ok'); + + /* + * Get the version-number of the newest version + */ + $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt'); + $new_version = trim($new_version); + + /* + * Do the update + */ + + /* jump into the temporary dir */ + $oldDir = getcwd(); + chdir("/tmp"); + + /* delete the old files (if there are any...) */ + exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + exec("rm /tmp/ispconfig3_install -R"); + + /* get the newest version */ + exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); + + /* extract the files */ + exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz"); + + /* + * Initialize the automated update + * (the update is then done next start of server.sh + */ + chdir("/tmp/ispconfig3_install/install"); + exec("touch autoupdate"); + + /* + * do some clean-up + */ + exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + + /* + * go back to the "old path" + */ + chdir($oldDir); + + /* + * All well done! + */ + //$this->_actionDone($action['action_id'], 'ok'); + } +} ?> \ No newline at end of file diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index 5e13ba3bfb..823bf85d5e 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -1,155 +1,155 @@ -<?php - -/* -Copyright (c) 2007, Till Brehm, projektfarm Gmbh -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. -*/ - -class mailman_plugin { - - var $plugin_name = 'mailman_plugin'; - var $class_name = 'mailman_plugin'; - - - var $mailman_config_dir = '/etc/mailman/'; - - //* This function is called during ispconfig installation to determine - // if a symlink shall be created for this plugin. - function onInstall() { - global $conf; - - if($conf['services']['mail'] == true) { - return true; - } else { - return false; - } - - } - - /* - This function is called when the plugin is loaded - */ - - function onLoad() { - global $app; - - /* - Register for the events - */ - - $app->plugins->registerEvent('mail_mailinglist_insert','mailman_plugin','insert'); - $app->plugins->registerEvent('mail_mailinglist_update','mailman_plugin','update'); - $app->plugins->registerEvent('mail_mailinglist_delete','mailman_plugin','delete'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update_config(); - - exec("/usr/lib/mailman/bin/newlist -u ".$data["new"]["domain"]." -e ".$data["new"]["domain"]." ".$data["new"]["listname"]." ".$data["new"]["email"]." ".$data["new"]["password"].""); - - exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); - - $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$data["new"]['mailinglist_id']); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - exec("/usr/lib/mailman/bin/change_pw -l ".$data["new"]["listname"]." -p ".$data["new"]["password"].""); - - exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); - - $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$data["new"]['mailinglist_id']); - - } - - function delete($event_name,$data) { - global $app, $conf; - - $this->update_config(); - - exec("/usr/lib/mailman/bin/rmlist -a ".$data["old"]["listname"]); - - exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); - - } - - function update_config() { - global $app, $conf; - - copy($this->mailman_config_dir.'mm_cfg.py',$this->mailman_config_dir.'mm_cfg.py'); - - // load the server configuration options - $app->uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - - // load files - $content = file_get_contents($conf["rootpath"]."/conf/mm_cfg.py.master"); - $old_file = file_get_contents($this->mailman_config_dir."/mm_cfg.py"); - - $old_options = array(); - $lines = explode("\n", $old_file); - foreach ($lines as $line) - { - if (strlen($line) && substr($line, 0, 1) != '#') - { - list($key, $value) = explode("=", $line); - if (!empty($value)) - { - $key = rtrim($key); - $old_options[$key] = trim($value); - } - } - } - - // create virtual_domains list - $domainAll = $app->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); - $virtual_domains = ''; - foreach($domainAll as $domain) - { - if ($domainAll[0]['domain'] == $domain['domain']) - $virtual_domains .= "'".$domain['domain']."'"; - else - $virtual_domains .= ", '".$domain['domain']."'"; - } - - $content = str_replace('{hostname}', $server_config['hostname'], $content); - $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); - $content = str_replace('{virtual_domains}', $virtual_domains, $content); - - file_put_contents($this->mailman_config_dir."/mm_cfg.py", $content); - } - -} // end class - -?> +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +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. +*/ + +class mailman_plugin { + + var $plugin_name = 'mailman_plugin'; + var $class_name = 'mailman_plugin'; + + + var $mailman_config_dir = '/etc/mailman/'; + + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + global $conf; + + if($conf['services']['mail'] == true) { + return true; + } else { + return false; + } + + } + + /* + This function is called when the plugin is loaded + */ + + function onLoad() { + global $app; + + /* + Register for the events + */ + + $app->plugins->registerEvent('mail_mailinglist_insert','mailman_plugin','insert'); + $app->plugins->registerEvent('mail_mailinglist_update','mailman_plugin','update'); + $app->plugins->registerEvent('mail_mailinglist_delete','mailman_plugin','delete'); + + + + } + + function insert($event_name,$data) { + global $app, $conf; + + $this->update_config(); + + exec("/usr/lib/mailman/bin/newlist -u ".$data["new"]["domain"]." -e ".$data["new"]["domain"]." ".$data["new"]["listname"]." ".$data["new"]["email"]." ".$data["new"]["password"].""); + + exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); + + $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$data["new"]['mailinglist_id']); + + } + + // The purpose of this plugin is to rewrite the main.cf file + function update($event_name,$data) { + global $app, $conf; + + exec("/usr/lib/mailman/bin/change_pw -l ".$data["new"]["listname"]." -p ".$data["new"]["password"].""); + + exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); + + $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ".$data["new"]['mailinglist_id']); + + } + + function delete($event_name,$data) { + global $app, $conf; + + $this->update_config(); + + exec("/usr/lib/mailman/bin/rmlist -a ".$data["old"]["listname"]); + + exec($conf['init_scripts'] . '/' . 'mailman reload &> /dev/null'); + + } + + function update_config() { + global $app, $conf; + + copy($this->mailman_config_dir.'mm_cfg.py',$this->mailman_config_dir.'mm_cfg.py'); + + // load the server configuration options + $app->uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + + // load files + $content = file_get_contents($conf["rootpath"]."/conf/mm_cfg.py.master"); + $old_file = file_get_contents($this->mailman_config_dir."/mm_cfg.py"); + + $old_options = array(); + $lines = explode("\n", $old_file); + foreach ($lines as $line) + { + if (strlen($line) && substr($line, 0, 1) != '#') + { + list($key, $value) = explode("=", $line); + if (!empty($value)) + { + $key = rtrim($key); + $old_options[$key] = trim($value); + } + } + } + + // create virtual_domains list + $domainAll = $app->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); + $virtual_domains = ''; + foreach($domainAll as $domain) + { + if ($domainAll[0]['domain'] == $domain['domain']) + $virtual_domains .= "'".$domain['domain']."'"; + else + $virtual_domains .= ", '".$domain['domain']."'"; + } + + $content = str_replace('{hostname}', $server_config['hostname'], $content); + $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); + $content = str_replace('{virtual_domains}', $virtual_domains, $content); + + file_put_contents($this->mailman_config_dir."/mm_cfg.py", $content); + } + +} // end class + +?> -- GitLab