tbrehm
2006-02-24 87a4a65f40ef4ad5a00483671e83ef31b9af85e2
server base system
8 files modified
6 files added
2688 ■■■■■ changed files
interface/lib/classes/tform.inc.php 5 ●●●● patch | view | raw | blame | history
interface/lib/server_conf.master 25 ●●●●● patch | view | raw | blame | history
interface/sql/ispconfig3db.sql 1082 ●●●● patch | view | raw | blame | history
interface/web/admin/form/server.tform.php 246 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_server.lng 23 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_server_list.lng 31 ●●●● patch | view | raw | blame | history
interface/web/admin/list/server.list.php 235 ●●●● patch | view | raw | blame | history
interface/web/admin/templates/server_edit_services.htm 114 ●●●● patch | view | raw | blame | history
interface/web/admin/templates/server_list.htm 84 ●●●● patch | view | raw | blame | history
server/lib/app.inc.php 128 ●●●●● patch | view | raw | blame | history
server/lib/classes/db_mysql.inc.php 480 ●●●●● patch | view | raw | blame | history
server/lib/classes/ini_parser.inc.php 69 ●●●●● patch | view | raw | blame | history
server/lib/config.inc.php 69 ●●●●● patch | view | raw | blame | history
server/server.php 97 ●●●●● patch | view | raw | blame | history
interface/lib/classes/tform.inc.php
@@ -805,13 +805,16 @@
                                }
                        }
                }
                // Insert the server_id, if the record has a server_id
                $server_id = ($record_old["server_id"] > 0)?$record_old["server_id"]:0;
                if(count($diffrec) > 0) {
                        $diffstr = $app->db->quote(serialize($diffrec));
                        $username = $app->db->quote($_SESSION["s"]["user"]["username"]);
                        $dbidx = $this->formDef['db_table_idx'].":".$primary_id;
                        $action = ($action == 'INSERT')?'i':'u';
                        $sql = "INSERT INTO sys_datalog (dbtable,dbidx,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$action','".time()."','$username','$diffstr')";
                        $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')";
                        $app->db->query($sql);
                }
interface/lib/server_conf.master
New file
@@ -0,0 +1,25 @@
[global]
webserver=apache
mailserver=exim
dnsserver=mydns
[mail]
module=exim_mysql
maildir_path=/var/spool/mail/[domain]/[localpart]
mailuser_uid=0
mailuser_gid=0
[web]
module=generic
[dns]
module=generic
[db]
module=generic
[file]
module=generic
[vserver]
module=generic
interface/sql/ispconfig3db.sql
@@ -1,511 +1,571 @@
# phpMyAdmin MySQL-Dump
# version 2.4.0-rc1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 16. Februar 2006 um 22:34
# Server Version: 4.0.23
# PHP-Version: 5.0.3
# Datenbank: `ispconfig3`
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_blacklist`
#
DROP TABLE IF EXISTS mail_blacklist;
CREATE TABLE mail_blacklist (
  blacklist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  address varchar(200) NOT NULL default '',
  recipient varchar(200) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (blacklist_id),
  KEY server_id (server_id,address,recipient)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_box`
#
DROP TABLE IF EXISTS mail_box;
CREATE TABLE mail_box (
  mailbox_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  cryptpwd varchar(128) NOT NULL default '',
  clearpwd varchar(128) NOT NULL default '',
  name varchar(128) NOT NULL default '',
  uid int(10) unsigned NOT NULL default '0',
  gid int(10) unsigned NOT NULL default '0',
  maildir varchar(255) NOT NULL default '',
  quota varchar(255) NOT NULL default '',
  autoresponder enum('0','1') NOT NULL default '0',
  autoresponder_text tinytext NOT NULL,
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (mailbox_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_domain`
#
DROP TABLE IF EXISTS mail_domain;
CREATE TABLE mail_domain (
  domain_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  type enum('local','relay','alias') NOT NULL default 'local',
  destination varchar(255) NOT NULL default '',
  active tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (domain_id),
  KEY server_id (server_id,domain,type)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_domain_catchall`
#
DROP TABLE IF EXISTS mail_domain_catchall;
CREATE TABLE mail_domain_catchall (
  domain_catchall_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (domain_catchall_id),
  KEY server_id (server_id,domain)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_greylist`
#
DROP TABLE IF EXISTS mail_greylist;
CREATE TABLE mail_greylist (
  greylist_id int(11) NOT NULL auto_increment,
  relay_ip varchar(64) default NULL,
  from_domain varchar(255) default NULL,
  block_expires datetime NOT NULL default '0000-00-00 00:00:00',
  record_expires datetime NOT NULL default '0000-00-00 00:00:00',
  origin_type enum('MANUAL','AUTO') NOT NULL default 'AUTO',
  create_time datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (greylist_id)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_mailman_domain`
#
DROP TABLE IF EXISTS mail_mailman_domain;
CREATE TABLE mail_mailman_domain (
  mailman_id int(11) NOT NULL auto_increment,
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  mm_home varchar(255) NOT NULL default '',
  mm_wrap varchar(255) NOT NULL default '',
  mm_user varchar(50) NOT NULL default '',
  mm_group varchar(50) NOT NULL default '',
  PRIMARY KEY  (mailman_id,server_id,domain)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_redirect`
#
DROP TABLE IF EXISTS mail_redirect;
CREATE TABLE mail_redirect (
  redirect_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  type enum('alias','forward') NOT NULL default 'alias',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (redirect_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_spamfilter`
#
DROP TABLE IF EXISTS mail_spamfilter;
CREATE TABLE mail_spamfilter (
  spamfilter_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  spam_rewrite_score_int int(11) NOT NULL default '0',
  spam_delete_score_int int(11) NOT NULL default '0',
  spam_redirect_score_int int(11) NOT NULL default '0',
  spam_rewrite_subject varchar(50) NOT NULL default '***SPAM***',
  spam_redirect_maildir varchar(255) NOT NULL default '',
  spam_redirect_maildir_purge int(11) NOT NULL default '7',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (spamfilter_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_transport`
#
DROP TABLE IF EXISTS mail_transport;
CREATE TABLE mail_transport (
  whitelist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (whitelist_id),
  KEY server_id (server_id,destination),
  KEY server_id_2 (server_id,domain)
) TYPE=MyISAM;
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_whitelist`
#
DROP TABLE IF EXISTS mail_whitelist;
CREATE TABLE mail_whitelist (
  whitelist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  address varchar(255) NOT NULL default '',
  recipient varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (whitelist_id),
  KEY server_id (server_id,address)
) TYPE=MyISAM;
# --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `reseller`
--
DROP TABLE IF EXISTS `reseller`;
CREATE TABLE `reseller` (
  `reseller_id` bigint(20) NOT NULL auto_increment,
  `sys_userid` int(11) NOT NULL default '0',
  `sys_groupid` int(11) NOT NULL default '0',
  `sys_perm_user` varchar(5) NOT NULL default '',
  `sys_perm_group` varchar(5) NOT NULL default '',
  `sys_perm_other` varchar(5) NOT NULL default '',
  `company` varchar(255) NOT NULL default '',
  `title` varchar(255) NOT NULL default '',
  `firstname` varchar(255) NOT NULL default '',
  `surname` varchar(255) NOT NULL default '',
  `street` varchar(255) NOT NULL default '',
  `zip` varchar(255) NOT NULL default '',
  `city` varchar(255) NOT NULL default '',
  `country` varchar(255) NOT NULL default '',
  `telephone` varchar(255) NOT NULL default '',
  `mobile` varchar(255) NOT NULL default '',
  `fax` varchar(255) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `internet` varchar(255) NOT NULL default '',
  `icq` varchar(255) NOT NULL default '',
  `notes` text NOT NULL,
  `limit_client` int(11) NOT NULL default '-1',
  `limit_domain` int(11) NOT NULL default '-1',
  `limit_subdomain` int(11) NOT NULL default '-1',
  `limit_mailbox` int(11) NOT NULL default '-1',
  `limit_mailalias` int(11) NOT NULL default '-1',
  `limit_webquota` int(11) NOT NULL default '-1',
  `limit_mailquota` int(11) NOT NULL default '-1',
  `limit_database` int(11) NOT NULL default '-1',
  `ip_address` text NOT NULL,
  PRIMARY KEY  (`reseller_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `reseller`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `server`
--
DROP TABLE IF EXISTS server;
CREATE TABLE server (
  server_id bigint(20) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_name varchar(255) NOT NULL default '',
  mail_server int(11) NOT NULL default '0',
  web_server int(11) NOT NULL default '0',
  dns_server int(11) NOT NULL default '0',
  file_server int(11) NOT NULL default '0',
  mysql_server int(11) NOT NULL default '0',
  postgresql_server int(11) NOT NULL default '0',
  firebird_server int(11) NOT NULL default '0',
  config text NOT NULL,
  active int(11) NOT NULL default '1',
  PRIMARY KEY  (server_id)
) TYPE=MyISAM;
--
-- Daten für Tabelle `server`
--
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`, `mysql_server`, `postgresql_server`, `firebird_server`, `active`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Server 1', 1, 0, 0, 0, 0, 0, 0, 1);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sys_datalog`
--
DROP TABLE IF EXISTS `sys_datalog`;
CREATE TABLE `sys_datalog` (
  `datalog_id` bigint(20) NOT NULL auto_increment,
  `dbtable` varchar(255) NOT NULL default '',
  `dbidx` varchar(255) NOT NULL default '',
  `action` char(1) NOT NULL default '',
  `tstamp` bigint(20) NOT NULL default '0',
  `user` varchar(255) NOT NULL default '',
  `data` text NOT NULL,
  PRIMARY KEY  (`datalog_id`)
) TYPE=MyISAM AUTO_INCREMENT=48 ;
--
-- Daten für Tabelle `sys_datalog`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sys_dbsync`
--
DROP TABLE IF EXISTS `sys_dbsync`;
CREATE TABLE `sys_dbsync` (
  `id` bigint(20) NOT NULL auto_increment,
  `jobname` varchar(255) NOT NULL default '',
  `sync_interval_minutes` int(11) NOT NULL default '0',
  `db_type` varchar(255) NOT NULL default '',
  `db_host` varchar(255) NOT NULL default '',
  `db_name` varchar(255) NOT NULL default '',
  `db_username` varchar(255) NOT NULL default '',
  `db_password` varchar(255) NOT NULL default '',
  `db_tables` varchar(255) NOT NULL default 'admin,forms',
  `empty_datalog` int(11) NOT NULL default '0',
  `sync_datalog_external` int(11) NOT NULL default '0',
  `active` int(11) NOT NULL default '1',
  `last_datalog_id` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `last_datalog_id` (`last_datalog_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `sys_dbsync`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sys_filesync`
--
DROP TABLE IF EXISTS `sys_filesync`;
CREATE TABLE `sys_filesync` (
  `id` bigint(20) NOT NULL auto_increment,
  `jobname` varchar(255) NOT NULL default '',
  `sync_interval_minutes` int(11) NOT NULL default '0',
  `ftp_host` varchar(255) NOT NULL default '',
  `ftp_path` varchar(255) NOT NULL default '',
  `ftp_username` varchar(255) NOT NULL default '',
  `ftp_password` varchar(255) NOT NULL default '',
  `local_path` varchar(255) NOT NULL default '',
  `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue',
  `active` int(11) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `sys_filesync`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sys_group`
--
DROP TABLE IF EXISTS `sys_group`;
CREATE TABLE `sys_group` (
  `groupid` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '',
  `description` text NOT NULL,
  PRIMARY KEY  (`groupid`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
--
-- Daten für Tabelle `sys_group`
--
INSERT INTO `sys_group` (`groupid`, `name`, `description`) VALUES (1, 'admin', 'Administrators group');
INSERT INTO `sys_group` (`groupid`, `name`, `description`) VALUES (2, 'user', 'Users Group');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `sys_user`
--
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `userid` int(11) NOT NULL auto_increment,
  `sys_userid` int(11) NOT NULL default '0',
  `sys_groupid` int(11) NOT NULL default '0',
  `sys_perm_user` varchar(5) NOT NULL default '',
  `sys_perm_group` varchar(5) NOT NULL default '',
  `sys_perm_other` varchar(5) NOT NULL default '',
  `username` varchar(100) NOT NULL default '',
  `passwort` varchar(100) NOT NULL default '',
  `modules` varchar(255) NOT NULL default '',
  `startmodule` varchar(255) NOT NULL default '',
  `app_theme` varchar(100) NOT NULL default 'default',
  `typ` varchar(20) NOT NULL default 'user',
  `active` tinyint(4) NOT NULL default '1',
  `name` varchar(100) NOT NULL default '',
  `vorname` varchar(100) NOT NULL default '',
  `unternehmen` varchar(100) NOT NULL default '',
  `strasse` varchar(100) NOT NULL default '',
  `ort` varchar(100) NOT NULL default '',
  `plz` varchar(10) NOT NULL default '',
  `land` varchar(50) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `url` varchar(255) NOT NULL default '',
  `telefon` varchar(100) NOT NULL default '',
  `fax` varchar(100) NOT NULL default '',
  `language` varchar(10) NOT NULL default 'de',
  `groups` varchar(255) NOT NULL default '',
  `default_group` int(11) NOT NULL default '0',
  PRIMARY KEY  (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Daten für Tabelle `sys_user`
--
INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `username`, `passwort`, `modules`, `startmodule`, `app_theme`, `typ`, `active`, `name`, `vorname`, `unternehmen`, `strasse`, `ort`, `plz`, `land`, `email`, `url`, `telefon`, `fax`, `language`, `groups`, `default_group`) VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,designer,sites,dns', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0);
--
-- Table structure for table `rr`
--
DROP TABLE IF EXISTS `rr`;
CREATE TABLE `rr` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `zone` int(10) unsigned NOT NULL default '0',
  `name` varchar(64) NOT NULL default '',
  `type` enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NS','PTR','RP','SRV','TXT') default NULL,
  `data` varchar(128) NOT NULL default '',
  `aux` int(10) unsigned NOT NULL default '0',
  `ttl` int(10) unsigned NOT NULL default '86400',
  `sys_userid` int(11) NOT NULL default '0',
  `sys_groupid` int(11) NOT NULL default '0',
  `sys_perm_user` varchar(5) NOT NULL default '',
  `sys_perm_group` varchar(5) NOT NULL default '',
  `sys_perm_other` varchar(5) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `rr` (`zone`,`name`,`type`,`data`)
) TYPE=MyISAM;
--
-- Dumping data for table `rr`
--
-- --------------------------------------------------------
--
-- Table structure for table `soa`
--
DROP TABLE IF EXISTS `soa`;
CREATE TABLE `soa` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `origin` varchar(255) NOT NULL default '',
  `ns` varchar(255) NOT NULL default '',
  `mbox` varchar(255) NOT NULL default '',
  `serial` int(10) unsigned NOT NULL default '1',
  `refresh` int(10) unsigned NOT NULL default '28800',
  `retry` int(10) unsigned NOT NULL default '7200',
  `expire` int(10) unsigned NOT NULL default '604800',
  `minimum` int(10) unsigned NOT NULL default '86400',
  `ttl` int(10) unsigned NOT NULL default '86400',
  `active` enum('Y','N') NOT NULL default 'Y',
  `xfer` varchar(255) NOT NULL default '',
  `sys_userid` int(11) NOT NULL default '0',
  `sys_groupid` int(11) NOT NULL default '0',
  `sys_perm_user` varchar(5) NOT NULL default '',
  `sys_perm_group` varchar(5) NOT NULL default '',
  `sys_perm_other` varchar(5) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `origin` (`origin`),
  KEY `active` (`active`)
) TYPE=MyISAM;
--
-- Dumping data for table `soa`
--
-- --------------------------------------------------------
# phpMyAdmin MySQL-Dump
# version 2.4.0-rc1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 24. Februar 2006 um 10:32
# Server Version: 4.0.23
# PHP-Version: 5.0.3
# Datenbank: `ispconfig3`
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_blacklist`
#
DROP TABLE IF EXISTS mail_blacklist;
CREATE TABLE mail_blacklist (
  blacklist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  address varchar(200) NOT NULL default '',
  recipient varchar(200) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (blacklist_id),
  KEY server_id (server_id,address,recipient)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_blacklist`
#
INSERT INTO mail_blacklist VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'till@test.int', 'till@test.int', '0');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_box`
#
DROP TABLE IF EXISTS mail_box;
CREATE TABLE mail_box (
  mailbox_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  cryptpwd varchar(128) NOT NULL default '',
  clearpwd varchar(128) NOT NULL default '',
  name varchar(128) NOT NULL default '',
  uid int(10) unsigned NOT NULL default '0',
  gid int(10) unsigned NOT NULL default '0',
  maildir varchar(255) NOT NULL default '',
  quota varchar(255) NOT NULL default '',
  autoresponder enum('0','1') NOT NULL default '0',
  autoresponder_text tinytext NOT NULL,
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (mailbox_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_box`
#
INSERT INTO mail_box VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'tt@test.int', '$1$tRlfKeOB$iHJgCn8mH8x/dh/XWy6v0/', '', '', 0, 0, '/var/spool/mail/till', '100', '0', '', '1');
INSERT INTO mail_box VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'moin@test.int', '$1$Ee/.7y3.$wZ4BLXs/Pa80ka9X4ikN8.', '', '', 0, 0, '/var/spool/mail/test.int/moin', '10', '0', '', '1');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_domain`
#
DROP TABLE IF EXISTS mail_domain;
CREATE TABLE mail_domain (
  domain_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  type enum('local','relay','alias') NOT NULL default 'local',
  destination varchar(255) NOT NULL default '',
  active tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (domain_id),
  KEY server_id (server_id,domain,type)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_domain`
#
INSERT INTO mail_domain VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'test.int', 'local', '', 1);
INSERT INTO mail_domain VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'test2.int', 'alias', 'test.int', 1);
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_domain_catchall`
#
DROP TABLE IF EXISTS mail_domain_catchall;
CREATE TABLE mail_domain_catchall (
  domain_catchall_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (domain_catchall_id),
  KEY server_id (server_id,domain)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_domain_catchall`
#
INSERT INTO mail_domain_catchall VALUES (1, 1, 1, 'riud', 'riud', '', 1, 'test.int', 'till@test.int', '1');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_greylist`
#
DROP TABLE IF EXISTS mail_greylist;
CREATE TABLE mail_greylist (
  greylist_id int(11) NOT NULL auto_increment,
  relay_ip varchar(64) default NULL,
  from_domain varchar(255) default NULL,
  block_expires datetime NOT NULL default '0000-00-00 00:00:00',
  record_expires datetime NOT NULL default '0000-00-00 00:00:00',
  origin_type enum('MANUAL','AUTO') NOT NULL default 'AUTO',
  create_time datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (greylist_id)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_greylist`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_mailman_domain`
#
DROP TABLE IF EXISTS mail_mailman_domain;
CREATE TABLE mail_mailman_domain (
  mailman_id int(11) NOT NULL auto_increment,
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  mm_home varchar(255) NOT NULL default '',
  mm_wrap varchar(255) NOT NULL default '',
  mm_user varchar(50) NOT NULL default '',
  mm_group varchar(50) NOT NULL default '',
  PRIMARY KEY  (mailman_id,server_id,domain)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_mailman_domain`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_redirect`
#
DROP TABLE IF EXISTS mail_redirect;
CREATE TABLE mail_redirect (
  redirect_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  type enum('alias','forward') NOT NULL default 'alias',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (redirect_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_redirect`
#
INSERT INTO mail_redirect VALUES (1, 1, 0, 'riud', 'riud', '', 1, 'tom@test.int', 'tt@test.int', 'alias', '1');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_spamfilter`
#
DROP TABLE IF EXISTS mail_spamfilter;
CREATE TABLE mail_spamfilter (
  spamfilter_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  email varchar(255) NOT NULL default '',
  spam_rewrite_score_int int(11) NOT NULL default '0',
  spam_delete_score_int int(11) NOT NULL default '0',
  spam_redirect_score_int int(11) NOT NULL default '0',
  spam_rewrite_subject varchar(50) NOT NULL default '***SPAM***',
  spam_redirect_maildir varchar(255) NOT NULL default '',
  spam_redirect_maildir_purge int(11) NOT NULL default '7',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (spamfilter_id),
  KEY server_id (server_id,email)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_spamfilter`
#
INSERT INTO mail_spamfilter VALUES (1, 0, 0, '', '', '', 1, 'till@test.int', 100, 100, 1, '***SPAM mag ich nicht***', '/var/spool/mail/spam', 0, '1');
INSERT INTO mail_spamfilter VALUES (2, 1, 0, 'riud', 'riud', '', 1, 'till2@test.int', 500, 1500, 700, '***SPAM***', '/var/spool/mail/till', 14, '1');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_transport`
#
DROP TABLE IF EXISTS mail_transport;
CREATE TABLE mail_transport (
  whitelist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  domain varchar(255) NOT NULL default '',
  destination varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (whitelist_id),
  KEY server_id (server_id,destination),
  KEY server_id_2 (server_id,domain)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_transport`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `mail_whitelist`
#
DROP TABLE IF EXISTS mail_whitelist;
CREATE TABLE mail_whitelist (
  whitelist_id int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  address varchar(255) NOT NULL default '',
  recipient varchar(255) NOT NULL default '',
  active enum('0','1') NOT NULL default '1',
  PRIMARY KEY  (whitelist_id),
  KEY server_id (server_id,address)
) TYPE=MyISAM;
#
# Daten für Tabelle `mail_whitelist`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `reseller`
#
DROP TABLE IF EXISTS reseller;
CREATE TABLE reseller (
  reseller_id bigint(20) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  company varchar(255) NOT NULL default '',
  title varchar(255) NOT NULL default '',
  firstname varchar(255) NOT NULL default '',
  surname varchar(255) NOT NULL default '',
  street varchar(255) NOT NULL default '',
  zip varchar(255) NOT NULL default '',
  city varchar(255) NOT NULL default '',
  country varchar(255) NOT NULL default '',
  telephone varchar(255) NOT NULL default '',
  mobile varchar(255) NOT NULL default '',
  fax varchar(255) NOT NULL default '',
  email varchar(255) NOT NULL default '',
  internet varchar(255) NOT NULL default '',
  icq varchar(255) NOT NULL default '',
  notes text NOT NULL,
  limit_client int(11) NOT NULL default '-1',
  limit_domain int(11) NOT NULL default '-1',
  limit_subdomain int(11) NOT NULL default '-1',
  limit_mailbox int(11) NOT NULL default '-1',
  limit_mailalias int(11) NOT NULL default '-1',
  limit_webquota int(11) NOT NULL default '-1',
  limit_mailquota int(11) NOT NULL default '-1',
  limit_database int(11) NOT NULL default '-1',
  ip_address text NOT NULL,
  PRIMARY KEY  (reseller_id)
) TYPE=MyISAM;
#
# Daten für Tabelle `reseller`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `rr`
#
DROP TABLE IF EXISTS rr;
CREATE TABLE rr (
  id int(10) unsigned NOT NULL auto_increment,
  zone int(10) unsigned NOT NULL default '0',
  name varchar(64) NOT NULL default '',
  type enum('A','AAAA','ALIAS','CNAME','HINFO','MX','NS','PTR','RP','SRV','TXT') default NULL,
  data varchar(128) NOT NULL default '',
  aux int(10) unsigned NOT NULL default '0',
  ttl int(10) unsigned NOT NULL default '86400',
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  PRIMARY KEY  (id),
  UNIQUE KEY rr (zone,name,type,data)
) TYPE=MyISAM;
#
# Daten für Tabelle `rr`
#
INSERT INTO rr VALUES (1, 2, '1', 'PTR', 'www.ensign.de.', 0, 86400, 1, 0, 'riud', 'riud', '');
INSERT INTO rr VALUES (2, 1, 'www', 'A', '192.168.0.1', 0, 86400, 1, 0, 'riud', 'riud', '');
INSERT INTO rr VALUES (3, 1, 'ensign.de', 'A', '192.168.0.1', 0, 86400, 1, 0, 'riud', 'riud', '');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `server`
#
DROP TABLE IF EXISTS server;
CREATE TABLE server (
  server_id bigint(20) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  server_name varchar(255) NOT NULL default '',
  mail_server tinyint(4) NOT NULL default '0',
  web_server tinyint(4) NOT NULL default '0',
  dns_server tinyint(4) NOT NULL default '0',
  file_server tinyint(4) NOT NULL default '0',
  db_server tinyint(4) NOT NULL default '0',
  vserver_server tinyint(4) NOT NULL default '0',
  config text NOT NULL,
  update tinyint(4) NOT NULL default '0',
  active tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (server_id)
) TYPE=MyISAM;
#
# Daten für Tabelle `server`
#
INSERT INTO server VALUES (1, 1, 1, 'riud', 'riud', '', 'Server 1', 1, 0, 0, 0, 0, 0, '[global]\r\nwebserver=apache\r\nmailserver=exim\r\ndnsserver=mydns\r\n\r\n[mail]\r\nmodule=exim_mysql\r\nmaildir_path=/var/spool/mail/[domain]/[localpart]\r\nmailuser_uid=0\r\nmailuser_gid=0', 0, 1);
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `soa`
#
DROP TABLE IF EXISTS soa;
CREATE TABLE soa (
  id int(10) unsigned NOT NULL auto_increment,
  origin varchar(255) NOT NULL default '',
  ns varchar(255) NOT NULL default '',
  mbox varchar(255) NOT NULL default '',
  serial int(10) unsigned NOT NULL default '1',
  refresh int(10) unsigned NOT NULL default '28800',
  retry int(10) unsigned NOT NULL default '7200',
  expire int(10) unsigned NOT NULL default '604800',
  minimum int(10) unsigned NOT NULL default '86400',
  ttl int(10) unsigned NOT NULL default '86400',
  active enum('Y','N') NOT NULL default 'Y',
  xfer varchar(255) NOT NULL default '',
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  PRIMARY KEY  (id),
  UNIQUE KEY origin (origin),
  KEY active (active)
) TYPE=MyISAM;
#
# Daten für Tabelle `soa`
#
INSERT INTO soa VALUES (1, 'ensign.de.', 'ns1.example.com.', 'admin.example.com.', 2006012103, 28800, 7200, 604800, 86400, 86400, 'Y', '', 1, 0, 'riud', 'riud', '');
INSERT INTO soa VALUES (2, '0.168.192.in-addr.arpa.', 'ns1.example.com.', 'admin.example.com.', 2006012101, 28800, 7200, 604800, 86400, 86400, 'Y', '', 1, 0, 'riud', 'riud', '');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `sys_datalog`
#
DROP TABLE IF EXISTS sys_datalog;
CREATE TABLE sys_datalog (
  datalog_id bigint(20) NOT NULL auto_increment,
  dbtable varchar(255) NOT NULL default '',
  dbidx varchar(255) NOT NULL default '',
  server_id int(11) NOT NULL default '0',
  action char(1) NOT NULL default '',
  tstamp bigint(20) NOT NULL default '0',
  user varchar(255) NOT NULL default '',
  data text NOT NULL,
  PRIMARY KEY  (datalog_id)
) TYPE=MyISAM;
#
# Daten für Tabelle `sys_datalog`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `sys_dbsync`
#
DROP TABLE IF EXISTS sys_dbsync;
CREATE TABLE sys_dbsync (
  id bigint(20) NOT NULL auto_increment,
  jobname varchar(255) NOT NULL default '',
  sync_interval_minutes int(11) NOT NULL default '0',
  db_type varchar(255) NOT NULL default '',
  db_host varchar(255) NOT NULL default '',
  db_name varchar(255) NOT NULL default '',
  db_username varchar(255) NOT NULL default '',
  db_password varchar(255) NOT NULL default '',
  db_tables varchar(255) NOT NULL default 'admin,forms',
  empty_datalog int(11) NOT NULL default '0',
  sync_datalog_external int(11) NOT NULL default '0',
  active int(11) NOT NULL default '1',
  last_datalog_id bigint(20) NOT NULL default '0',
  PRIMARY KEY  (id),
  KEY last_datalog_id (last_datalog_id)
) TYPE=MyISAM;
#
# Daten für Tabelle `sys_dbsync`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `sys_filesync`
#
DROP TABLE IF EXISTS sys_filesync;
CREATE TABLE sys_filesync (
  id bigint(20) NOT NULL auto_increment,
  jobname varchar(255) NOT NULL default '',
  sync_interval_minutes int(11) NOT NULL default '0',
  ftp_host varchar(255) NOT NULL default '',
  ftp_path varchar(255) NOT NULL default '',
  ftp_username varchar(255) NOT NULL default '',
  ftp_password varchar(255) NOT NULL default '',
  local_path varchar(255) NOT NULL default '',
  wput_options varchar(255) NOT NULL default '--timestamping --reupload --dont-continue',
  active int(11) NOT NULL default '1',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
#
# Daten für Tabelle `sys_filesync`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `sys_group`
#
DROP TABLE IF EXISTS sys_group;
CREATE TABLE sys_group (
  groupid int(11) NOT NULL auto_increment,
  name varchar(255) NOT NULL default '',
  description text NOT NULL,
  PRIMARY KEY  (groupid)
) TYPE=MyISAM;
#
# Daten für Tabelle `sys_group`
#
INSERT INTO sys_group VALUES (1, 'admin', 'Administrators group');
INSERT INTO sys_group VALUES (2, 'user', 'Users Group');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `sys_user`
#
DROP TABLE IF EXISTS sys_user;
CREATE TABLE sys_user (
  userid int(11) NOT NULL auto_increment,
  sys_userid int(11) NOT NULL default '0',
  sys_groupid int(11) NOT NULL default '0',
  sys_perm_user varchar(5) NOT NULL default '',
  sys_perm_group varchar(5) NOT NULL default '',
  sys_perm_other varchar(5) NOT NULL default '',
  username varchar(100) NOT NULL default '',
  passwort varchar(100) NOT NULL default '',
  modules varchar(255) NOT NULL default '',
  startmodule varchar(255) NOT NULL default '',
  app_theme varchar(100) NOT NULL default 'default',
  typ varchar(20) NOT NULL default 'user',
  active tinyint(4) NOT NULL default '1',
  name varchar(100) NOT NULL default '',
  vorname varchar(100) NOT NULL default '',
  unternehmen varchar(100) NOT NULL default '',
  strasse varchar(100) NOT NULL default '',
  ort varchar(100) NOT NULL default '',
  plz varchar(10) NOT NULL default '',
  land varchar(50) NOT NULL default '',
  email varchar(100) NOT NULL default '',
  url varchar(255) NOT NULL default '',
  telefon varchar(100) NOT NULL default '',
  fax varchar(100) NOT NULL default '',
  language varchar(10) NOT NULL default 'de',
  groups varchar(255) NOT NULL default '',
  default_group int(11) NOT NULL default '0',
  PRIMARY KEY  (userid)
) TYPE=MyISAM;
#
# Daten für Tabelle `sys_user`
#
INSERT INTO sys_user VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin,designer,mail,dns', 'admin', 'default', 'admin', 1, '', 'Administrator', '', '', '', '', '', '', '', '', '', 'en', '1,2', 0);
interface/web/admin/form/server.tform.php
@@ -1,124 +1,124 @@
<?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"]             = "Server";
$form["description"]     = "";
$form["name"]             = "server";
$form["action"]            = "server_edit.php";
$form["db_table"]        = "server";
$form["db_table_idx"]    = "server_id";
$form["db_history"]        = "no";
$form["tab_default"]    = "services";
$form["list_default"]    = "server_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"] = 1; // 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"]['services'] = array (
    'title'     => "Services",
    'width'     => 100,
    'template'     => "templates/server_edit_services.htm",
    'fields'     => array (
    ##################################
    # Begin Datatable fields
    ##################################
        'server_name' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => '',
            'width'        => '30',
            'maxlength'    => '255'
        ),
        'mail_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'web_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'dns_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'file_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'mysql_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'postgresql_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'firebird_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'active' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'SELECT',
            'default'    => '1',
            'value'        => array(0 => 'No', 1 => 'Yes')
        ),
    ##################################
    # 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"]             = "Server";
$form["description"]     = "";
$form["name"]             = "server";
$form["action"]            = "server_edit.php";
$form["db_table"]        = "server";
$form["db_table_idx"]    = "server_id";
$form["db_history"]        = "no";
$form["tab_default"]    = "services";
$form["list_default"]    = "server_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"] = 1; // 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"]['services'] = array (
    'title'     => "Services",
    'width'     => 100,
    'template'     => "templates/server_edit_services.htm",
    'fields'     => array (
    ##################################
    # Begin Datatable fields
    ##################################
        'server_name' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'TEXT',
            'default'    => '',
            'value'        => '',
            'width'        => '30',
            'maxlength'    => '255'
        ),
        'mail_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'web_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'dns_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'file_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'db_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'vserver_server' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'CHECKBOX',
            'default'    => '0',
            'value'        => '1'
        ),
        'update' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'SELECT',
            'default'    => '1',
            'value'        => array(0 => 'No', 1 => 'Yes')
        ),
        'active' => array (
            'datatype'    => 'INTEGER',
            'formtype'    => 'SELECT',
            'default'    => '1',
            'value'        => array(0 => 'No', 1 => 'Yes')
        ),
    ##################################
    # ENDE Datatable fields
    ##################################
    )
);
?>
interface/web/admin/lib/lang/en_server.lng
@@ -1,13 +1,12 @@
<?php
$wb["server_name_txt"] = 'Servername';
$wb["mail_server_txt"] = 'Mailserver';
$wb["web_server_txt"] = 'Webserver';
$wb["dns_server_txt"] = 'DNS-Server';
$wb["file_server_txt"] = 'Fileserver';
$wb["mysql_server_txt"] = 'MySQL-Server';
$wb["postgresql_server_txt"] = 'PostgreSQL-Server';
$wb["firebird_server_txt"] = 'Firebird-Server';
$wb["active_txt"] = 'Active';
$wb["btn_save_txt"] = 'Save';
$wb["btn_cancel_txt"] = 'Cancel';
<?php
$wb["server_name_txt"] = 'Servername';
$wb["mail_server_txt"] = 'Mailserver';
$wb["web_server_txt"] = 'Webserver';
$wb["dns_server_txt"] = 'DNS-Server';
$wb["file_server_txt"] = 'Fileserver';
$wb["db_server_txt"] = 'DB-Server';
$wb["vserver_server_txt"] = 'VServer-Server';
$wb["active_txt"] = 'Active';
$wb["btn_save_txt"] = 'Save';
$wb["btn_cancel_txt"] = 'Cancel';
?>
interface/web/admin/lib/lang/en_server_list.lng
@@ -1,17 +1,16 @@
<?php
$wb["list_head_txt"] = 'Server';
$wb["server_name_txt"] = 'Name';
$wb["mail_server_txt"] = 'Mail';
$wb["web_server_txt"] = 'Web';
$wb["dns_server_txt"] = 'DNS';
$wb["file_server_txt"] = 'File';
$wb["mysql_server_txt"] = 'MySQL';
$wb["postgresql_server_txt"] = 'PostgreSQL';
$wb["firebird_server_txt"] = 'Firebird';
$wb["page_txt"] = 'Page';
$wb["page_of_txt"] = 'of';
$wb["page_next_txt"] = 'Next';
$wb["page_back_txt"] = 'Back';
$wb["delete_txt"] = 'Delete';
$wb["filter_txt"] = 'Filter';
<?php
$wb["list_head_txt"] = 'Server';
$wb["server_name_txt"] = 'Name';
$wb["mail_server_txt"] = 'Mail';
$wb["web_server_txt"] = 'Web';
$wb["dns_server_txt"] = 'DNS';
$wb["file_server_txt"] = 'File';
$wb["db_server_txt"] = 'DB';
$wb["vserver_server_txt"] = 'VServer';
$wb["page_txt"] = 'Page';
$wb["page_of_txt"] = 'of';
$wb["page_next_txt"] = 'Next';
$wb["page_back_txt"] = 'Back';
$wb["delete_txt"] = 'Delete';
$wb["filter_txt"] = 'Filter';
?>
interface/web/admin/list/server.list.php
@@ -1,123 +1,114 @@
<?php
/*
    Datatypes:
    - INTEGER
    - DOUBLE
    - CURRENCY
    - VARCHAR
    - TEXT
    - DATE
*/
// Name of the list
$liste["name"]                 = "server";
// Database table
$liste["table"]             = "server";
// Index index field of the database table
$liste["table_idx"]            = "server_id";
// Search Field Prefix
$liste["search_prefix"]     = "search_";
// Records per page
$liste["records_per_page"]     = 15;
// Script File of the list
$liste["file"]                = "server_list.php";
// Script file of the edit form
$liste["edit_file"]            = "server_edit.php";
// Script File of the delete script
$liste["delete_file"]        = "server_del.php";
// Paging Template
$liste["paging_tpl"]        = "templates/paging.tpl.htm";
// Enable authe
$liste["auth"]                = "yes";
/*****************************************************
* Suchfelder
*****************************************************/
$liste["item"][] = array(    'field'        => "server_name",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "mail_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "web_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "dns_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "file_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "mysql_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "postgresql_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "firebird_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
<?php
/*
    Datatypes:
    - INTEGER
    - DOUBLE
    - CURRENCY
    - VARCHAR
    - TEXT
    - DATE
*/
// Name of the list
$liste["name"]                 = "server";
// Database table
$liste["table"]             = "server";
// Index index field of the database table
$liste["table_idx"]            = "server_id";
// Search Field Prefix
$liste["search_prefix"]     = "search_";
// Records per page
$liste["records_per_page"]     = 15;
// Script File of the list
$liste["file"]                = "server_list.php";
// Script file of the edit form
$liste["edit_file"]            = "server_edit.php";
// Script File of the delete script
$liste["delete_file"]        = "server_del.php";
// Paging Template
$liste["paging_tpl"]        = "templates/paging.tpl.htm";
// Enable authe
$liste["auth"]                = "yes";
/*****************************************************
* Suchfelder
*****************************************************/
$liste["item"][] = array(    'field'        => "server_name",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "mail_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "web_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "dns_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "file_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "db_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
$liste["item"][] = array(    'field'        => "vserver_server",
                            'datatype'    => "VARCHAR",
                            'formtype'    => "TEXT",
                            'op'        => "like",
                            'prefix'    => "%",
                            'suffix'    => "%",
                            'width'        => "",
                            'value'        => "");
?>
interface/web/admin/templates/server_edit_services.htm
@@ -1,60 +1,56 @@
<table width="500" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100" class="frmText11">{tmpl_var name='server_name_txt'}:</td>
    <td class="frmText11"><input name="server_name" type="text" class="text" value="{tmpl_var name='server_name'}" size="15" maxlength="255"></td>
  </tr>
  <tr><td colspan="2">&nbsp;</td></tr>
  <tr><td colspan="2">
  <fieldset style="width:205px;"><legend class="frmText11"><b>Services</b></legend>
  <table border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td class="frmText11">{tmpl_var name='mail_server'}</td>
    <td class="frmText11">{tmpl_var name='mail_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='web_server'}</td>
    <td class="frmText11">{tmpl_var name='web_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='dns_server'}</td>
    <td class="frmText11">{tmpl_var name='dns_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='file_server'}</td>
    <td class="frmText11">{tmpl_var name='file_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='mysql_server'}</td>
    <td class="frmText11">{tmpl_var name='mysql_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='postgresql_server'}</td>
    <td class="frmText11">{tmpl_var name='postgresql_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='firebird_server'}</td>
    <td class="frmText11">{tmpl_var name='firebird_server_txt'}</td>
  </tr>
  </table>
  </fieldset>
  </td></tr>
  <tr><td colspan="2">&nbsp;</td></tr>
  <tr>
    <td class="frmText11">{tmpl_var name='active_txt'}:</td>
    <td class="frmText11">
        <select name="active" class="text">
            {tmpl_var name='active'}
        </select>
    </td>
  </tr>  <tr>
    <td class="frmText11">&nbsp;</td>
    <td class="frmText11">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='server_list.php';">
    </td>
  </tr>
</table>
<table width="500" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="100" class="frmText11">{tmpl_var name='server_name_txt'}:</td>
    <td class="frmText11"><input name="server_name" type="text" class="text" value="{tmpl_var name='server_name'}" size="15" maxlength="255"></td>
  </tr>
  <tr><td colspan="2">&nbsp;</td></tr>
  <tr><td colspan="2">
  <fieldset style="width:205px;"><legend class="frmText11"><b>Services</b></legend>
  <table border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td class="frmText11">{tmpl_var name='mail_server'}</td>
    <td class="frmText11">{tmpl_var name='mail_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='web_server'}</td>
    <td class="frmText11">{tmpl_var name='web_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='dns_server'}</td>
    <td class="frmText11">{tmpl_var name='dns_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='file_server'}</td>
    <td class="frmText11">{tmpl_var name='file_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='db_server'}</td>
    <td class="frmText11">{tmpl_var name='db_server_txt'}</td>
  </tr>
  <tr>
    <td class="frmText11">{tmpl_var name='vserver_server'}</td>
    <td class="frmText11">{tmpl_var name='vserver_server_txt'}</td>
  </tr>
  </table>
  </fieldset>
  </td></tr>
  <tr><td colspan="2">&nbsp;</td></tr>
  <tr>
    <td class="frmText11">{tmpl_var name='active_txt'}:</td>
    <td class="frmText11">
        <select name="active" class="text">
            {tmpl_var name='active'}
        </select>
    </td>
  </tr>  <tr>
    <td class="frmText11">&nbsp;</td>
    <td class="frmText11">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="btn_save" type="submit" class="button" value="{tmpl_var name='btn_save_txt'}">
      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="self.location.href='server_list.php';">
    </td>
  </tr>
</table>
<input type="hidden" name="id" value="{tmpl_var name='id'}">
interface/web/admin/templates/server_list.htm
@@ -1,44 +1,42 @@
<form name="myform" action="server_list.php" method="POST">
<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td class="tblHead"><tmpl_var name="server_name_txt"></td>
    <td class="tblHead"><tmpl_var name="mail_server_txt"></td>
    <td class="tblHead"><tmpl_var name="web_server_txt"></td>
    <td class="tblHead"><tmpl_var name="dns_server_txt"></td>
    <td class="tblHead"><tmpl_var name="file_server_txt"></td>
    <td class="tblHead"><tmpl_var name="mysql_server_txt"></td>
    <td class="tblHead"><tmpl_var name="postgresql_server_txt"></td>
    <td class="tblHead"><tmpl_var name="firebird_server_txt"></td>
    <td class="tblHead">&nbsp;</td>
  </tr>
  <tr>
    <td class="frmText11"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" class="text" /></td>
    <td class="frmText11"><input type="text" name="search_mail_server" value="{tmpl_var name='search_mail_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_web_server" value="{tmpl_var name='search_web_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_dns_server" value="{tmpl_var name='search_dns_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_file_server" value="{tmpl_var name='search_file_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_mysql_server" value="{tmpl_var name='search_mysql_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_postgresql_server" value="{tmpl_var name='search_postgresql_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_firebird_server" value="{tmpl_var name='search_firebird_server'}" class="text" size="2" /></td>
    <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
  </tr>
  <tmpl_loop name="records">
  <tr bgcolor="{tmpl_var name="bgcolor"}">
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_name"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mail_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="web_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="dns_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="file_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mysql_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="postgresql_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="firebird_server"}</a></td>
    <td class="frmText11" align="right">[<a href="javascript: del_record('server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
  </tr>
  </tmpl_loop>
  <tr>
      <td colspan="9" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
  </tr>
</table>
<form name="myform" action="server_list.php" method="POST">
<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
<table width="100%" border="0" cellspacing="0" cellpadding="4">
  <tr>
    <td class="tblHead"><tmpl_var name="server_name_txt"></td>
    <td class="tblHead"><tmpl_var name="mail_server_txt"></td>
    <td class="tblHead"><tmpl_var name="web_server_txt"></td>
    <td class="tblHead"><tmpl_var name="dns_server_txt"></td>
    <td class="tblHead"><tmpl_var name="file_server_txt"></td>
    <td class="tblHead"><tmpl_var name="mysql_server_txt"></td>
    <td class="tblHead"><tmpl_var name="postgresql_server_txt"></td>
    <td class="tblHead"><tmpl_var name="firebird_server_txt"></td>
    <td class="tblHead">&nbsp;</td>
  </tr>
  <tr>
    <td class="frmText11"><input type="text" name="search_server_name" value="{tmpl_var name='search_server_name'}" class="text" /></td>
    <td class="frmText11"><input type="text" name="search_mail_server" value="{tmpl_var name='search_mail_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_web_server" value="{tmpl_var name='search_web_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_dns_server" value="{tmpl_var name='search_dns_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_file_server" value="{tmpl_var name='search_file_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_mysql_server" value="{tmpl_var name='search_db_server'}" class="text" size="2" /></td>
    <td class="frmText11"><input type="text" name="search_postgresql_server" value="{tmpl_var name='search_vserver_server'}" class="text" size="2" /></td>
    <td class="frmText11" align="right"><input name="Filter" type="submit" id="Filter" value="{tmpl_var name="filter_txt"}"></td>
  </tr>
  <tmpl_loop name="records">
  <tr bgcolor="{tmpl_var name="bgcolor"}">
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="server_name"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="mail_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="web_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="dns_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="file_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="db_server"}</a></td>
    <td class="frmText11"><a href="server_edit.php?id={tmpl_var name='id'}" class="frmText11">{tmpl_var name="vserver_server"}</a></td>
    <td class="frmText11" align="right">[<a href="javascript: del_record('server_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
  </tr>
  </tmpl_loop>
  <tr>
      <td colspan="9" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
  </tr>
</table>
</form>
server/lib/app.inc.php
New file
@@ -0,0 +1,128 @@
<?php
/*
Copyright (c) 2006, 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 app {
        function app() {
                global $conf;
                if($conf["start_db"] == true) {
                    $this->load('db_'.$conf["db_type"]);
                    $this->db = new db;
                }
        }
        function uses($classes) {
                global $conf;
                $cl = explode(',',$classes);
                if(is_array($cl)) {
                        foreach($cl as $classname) {
                                if(!is_object($this->$classname)) {
                                        include_once($conf['classpath'] . "/".$classname.".inc.php");
                                        $this->$classname = new $classname;
                                }
                        }
                }
        }
        function load($files) {
                global $conf;
                $fl = explode(',',$files);
                if(is_array($fl)) {
                        foreach($fl as $file) {
                                include_once($conf['classpath'] . "/".$file.".inc.php");
                        }
                }
        }
        /*
         0 = DEBUG
         1 = WARNING
         2 = ERROR
        */
        function log($msg, $priority = 0) {
                global $conf;
                if($priority >= $conf["log_priority"]) {
                        if (is_writable($conf["log_file"])) {
                            if (!$fp = fopen ($conf["log_file"], "a")) {
                                die("Unable to open Logfile.");
                            }
                            switch ($priority) {
                                case: 0;
                                    $priority_txt = "DEBUG";
                                break;
                                case: 1;
                                    $priority_txt = "WARNING";
                                break;
                                case: 2;
                                    $priority_txt = "ERROR";
                                break;
                            }
                            if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) {
                                die("Unable to write to logfile.");
                            }
                            fclose($fp);
                        } else {
                            $this->error("Logfile ist nicht beschreibbar.");
                        }
                } // if
        } // func
        /*
         0 = DEBUG
         1 = WARNING
         2 = ERROR
        */
        function error($msg) {
            $this->log($msg,3);
            die();
        }
}
/*
 Initialize application (app) object
*/
$app = new app;
?>
server/lib/classes/db_mysql.inc.php
New file
@@ -0,0 +1,480 @@
<?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.
*/
    class db
    {
        var $dbHost = "";        // hostname of the MySQL server
        var $dbName = "";        // logical database name on that server
        var $dbUser = "";        // database authorized user
        var $dbPass = "";        // user's password
        var $linkId = 0;        // last result of mysql_connect()
        var $queryId = 0;        // last result of mysql_query()
        var $record    = array();    // last record fetched
        var $autoCommit = 1;    // Autocommit Transactions
        var $currentRow;        // current row number
        var $errorNumber = 0;    // last error number
        var $errorMessage = "";    // last error message
        var $errorLocation = "";// last error location
        var $show_error_messages = false;
        // constructor
        function db()
        {
            global $conf;
            $this->dbHost = $conf["db_host"];
            $this->dbName = $conf["db_database"];
            $this->dbUser = $conf["db_user"];
            $this->dbPass = $conf["db_password"];
            //$this->connect();
        }
        // error handler
        function updateError($location)
        {
            $this->errorNumber = mysql_errno();
            $this->errorMessage = mysql_error();
            $this->errorLocation = $location;
            if($this->errorNumber && $this->show_error_messages)
            {
                echo('<br /><b>'.$this->errorLocation.'</b><br />'.$this->errorMessage);
                flush();
            }
        }
        function connect()
        {
            if($this->linkId == 0)
            {
                $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
                if(!$this->linkId)
                {
                    $this->updateError('DB::connect()<br />mysql_connect');
                    return false;
                }
            }
            return true;
        }
        function query($queryString)
        {
            if(!$this->connect())
            {
                return false;
            }
            if(!mysql_select_db($this->dbName, $this->linkId))
            {
                $this->updateError('DB::connect()<br />mysql_select_db');
                return false;
            }
            $this->queryId = @mysql_query($queryString, $this->linkId);
            $this->updateError('DB::query('.$queryString.')<br />mysql_query');
            if(!$this->queryId)
            {
                return false;
            }
            $this->currentRow = 0;
            return $this->queryId;
        }
        // returns all records in an array
        function queryAllRecords($queryString)
        {
            if(!$this->query($queryString))
            {
                return false;
            }
            $ret = array();
            while($line = $this->nextRecord())
            {
                $ret[] = $line;
            }
            return $ret;
        }
        // returns one record in an array
        function queryOneRecord($queryString)
        {
            if(!$this->query($queryString) || $this->numRows() == 0)
            {
                return false;
            }
            return $this->nextRecord();
        }
        // returns the next record in an array
        function nextRecord()
        {
            $this->record = mysql_fetch_assoc($this->queryId);
            $this->updateError('DB::nextRecord()<br />mysql_fetch_array');
            if(!$this->record || !is_array($this->record))
            {
                return false;
            }
            $this->currentRow++;
            return $this->record;
        }
        // returns number of rows returned by the last select query
        function numRows()
        {
            return mysql_num_rows($this->queryId);
        }
        // returns mySQL insert id
        function insertID()
        {
            return mysql_insert_id($this->linkId);
        }
        // Check der variablen
        // deprecated, now use quote
        function check($formfield)
        {
            return $this->quote($formfield);
        }
        // Check der variablen
        function quote($formfield)
        {
            return addslashes($formfield);
        }
        // Check der variablen
        function unquote($formfield)
        {
            return stripslashes($formfield);
        }
        function toLower($record) {
            if(is_array($record)) {
                foreach($record as $key => $val) {
                    $key = strtolower($key);
                    $out[$key] = $val;
                }
            }
        return $out;
        }
       function insert($tablename,$form,$debug = 0)
       {
         if(is_array($form)){
           foreach($form as $key => $value)
               {
               $sql_key .= "$key, ";
            $sql_value .= "'".$this->check($value)."', ";
               }
           $sql_key = substr($sql_key,0,strlen($sql_key) - 2);
        $sql_value = substr($sql_value,0,strlen($sql_value) - 2);
           $sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")";
               if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
               $this->query($sql);
               if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
          }
       }
       function update($tablename,$form,$bedingung,$debug = 0)
       {
         if(is_array($form)){
           foreach($form as $key => $value)
               {
               $insql .= "$key = '".$this->check($value)."', ";
               }
                   $insql = substr($insql,0,strlen($insql) - 2);
                   $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung";
               if($debug == 1) echo "SQL-Statement: ".$sql."<br><br>";
               $this->query($sql);
               if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage;
           }
       }
       function closeConn() {
       }
       function freeResult() {
       }
       function delete() {
       }
       function Transaction($action) {
       //action = begin, commit oder rollback
       }
       /*
       $columns = array(action =>   add | alter | drop
                        name =>     Spaltenname
                        name_new => neuer Spaltenname, nur bei 'alter' belegt
                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
                        typeValue => Wert z.B. bei Varchar
                        defaultValue =>  Default Wert
                        notNull =>   true | false
                        autoInc =>   true | false
                        option =>   unique | primary | index)
       */
       function createTable($table_name,$columns) {
       $index = "";
       $sql = "CREATE TABLE $table_name (";
       foreach($columns as $col){
            $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
            if($col["notNull"] == true) {
                $sql .= "NOT NULL ";
            } else {
                $sql .= "NULL ";
            }
            if($col["autoInc"] == true) $sql .= "auto_increment ";
            $sql.= ",";
            // key Definitionen
            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
       }
       $sql .= $index;
       $sql = substr($sql,0,-1);
       $sql .= ")";
       $this->query($sql);
       return true;
       }
       /*
       $columns = array(action =>   add | alter | drop
                        name =>     Spaltenname
                        name_new => neuer Spaltenname, nur bei 'alter' belegt
                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
                        typeValue => Wert z.B. bei Varchar
                        defaultValue =>  Default Wert
                        notNull =>   true | false
                        autoInc =>   true | false
                        option =>   unique | primary | index)
       */
       function alterTable($table_name,$columns) {
       $index = "";
       $sql = "ALTER TABLE $table_name ";
       foreach($columns as $col){
            if($col["action"] == 'add') {
                $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
            } elseif ($col["action"] == 'alter') {
                $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." ";
            } elseif ($col["action"] == 'drop') {
                $sql .= "DROP ".$col["name"]." ";
            }
            if($col["action"] != 'drop') {
            if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' ";
            if($col["notNull"] == true) {
                $sql .= "NOT NULL ";
            } else {
                $sql .= "NULL ";
            }
            if($col["autoInc"] == true) $sql .= "auto_increment ";
            $sql.= ",";
            // key Definitionen
            if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),";
            if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),";
            if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),";
            }
       }
       $sql .= $index;
       $sql = substr($sql,0,-1);
       //die($sql);
       $this->query($sql);
       return true;
       }
       function dropTable($table_name) {
       $this->check($table_name);
       $sql = "DROP TABLE '". $table_name."'";
       return $this->query($sql);
       }
       // gibt Array mit Tabellennamen zurück
       function getTables($database_name = '') {
            if($database_name == '') $database_name = $this->dbName;
            $result = mysql_list_tables($database_name);
            for ($i = 0; $i < mysql_num_rows($result); $i++) {
                $tb_names[$i] = mysql_tablename($result, $i);
            }
            return $tb_names;
       }
       // gibt Feldinformationen zur Tabelle zurück
       /*
       $columns = array(action =>   add | alter | drop
                        name =>     Spaltenname
                        name_new => neuer Spaltenname, nur bei 'alter' belegt
                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
                        typeValue => Wert z.B. bei Varchar
                        defaultValue =>  Default Wert
                        notNull =>   true | false
                        autoInc =>   true | false
                        option =>   unique | primary | index)
       */
       function tableInfo($table_name) {
       global $go_api,$go_info;
       // Tabellenfelder einlesen
        if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){
        foreach($rows as $row) {
            $name = $row[0];
            $default = $row[4];
            $key = $row[3];
            $extra = $row[5];
            $isnull = $row[2];
            $type = $row[1];
            $column = array();
            $column["name"] = $name;
            //$column["type"] = $type;
            $column["defaultValue"] = $default;
            if(stristr($key,"PRI")) $column["option"] = "primary";
            if(stristr($isnull,"YES")) {
                $column["notNull"] = false;
            } else {
               $column["notNull"] = true;
            }
            if($extra == 'auto_increment') $column["autoInc"] = true;
            // Type in Metatype umsetzen
            if(stristr($type,"int(")) $metaType = 'int32';
            if(stristr($type,"bigint")) $metaType = 'int64';
            if(stristr($type,"char")) {
                $metaType = 'char';
                $tmp_typeValue = explode('(',$type);
                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);
            }
            if(stristr($type,"varchar")) {
                $metaType = 'varchar';
                $tmp_typeValue = explode('(',$type);
                $column["typeValue"] = substr($tmp_typeValue[1],0,-1);
            }
            if(stristr($type,"text")) $metaType = 'text';
            if(stristr($type,"double")) $metaType = 'double';
            if(stristr($type,"blob")) $metaType = 'blob';
            $column["type"] = $metaType;
        $columns[] = $column;
        }
            return $columns;
        } else {
            return false;
        }
        //$this->createTable('tester',$columns);
        /*
        $result = mysql_list_fields($go_info["server"]["db_name"],$table_name);
        $fields = mysql_num_fields ($result);
        $i = 0;
        $table = mysql_field_table ($result, $i);
        while ($i < $fields) {
            $name  = mysql_field_name  ($result, $i);
            $type  = mysql_field_type  ($result, $i);
            $len   = mysql_field_len   ($result, $i);
            $flags = mysql_field_flags ($result, $i);
            print_r($flags);
            $columns = array(name => $name,
                        type =>     "",
                        defaultValue =>  "",
                        isnull =>   1,
                        option =>   "");
            $returnvar[] = $columns;
            $i++;
        }
        */
       }
       function mapType($metaType,$typeValue) {
       global $go_api;
       $metaType = strtolower($metaType);
       switch ($metaType) {
       case 'int16':
            return 'smallint';
       break;
       case 'int32':
            return 'int';
       break;
       case 'int64':
            return 'bigint';
       break;
       case 'double':
            return 'double';
       break;
       case 'char':
            return 'char';
       break;
       case 'varchar':
            if($typeValue < 1) die("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig.");
            return 'varchar('.$typeValue.')';
       break;
       case 'text':
            return 'text';
       break;
       case 'blob':
            return 'blob';
       break;
       }
       }
    }
?>
server/lib/classes/ini_parser.inc.php
New file
@@ -0,0 +1,69 @@
<?php
/*
Copyright (c) 2006, 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 ini_parser {
    var $config;
    function parse_ini_string($ini) {
        $ini = str_replace("\r\n","\n",$ini);
        $lines = explode("\n",$ini);
        foreach($lines as $line) {
            if($line != '') {
                $line = trim($line);
                if(preg_match("/^\[([\w\d_]+)\]$/", $line, $matches)) {
                    $section = strtolower($matches[1]);
                } elseif(preg_match("/^([\w\d_]+)=(.*)$/", $line, $matches) && $section != null) {
                    $item = trim($matches[1]);
                    $this->config[$section][$item] = trim($matches[2]);
                }
            }
        }
        return $this->config;
    }
    function get_ini_string($file) {
        $content = '';
        foreach($this->config as $section => $data) {
            $content .= "[$section]\n";
            foreach($data as $item => $value) {
                if($value != '') $content .= "$item=$value\n";
            }
        }
        return $content;
    }
}
?>
server/lib/config.inc.php
New file
@@ -0,0 +1,69 @@
<?php
/*
Copyright (c) 2006, Till Brehm, Falko Timme, 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.
*/
$conf["server_id"]         = "1";
$conf["app_version"]     = "3.0.0";
//$conf["rootpath"]        = "F:\\server\\www\\ispconfig3\\server";
$conf["rootpath"]        = "D:\\www\\ispconfig3\\server";
//$conf["rootpath"]        = "/home/www/ispconfig3/web/cms";
$conf["fs_div"]            = "/"; // File system divider, \\ on windows and / on linux and unix
$conf["classpath"]        = $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes";
$conf["temppath"]        = $conf["rootpath"].$conf["fs_div"]."temp";
/*
        Logging
*/
$conf["log_file"]        = $conf["rootpath"].$conf["fs_div"]."ispconfig.log";
$conf["log_priority"]    = 0 // 0 = Debug, 1 = Warning, 2 = Error
/*
        Database Settings
*/
$conf["db_type"]        = 'mysql';
$conf["db_host"]        = 'localhost';
$conf["db_database"]    = 'ispconfig3';
$conf["db_user"]        = 'root';
$conf["db_password"]    = '';
/*
        Auto Load Modules
*/
$conf["start_db"]            = true;
$conf["load_server_config"]    = true;
?>
server/server.php
New file
@@ -0,0 +1,97 @@
<?php
/*
Copyright (c) 2006, 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("lib/config.inc.php");
require("lib/app.inc.php");
set_time_limit(0);
// make sure server_id is always an int
$conf["server_id"] = intval($conf["server_id"]);
// Get server record, if updates where available for this server
$server_db_record = $app->db->queryOneRecord("SELECT * FROM server WHERE update = 1 AND server_id = ".$conf["server_id"])
if($server_db_record == false) {
    $app->log("Nothing to update for server_id ".$conf["server_id"]);
    die();
} else {
    // Set update status to 0, so we dont start the update process twice
    $app->db->query("UPDATE server SET update = 0 WHERE server_id = ".$conf["server_id"]);
    $app->log("Begin update.");
}
// Check if another process is running
if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){
  clearstatcache();
  for($i=0;$i<120;$i++){ // Wait max. 120 sec, then proceed
    if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){
      sleep(1);
      clearstatcache();
    }
  }
}
// Set Lockfile
@touch($conf["temppath"].$conf["fs_div"].".ispconfig_lock");
$app->log("Set Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock");
// Get server configuration
$this->uses('ini_parser');
$conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"]));
// Run the configuration modules
if($server_db_record["mail_server"] == 1) {
    $app->uses('mod_mail_'.$conf["serverconfig"]["mail"]["module"]);
}
if($server_db_record["web_server"] == 1) {
    $app->uses('mod_web_'.$conf["serverconfig"]["web"]["module"]);
}
if($server_db_record["dns_server"] == 1) {
    $app->uses('mod_dns_'.$conf["serverconfig"]["dns"]["module"]);
}
if($server_db_record["file_server"] == 1) {
    $app->uses('mod_file_'.$conf["serverconfig"]["file"]["module"]);
}
if($server_db_record["db_server"] == 1) {
    $app->uses('mod_db_'.$conf["serverconfig"]["db"]["module"]);
}
if($server_db_record["vserver_server"] == 1) {
    $app->uses('mod_vserver_'.$conf["serverconfig"]["vserver"]["module"]);
}
// Remove lock
@unlink($conf["temppath"].$conf["fs_div"].".ispconfig_lock");
$app->log("Remove Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock");
?>