[feladat @ 20]
authorrejo
Sun, 22 Apr 2007 07:20:09 +0000
changeset 8 47dd15d8bb8c
parent 7 ac0ca51809b1
child 9 d55459cd1712
[feladat @ 20] - Merged branches/1.3.0 changes r12:19 into the trunk.
delete_user.php
docs/CHANGELOG
docs/ChangeLog
docs/Changelog.pre-1.3.0
docs/README
docs/README-Sequence
docs/README.redhat-8
docs/README.sequence
docs/REDHAT-README
docs/template.pot
inc/config-me.inc.php
inc/config.inc.php
inc/dal.inc.php
inc/database.inc.php
inc/dns.inc.php
inc/i18n.inc.php
inc/record.inc.php
inc/users.inc.php
index.php
install.php
install.php.orig
locale/en_EN/LC_MESSAGES/en.po
locale/en_EN/LC_MESSAGES/message.mo
locale/nl_NL/LC_MESSAGES/message.mo
locale/nl_NL/LC_MESSAGES/nl.po
migrator.php-pa
search.php
seq_update.php
users.php
--- a/delete_user.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/delete_user.php	Sun Apr 22 07:20:09 2007 +0000
@@ -91,7 +91,7 @@
         }
         
         $message = _('You are going to delete this user, are you sure?');
-        if(($numrows = $db->getOne("select count(id) from zones where owner=$id")) != 0)
+        if(($numrows = $db->queryOne("select count(id) from zones where owner=$id")) != 0)
         {
         	$message .= " " . _('This user has access to ') . $numrows . _('domain(s), by deleting him you will also delete these domains');
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/CHANGELOG	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,29 @@
+CHANGES between 1.3.0 and 1.2.7-patched
+-----------------------------------------------------------------------
+
+- Updated the "database abstraction layer" from an outdated version of
+  the unmaintained PEAR::DB module to the most recent version of
+  PEAR::MDB2 (which is currently 2.4.0). Please read the README file
+  for important information about upgrading from 1.2.7-patched. It
+  will not break anything if you don't, but it won't work either. :)
+
+- Added multi-language support, using php's gettext functionality. A 
+  first Dutch translation has been added, along with English. See for
+  more details docs/README.i18n.
+
+- Removed the so-called "sequence updater". The code has been changed
+  to use the auto increment functionalitiy in both mysql ang pgsql. It 
+  is only tested on these backends, other backends are untested and
+  may be unsupported. See docs/README.sequence for more details on
+  inserting records and zones into the powerdns database when using
+  other tools than poweradmin as well.
+
+- Fixed a bug in search.php. When searching for a string it would
+  return matching records, not the matching domains.
+
+- Started cleanup code and files. For example, remove code and files
+  related to "migration from a stone-age version of poweradmin",
+  removal of the file called "BAKrecords.php", removal of code
+  comments of already implemented todo's, etc.
+
+
--- a/docs/ChangeLog	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,687 +0,0 @@
-2003-05-15 00:49  azurazu
-
-	* inc/footer.inc.php: Changed the version id + did some HTML code
-	layouting.. a bit just
-
-2003-05-15 00:48  azurazu
-
-	* edit_record.php: Really stupid bug.. we also have to be able to
-	modify records...
-
-2003-05-10 22:21  azurazu
-
-	* inc/record.inc.php: Fixed a bug in the delete_record which didnt
-	make it update the SOA serial thanks to Dolphin for reporting
-
-2003-05-10 22:20  azurazu
-
-	* index.php: Fixed a minimum pass length when a user changes his
-	pass. Min length is chosen to be 4
-
-2003-05-10 22:10  azurazu
-
-	* edit.php, edit_record.php: Fixed the bugs as sent in by Mario
-	Peschel, thanks a lot
-
-2003-05-04 23:38  azurazu
-
-	* inc/: record.inc.php, error.inc.php: Bug fixes
-
-2003-03-03 23:14  azurazu
-
-	* inc/record.inc.php: Search modifications to allow wild searches
-
-2003-02-25 02:46  azurazu
-
-	* docs/README: Cyberkid is our documentation god! Thanks for making
-	it all perfect! We love you :)
-
-2003-02-24 17:10  azurazu
-
-	* inc/config-block.inc.php: Small changes to increase the
-	understandability
-
-2003-02-24 17:08  azurazu
-
-	* docs/README: Updated for 1.2.4
-
-2003-02-24 17:08  azurazu
-
-	* docs/TODO: Minor changes
-
-2003-02-24 02:46  azurazu
-
-	* inc/toolkit.inc.php: If I say I fixed I should fix it, doh. 4 ->
-	6 was left out. Broken
-
-2003-02-24 00:32  azurazu
-
-	* inc/record.inc.php: SOA Fixed
-
-2003-02-23 22:32  azurazu
-
-	* edit.php: Removed the add or remove users gimmics for level1
-	users
-
-2003-02-23 22:31  azurazu
-
-	* inc/dns.inc.php: MX Fixme
-
-2003-02-23 22:30  azurazu
-
-	* inc/record.inc.php: SOA fix
-
-2003-02-23 22:29  azurazu
-
-	* inc/toolkit.inc.php: Email check had an error.. long live .museum
-	tld's
-
-2003-02-14 23:58  azurazu
-
-	* seq_update.php: hit me please.
-
-2003-02-14 23:11  azurazu
-
-	* seq_update.php: fixed the _seq table problem
-
-2003-02-14 23:01  azurazu
-
-	* inc/dns.inc.php: dmnd noticed some bugs with SOA, thanks a lot :)
-
-2003-02-06 00:23  azurazu
-
-	* inc/header.inc.php: removed some blank lines
-
-2003-02-06 00:22  azurazu
-
-	* users.php: removed header error after adding users
-
-2003-02-05 23:24  azurazu
-
-	* inc/dns.inc.php: Allowed '-' in urls useful for cgi-bin or so:)
-
-2003-02-05 23:22  azurazu
-
-	* index.php: operator && should be || on line 67..
-
-2003-02-05 16:25  azurazu
-
-	* add_record.php: Dynamically updating of TTL or DEFAULT_TTL was
-	borked
-
-2003-01-13 23:08  azurazu
-
-	* inc/auth.inc.php: DOS Format..
-
-2003-01-13 00:03  azurazu
-
-	* users.php: Cosmetics, moved the active to the middle
-
-2003-01-12 23:43  azurazu
-
-	* edit.php, index.php: Added the MASTER/SLAVE information and
-	cleaned up code
-
-2003-01-12 23:42  azurazu
-
-	* inc/config-block.inc.php: New toggle
-
-2003-01-12 23:39  azurazu
-
-	* inc/record.inc.php: A lot of changes, it might really screw up :/
-
-2003-01-12 21:20  azurazu
-
-	* style/style.css.php: New style added to override the table
-
-2003-01-10 00:26  azurazu
-
-	* index.php, seq_update.php, users.php: Added navigation and
-	navigation checks, also changed layout here and there a tiny bit
-
-2003-01-10 00:25  azurazu
-
-	* inc/footer.inc.php: New version, new footer :)
-
-2003-01-10 00:24  azurazu
-
-	* inc/record.inc.php: Added search_record function to support the
-	search of records or domains
-
-2003-01-10 00:23  azurazu
-
-	* search.php: search.php, to allow you too search through your
-	files, thanks to DeViCeD
-
-2003-01-09 17:23  azurazu
-
-	* docs/ChangeLog: Changes, as usual :)
-
-2003-01-09 17:15  azurazu
-
-	* edit.php: Fixed two stupid bugs in edit.php, you couldnt add
-	users
-
-2003-01-08 01:40  azurazu
-
-	* test_setup.php: Kicked out the nice binary stuff, ah well.. hehe
-	and changed ti to a variable array, just as handy I would say, also
-	removed the _seq table checks which arent needed if this is ran the
-	first time or alike, thanks to our bug reporters
-
-2003-01-08 00:46  azurazu
-
-	* migrator.php-pa: Heavily modified, build in check so that if your
-	domains tablei s filled already it will nicely work etc.
-
-2003-01-08 00:41  lyon
-
-	* inc/: footer.inc.php, toolkit.inc.php: added a check for
-	install.php and migrator .php. error if the exist( security) added
-	a little "$db is actually an object" check in the footer
-
-2003-01-08 00:29  lyon
-
-	* install.php: added a config check
-
-2003-01-08 00:20  lyon
-
-	* install.php: Did some addslashes/stripslashes magic.	made the
-	warning to delete the install.php a bit clearer.  Fixed the error
-	function (first commit by me, w00t)
-
-2003-01-02 00:13  azurazu
-
-	* inc/footer.inc.php: New version
-
-2003-01-01 23:39  azurazu
-
-	* docs/TODO: removed some issues
-
-2003-01-01 23:36  azurazu
-
-	* edit.php, edit_record.php, index.php, inc/header.inc.php: Made
-	w3c happier :)
-
-2003-01-01 23:34  azurazu
-
-	* users.php: Added some features on the TODO (Name validation etc.)
-
-2003-01-01 23:33  azurazu
-
-	* delete_user.php, inc/users.inc.php: Fixed the deletion of users
-	and cleaned up the source
-
-2002-12-31 18:35  azurazu
-
-	* users.php: Added that password, fullname, email and username MUST
-	BE filled in
-
-2002-12-31 04:23  azurazu
-
-	* install.php: New installer
-
-2002-12-31 04:13  azurazu
-
-	* inc/toolkit.inc.php: Small bug in xs, thanks neetmans
-
-2002-12-31 02:17  azurazu
-
-	* docs/: CHANGELOG, ChangeLog: Updated the ChangeLog
-
-2002-12-31 01:59  azurazu
-
-	* migrator.php-pa: Added the migrator tool
-
-2002-12-31 01:56  azurazu
-
-	* index.php: Build in security check to see if a database is
-	converted or not
-
-2002-12-31 01:55  azurazu
-
-	* seq_update.php: Removed a newbie string
-
-2002-12-31 01:53  azurazu
-
-	* docs/README-Sequence: Sequence updater documentation
-
-2002-12-31 01:53  azurazu
-
-	* docs/README: Changes for 1.2
-
-2002-12-31 01:47  azurazu
-
-	* migrator.php-pa: migration tool
-
-2002-12-30 20:06  azurazu
-
-	* install.php: Changed it for the new version
-
-2002-12-27 03:48  azurazu
-
-	* delete_user.php: Function rename
-
-2002-12-27 03:48  azurazu
-
-	* edit.php: Fixed it so you can assign owners to a domain and also
-	delete them
-
-2002-12-27 03:47  azurazu
-
-	* seq_update.php: Removed an echo, sloppy
-
-2002-12-27 03:45  azurazu
-
-	* inc/auth.inc.php: Added some functions to make error reporting
-	happier
-
-2002-12-27 03:45  azurazu
-
-	* inc/database.inc.php: Some formatting probs
-
-2002-12-27 03:41  azurazu
-
-	* inc/footer.inc.php: This will be version 1.2 not 1.1.3
-
-2002-12-27 03:40  azurazu
-
-	* inc/record.inc.php: added delete_owner and changed change_owner
-	to add_owner to support multi ownage features and domains table
-
-2002-12-27 03:16  azurazu
-
-	* inc/toolkit.inc.php: Error handling in xs removed
-
-2002-12-24 21:33  azurazu
-
-	* edit.php, users.php: Inserted domains table
-
-2002-12-24 20:46  azurazu
-
-	* inc/: db.inc.php, record.inc.php: File is totally deprecated
-
-2002-12-21 01:50  azurazu
-
-	* seq_update.php: It was one big bug! How the heck could this
-	happen
-
-2002-12-20 20:17  azurazu
-
-	* inc/auth.inc.php: Dirty QUERY_STRING bug
-
-2002-12-18 02:13  azurazu
-
-	* delete_domain.php: Quickly added a ERROR define
-
-2002-12-18 02:09  azurazu
-
-	* index.php, seq_update.php: Added sequene number updater. Fixed
-	your database in case you do manual inserts
-
-2002-12-18 02:08  azurazu
-
-	* test_setup.php: Build a better test_setup
-
-2002-12-18 01:37  azurazu
-
-	* style/style.css.php: Added two style definitions: message and
-	messagetable
-
-2002-12-18 01:36  azurazu
-
-	* inc/toolkit.inc.php: Added message function
-
-2002-12-17 16:20  sjeemz
-
-	* inc/footer.inc.php: Changed our website (again)
-
-2002-12-17 16:17  sjeemz
-
-	* inc/footer.inc.php: Changed our website
-
-2002-12-17 16:16  azurazu
-
-	* docs/README: Added a story about PEAR
-
-2002-12-17 00:16  azurazu
-
-	* inc/footer.inc.php: CVS version
-
-2002-12-17 00:01  azurazu
-
-	* inc/dns.inc.php: MAJOR, really MAJOR regexp changes
-
-2002-12-16 01:42  azurazu
-
-	* inc/toolkit.inc.php: Added footer to error
-
-2002-12-16 01:38  azurazu
-
-	* docs/ChangeLog: GNU Style ChangeLog
-
-2002-12-16 01:26  azurazu
-
-	* edit_record.php: Fixed TTL bug
-
-2002-12-16 01:20  azurazu
-
-	* inc/toolkit.inc.php: Fixed a cough small cough is_valid_email
-	return bug
-
-2002-12-16 01:09  azurazu
-
-	* inc/dns.inc.php: Geez dumb bug, left a var_dump
-
-2002-12-16 00:43  azurazu
-
-	* install.php: Small bug, thanks l0ngb0ng
-
-2002-12-14 17:32  azurazu
-
-	* inc/dns.inc.php: Typo..
-
-2002-12-14 17:26  azurazu
-
-	* inc/dns.inc.php: Added wildcard records functionality, thanks
-	oscar
-
-2002-12-14 02:27  azurazu
-
-	* docs/REDHAT-README: Dirty Fix + BUG Description for RedHat 8.0
-
-2002-12-14 02:26  azurazu
-
-	* inc/dns.inc.php: is_valid_mx was borking with prio modifications,
-	thanks to oscar
-
-2002-12-14 01:52  azurazu
-
-	* install.php: RedHat BUG
-
-2002-12-14 01:07  azurazu
-
-	* install.php: Newline error?
-
-2002-12-10 02:30  azurazu
-
-	* style/style.css.php: Headers etc
-
-2002-12-10 02:28  azurazu
-
-	* test_setup.php: Changed it for PEAR, headers added aswell
-
-2002-12-10 02:27  azurazu
-
-	* users.php, add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, install.php: And made an error, DOH
-
-2002-12-10 02:26  azurazu
-
-	* add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, install.php, users.php: And added ID
-
-2002-12-10 02:24  azurazu
-
-	* add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, install.php: Added license and headers
-
-2002-12-10 01:55  azurazu
-
-	* inc/: auth.inc.php, database.inc.php, dns.inc.php, error.inc.php,
-	footer.inc.php, header.inc.php, record.inc.php, toolkit.inc.php,
-	users.inc.php: Added license information and headers
-
-2002-12-10 01:45  azurazu
-
-	* inc/auth.inc.php: Added fancy header (test:P)
-
-2002-12-10 01:31  azurazu
-
-	* inc/error.inc.php: Added errors
-
-2002-12-10 01:31  azurazu
-
-	* inc/dns.inc.php: Changed is_valid_hostname and is_valid_soa
-
-2002-12-09 23:52  azurazu
-
-	* inc/dns.inc.php: DNS Function enhancements (return values)
-
-2002-12-09 23:51  azurazu
-
-	* inc/error.inc.php: Added errors
-
-2002-12-09 22:19  azurazu
-
-	* inc/users.inc.php: Typo
-
-2002-12-04 02:51  azurazu
-
-	* install.php: Modifications all over... the script was weak in
-	general. Added some sort of support for pgsql but its not
-	implemented, just queries are there
-
-2002-12-03 23:12  azurazu
-
-	* docs/TODO: Changed the layout and added a few things
-
-2002-12-03 23:11  azurazu
-
-	* inc/users.inc.php: Removed is_valid_email and changed
-	implementation
-
-2002-12-03 23:11  azurazu
-
-	* inc/dns.inc.php: changed the function order and added some
-	comments
-
-2002-12-03 23:10  azurazu
-
-	* inc/toolkit.inc.php: moved is_valid_email to toolkit
-
-2002-12-03 01:04  azurazu
-
-	* inc/dns.inc.php: Finalized a big part of the checking.
-
-2002-12-03 01:03  azurazu
-
-	* inc/users.inc.php: Build is_valid_email functionality
-
-2002-12-02 22:05  azurazu
-
-	* inc/config-block.inc.php: Added fancy records toggle
-
-2002-12-02 21:41  azurazu
-
-	* docs/TODO: Changes
-
-2002-11-30 02:16  azurazu
-
-	* inc/toolkit.inc.php: Another newline bug.. bah
-
-2002-11-30 00:11  azurazu
-
-	* inc/dns.inc.php: Newline problems and NS validation added
-
-2002-11-29 23:32  azurazu
-
-	* inc/dns.inc.php: Splitted up and worked stuff out not bug free
-	yet I think
-
-2002-11-29 23:18  azurazu
-
-	* inc/record.inc.php: Bug Fix
-
-2002-11-26 01:09  azurazu
-
-	* users.php: Added ERR_LEVEL_10
-
-2002-11-26 01:05  azurazu
-
-	* inc/dns.inc.php: Removed a bug
-
-2002-11-26 01:05  azurazu
-
-	* inc/footer.inc.php: Added URL
-
-2002-11-26 01:04  azurazu
-
-	* inc/record.inc.php: Removed two bugs
-
-2002-11-26 01:02  azurazu
-
-	* inc/config-block.inc.php: Added 3 fields and removed deprecated
-	stuff
-
-2002-11-25 22:01  azurazu
-
-	* delete_user.php, edit_user.php: Changed the name of
-	get_name_from_userid to get_fullname_from_userid
-
-2002-11-25 22:00  azurazu
-
-	* inc/error.inc.php: Fixed a DUMB error in error.. d'oh and added
-	some more
-
-2002-11-25 21:59  azurazu
-
-	* inc/users.inc.php: Implemented comments and error handling in
-	users.inc.php
-
-2002-11-25 21:11  azurazu
-
-	* inc/: error.inc.php, toolkit.inc.php: Added error define
-	functionality
-
-2002-11-25 21:09  azurazu
-
-	* inc/record.inc.php: Added documentation for each function and
-	changed the error processing to a file called error.inc.php
-
-2002-11-25 19:16  azurazu
-
-	* docs/TODO: [no log message]
-
-2002-11-25 18:35  azurazu
-
-	* inc/dns.inc.php: Allow the notation of
-	12.8/123.123.123.123.in-addr.arpa in the validators. Thanks to mijo
-	for reporting this bug
-
-2002-11-25 18:30  azurazu
-
-	* inc/: record.inc.php, users.inc.php: Major modifications and bug
-	fixes. Also added comments
-
-2002-11-21 23:40  azurazu
-
-	* inc/record.inc.php: Removed some comment crap
-
-2002-11-21 23:39  azurazu
-
-	* inc/dns.inc.php: Fixed some prio bugs
-
-2002-11-21 23:26  azurazu
-
-	* inc/: dns.inc.php, record.inc.php: Build in basic record
-	validation, not totally done yet. Moved the validation function to
-	dns.inc.php
-
-2002-11-05 00:57  azurazu
-
-	* inc/record.inc.php: I dont get the errors (one e ok) but the rest
-	is just stupid Windows probly :/
-
-2002-11-05 00:38  azurazu
-
-	* delete_user.php, index.php: Small bug fixes and enhancements
-
-2002-11-05 00:35  azurazu
-
-	* inc/record.inc.php: Heavy modifications and _STUPID_ bugfixes,
-	really checkout the CVS
-
-2002-11-03 16:07  azurazu
-
-	* inc/dns.inc.php: Fixed a nasty bug in is_valid_hostname
-
-2002-10-30 01:04  azurazu
-
-	* inc/: dns.inc.php, record.inc.php: A lot of changes for
-	validation. Has to be split up still but testing purposes first.
-	Not done yet
-
-2002-10-28 13:45  sjeemz
-
-	* docs/TODO: modified TODO file
-
-2002-10-28 02:57  azurazu
-
-	* inc/record.inc.php: Fixed several small bugs
-
-2002-10-28 02:56  azurazu
-
-	* inc/dns.inc.php: Fixed even better ipv4 check (oneliner) and
-	added function validate_record
-
-2002-10-27 23:00  azurazu
-
-	* docs/TODO: Removed database changes - see changelog
-
-2002-10-27 20:22  azurazu
-
-	* add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, users.php: Changing because of db.inc.php to
-	toolkit.inc.php
-
-2002-10-27 20:20  azurazu
-
-	* inc/footer.inc.php: Changed closing database system
-
-2002-10-27 20:19  azurazu
-
-	* inc/: auth.inc.php, dns.inc.php, record.inc.php, toolkit.inc.php,
-	users.inc.php: Clean up of db.inc.php
-
-2002-10-27 20:18  azurazu
-
-	* inc/: dal.inc.php, database.inc.php: Database Abstraction Layer
-	and implementation
-
-2002-10-27 20:17  azurazu
-
-	* inc/config-block.inc.php: Changed mysql fields to db fields
-
-2002-10-27 20:12  azurazu
-
-	* docs/CHANGELOG: Changed a few things
-
-2002-10-26 23:38  azurazu
-
-	* docs/TODO: Added 2 remarks
-
-2002-10-25 22:20  azurazu
-
-	* add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, install.php, test_setup.php, users.php, docs/CHANGELOG,
-	docs/README, docs/TODO, images/background.jpg, images/delete.gif,
-	images/edit.gif, inc/config-block.inc.php, inc/db.inc.php,
-	inc/footer.inc.php, inc/header.inc.php, style/style.css.php:
-	PowerAdmin initial source code submit
-
-2002-10-25 22:20  azurazu
-
-	* add_record.php, delete_domain.php, delete_record.php,
-	delete_user.php, edit.php, edit_record.php, edit_user.php,
-	index.php, install.php, test_setup.php, users.php, docs/CHANGELOG,
-	docs/README, docs/TODO, images/background.jpg, images/delete.gif,
-	images/edit.gif, inc/config-block.inc.php, inc/db.inc.php,
-	inc/footer.inc.php, inc/header.inc.php, style/style.css.php:
-	Initial revision
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/Changelog.pre-1.3.0	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,687 @@
+2003-05-15 00:49  azurazu
+
+	* inc/footer.inc.php: Changed the version id + did some HTML code
+	layouting.. a bit just
+
+2003-05-15 00:48  azurazu
+
+	* edit_record.php: Really stupid bug.. we also have to be able to
+	modify records...
+
+2003-05-10 22:21  azurazu
+
+	* inc/record.inc.php: Fixed a bug in the delete_record which didnt
+	make it update the SOA serial thanks to Dolphin for reporting
+
+2003-05-10 22:20  azurazu
+
+	* index.php: Fixed a minimum pass length when a user changes his
+	pass. Min length is chosen to be 4
+
+2003-05-10 22:10  azurazu
+
+	* edit.php, edit_record.php: Fixed the bugs as sent in by Mario
+	Peschel, thanks a lot
+
+2003-05-04 23:38  azurazu
+
+	* inc/: record.inc.php, error.inc.php: Bug fixes
+
+2003-03-03 23:14  azurazu
+
+	* inc/record.inc.php: Search modifications to allow wild searches
+
+2003-02-25 02:46  azurazu
+
+	* docs/README: Cyberkid is our documentation god! Thanks for making
+	it all perfect! We love you :)
+
+2003-02-24 17:10  azurazu
+
+	* inc/config-block.inc.php: Small changes to increase the
+	understandability
+
+2003-02-24 17:08  azurazu
+
+	* docs/README: Updated for 1.2.4
+
+2003-02-24 17:08  azurazu
+
+	* docs/TODO: Minor changes
+
+2003-02-24 02:46  azurazu
+
+	* inc/toolkit.inc.php: If I say I fixed I should fix it, doh. 4 ->
+	6 was left out. Broken
+
+2003-02-24 00:32  azurazu
+
+	* inc/record.inc.php: SOA Fixed
+
+2003-02-23 22:32  azurazu
+
+	* edit.php: Removed the add or remove users gimmics for level1
+	users
+
+2003-02-23 22:31  azurazu
+
+	* inc/dns.inc.php: MX Fixme
+
+2003-02-23 22:30  azurazu
+
+	* inc/record.inc.php: SOA fix
+
+2003-02-23 22:29  azurazu
+
+	* inc/toolkit.inc.php: Email check had an error.. long live .museum
+	tld's
+
+2003-02-14 23:58  azurazu
+
+	* seq_update.php: hit me please.
+
+2003-02-14 23:11  azurazu
+
+	* seq_update.php: fixed the _seq table problem
+
+2003-02-14 23:01  azurazu
+
+	* inc/dns.inc.php: dmnd noticed some bugs with SOA, thanks a lot :)
+
+2003-02-06 00:23  azurazu
+
+	* inc/header.inc.php: removed some blank lines
+
+2003-02-06 00:22  azurazu
+
+	* users.php: removed header error after adding users
+
+2003-02-05 23:24  azurazu
+
+	* inc/dns.inc.php: Allowed '-' in urls useful for cgi-bin or so:)
+
+2003-02-05 23:22  azurazu
+
+	* index.php: operator && should be || on line 67..
+
+2003-02-05 16:25  azurazu
+
+	* add_record.php: Dynamically updating of TTL or DEFAULT_TTL was
+	borked
+
+2003-01-13 23:08  azurazu
+
+	* inc/auth.inc.php: DOS Format..
+
+2003-01-13 00:03  azurazu
+
+	* users.php: Cosmetics, moved the active to the middle
+
+2003-01-12 23:43  azurazu
+
+	* edit.php, index.php: Added the MASTER/SLAVE information and
+	cleaned up code
+
+2003-01-12 23:42  azurazu
+
+	* inc/config-block.inc.php: New toggle
+
+2003-01-12 23:39  azurazu
+
+	* inc/record.inc.php: A lot of changes, it might really screw up :/
+
+2003-01-12 21:20  azurazu
+
+	* style/style.css.php: New style added to override the table
+
+2003-01-10 00:26  azurazu
+
+	* index.php, seq_update.php, users.php: Added navigation and
+	navigation checks, also changed layout here and there a tiny bit
+
+2003-01-10 00:25  azurazu
+
+	* inc/footer.inc.php: New version, new footer :)
+
+2003-01-10 00:24  azurazu
+
+	* inc/record.inc.php: Added search_record function to support the
+	search of records or domains
+
+2003-01-10 00:23  azurazu
+
+	* search.php: search.php, to allow you too search through your
+	files, thanks to DeViCeD
+
+2003-01-09 17:23  azurazu
+
+	* docs/ChangeLog: Changes, as usual :)
+
+2003-01-09 17:15  azurazu
+
+	* edit.php: Fixed two stupid bugs in edit.php, you couldnt add
+	users
+
+2003-01-08 01:40  azurazu
+
+	* test_setup.php: Kicked out the nice binary stuff, ah well.. hehe
+	and changed ti to a variable array, just as handy I would say, also
+	removed the _seq table checks which arent needed if this is ran the
+	first time or alike, thanks to our bug reporters
+
+2003-01-08 00:46  azurazu
+
+	* migrator.php-pa: Heavily modified, build in check so that if your
+	domains tablei s filled already it will nicely work etc.
+
+2003-01-08 00:41  lyon
+
+	* inc/: footer.inc.php, toolkit.inc.php: added a check for
+	install.php and migrator .php. error if the exist( security) added
+	a little "$db is actually an object" check in the footer
+
+2003-01-08 00:29  lyon
+
+	* install.php: added a config check
+
+2003-01-08 00:20  lyon
+
+	* install.php: Did some addslashes/stripslashes magic.	made the
+	warning to delete the install.php a bit clearer.  Fixed the error
+	function (first commit by me, w00t)
+
+2003-01-02 00:13  azurazu
+
+	* inc/footer.inc.php: New version
+
+2003-01-01 23:39  azurazu
+
+	* docs/TODO: removed some issues
+
+2003-01-01 23:36  azurazu
+
+	* edit.php, edit_record.php, index.php, inc/header.inc.php: Made
+	w3c happier :)
+
+2003-01-01 23:34  azurazu
+
+	* users.php: Added some features on the TODO (Name validation etc.)
+
+2003-01-01 23:33  azurazu
+
+	* delete_user.php, inc/users.inc.php: Fixed the deletion of users
+	and cleaned up the source
+
+2002-12-31 18:35  azurazu
+
+	* users.php: Added that password, fullname, email and username MUST
+	BE filled in
+
+2002-12-31 04:23  azurazu
+
+	* install.php: New installer
+
+2002-12-31 04:13  azurazu
+
+	* inc/toolkit.inc.php: Small bug in xs, thanks neetmans
+
+2002-12-31 02:17  azurazu
+
+	* docs/: CHANGELOG, ChangeLog: Updated the ChangeLog
+
+2002-12-31 01:59  azurazu
+
+	* migrator.php-pa: Added the migrator tool
+
+2002-12-31 01:56  azurazu
+
+	* index.php: Build in security check to see if a database is
+	converted or not
+
+2002-12-31 01:55  azurazu
+
+	* seq_update.php: Removed a newbie string
+
+2002-12-31 01:53  azurazu
+
+	* docs/README-Sequence: Sequence updater documentation
+
+2002-12-31 01:53  azurazu
+
+	* docs/README: Changes for 1.2
+
+2002-12-31 01:47  azurazu
+
+	* migrator.php-pa: migration tool
+
+2002-12-30 20:06  azurazu
+
+	* install.php: Changed it for the new version
+
+2002-12-27 03:48  azurazu
+
+	* delete_user.php: Function rename
+
+2002-12-27 03:48  azurazu
+
+	* edit.php: Fixed it so you can assign owners to a domain and also
+	delete them
+
+2002-12-27 03:47  azurazu
+
+	* seq_update.php: Removed an echo, sloppy
+
+2002-12-27 03:45  azurazu
+
+	* inc/auth.inc.php: Added some functions to make error reporting
+	happier
+
+2002-12-27 03:45  azurazu
+
+	* inc/database.inc.php: Some formatting probs
+
+2002-12-27 03:41  azurazu
+
+	* inc/footer.inc.php: This will be version 1.2 not 1.1.3
+
+2002-12-27 03:40  azurazu
+
+	* inc/record.inc.php: added delete_owner and changed change_owner
+	to add_owner to support multi ownage features and domains table
+
+2002-12-27 03:16  azurazu
+
+	* inc/toolkit.inc.php: Error handling in xs removed
+
+2002-12-24 21:33  azurazu
+
+	* edit.php, users.php: Inserted domains table
+
+2002-12-24 20:46  azurazu
+
+	* inc/: db.inc.php, record.inc.php: File is totally deprecated
+
+2002-12-21 01:50  azurazu
+
+	* seq_update.php: It was one big bug! How the heck could this
+	happen
+
+2002-12-20 20:17  azurazu
+
+	* inc/auth.inc.php: Dirty QUERY_STRING bug
+
+2002-12-18 02:13  azurazu
+
+	* delete_domain.php: Quickly added a ERROR define
+
+2002-12-18 02:09  azurazu
+
+	* index.php, seq_update.php: Added sequene number updater. Fixed
+	your database in case you do manual inserts
+
+2002-12-18 02:08  azurazu
+
+	* test_setup.php: Build a better test_setup
+
+2002-12-18 01:37  azurazu
+
+	* style/style.css.php: Added two style definitions: message and
+	messagetable
+
+2002-12-18 01:36  azurazu
+
+	* inc/toolkit.inc.php: Added message function
+
+2002-12-17 16:20  sjeemz
+
+	* inc/footer.inc.php: Changed our website (again)
+
+2002-12-17 16:17  sjeemz
+
+	* inc/footer.inc.php: Changed our website
+
+2002-12-17 16:16  azurazu
+
+	* docs/README: Added a story about PEAR
+
+2002-12-17 00:16  azurazu
+
+	* inc/footer.inc.php: CVS version
+
+2002-12-17 00:01  azurazu
+
+	* inc/dns.inc.php: MAJOR, really MAJOR regexp changes
+
+2002-12-16 01:42  azurazu
+
+	* inc/toolkit.inc.php: Added footer to error
+
+2002-12-16 01:38  azurazu
+
+	* docs/ChangeLog: GNU Style ChangeLog
+
+2002-12-16 01:26  azurazu
+
+	* edit_record.php: Fixed TTL bug
+
+2002-12-16 01:20  azurazu
+
+	* inc/toolkit.inc.php: Fixed a cough small cough is_valid_email
+	return bug
+
+2002-12-16 01:09  azurazu
+
+	* inc/dns.inc.php: Geez dumb bug, left a var_dump
+
+2002-12-16 00:43  azurazu
+
+	* install.php: Small bug, thanks l0ngb0ng
+
+2002-12-14 17:32  azurazu
+
+	* inc/dns.inc.php: Typo..
+
+2002-12-14 17:26  azurazu
+
+	* inc/dns.inc.php: Added wildcard records functionality, thanks
+	oscar
+
+2002-12-14 02:27  azurazu
+
+	* docs/REDHAT-README: Dirty Fix + BUG Description for RedHat 8.0
+
+2002-12-14 02:26  azurazu
+
+	* inc/dns.inc.php: is_valid_mx was borking with prio modifications,
+	thanks to oscar
+
+2002-12-14 01:52  azurazu
+
+	* install.php: RedHat BUG
+
+2002-12-14 01:07  azurazu
+
+	* install.php: Newline error?
+
+2002-12-10 02:30  azurazu
+
+	* style/style.css.php: Headers etc
+
+2002-12-10 02:28  azurazu
+
+	* test_setup.php: Changed it for PEAR, headers added aswell
+
+2002-12-10 02:27  azurazu
+
+	* users.php, add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, install.php: And made an error, DOH
+
+2002-12-10 02:26  azurazu
+
+	* add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, install.php, users.php: And added ID
+
+2002-12-10 02:24  azurazu
+
+	* add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, install.php: Added license and headers
+
+2002-12-10 01:55  azurazu
+
+	* inc/: auth.inc.php, database.inc.php, dns.inc.php, error.inc.php,
+	footer.inc.php, header.inc.php, record.inc.php, toolkit.inc.php,
+	users.inc.php: Added license information and headers
+
+2002-12-10 01:45  azurazu
+
+	* inc/auth.inc.php: Added fancy header (test:P)
+
+2002-12-10 01:31  azurazu
+
+	* inc/error.inc.php: Added errors
+
+2002-12-10 01:31  azurazu
+
+	* inc/dns.inc.php: Changed is_valid_hostname and is_valid_soa
+
+2002-12-09 23:52  azurazu
+
+	* inc/dns.inc.php: DNS Function enhancements (return values)
+
+2002-12-09 23:51  azurazu
+
+	* inc/error.inc.php: Added errors
+
+2002-12-09 22:19  azurazu
+
+	* inc/users.inc.php: Typo
+
+2002-12-04 02:51  azurazu
+
+	* install.php: Modifications all over... the script was weak in
+	general. Added some sort of support for pgsql but its not
+	implemented, just queries are there
+
+2002-12-03 23:12  azurazu
+
+	* docs/TODO: Changed the layout and added a few things
+
+2002-12-03 23:11  azurazu
+
+	* inc/users.inc.php: Removed is_valid_email and changed
+	implementation
+
+2002-12-03 23:11  azurazu
+
+	* inc/dns.inc.php: changed the function order and added some
+	comments
+
+2002-12-03 23:10  azurazu
+
+	* inc/toolkit.inc.php: moved is_valid_email to toolkit
+
+2002-12-03 01:04  azurazu
+
+	* inc/dns.inc.php: Finalized a big part of the checking.
+
+2002-12-03 01:03  azurazu
+
+	* inc/users.inc.php: Build is_valid_email functionality
+
+2002-12-02 22:05  azurazu
+
+	* inc/config-block.inc.php: Added fancy records toggle
+
+2002-12-02 21:41  azurazu
+
+	* docs/TODO: Changes
+
+2002-11-30 02:16  azurazu
+
+	* inc/toolkit.inc.php: Another newline bug.. bah
+
+2002-11-30 00:11  azurazu
+
+	* inc/dns.inc.php: Newline problems and NS validation added
+
+2002-11-29 23:32  azurazu
+
+	* inc/dns.inc.php: Splitted up and worked stuff out not bug free
+	yet I think
+
+2002-11-29 23:18  azurazu
+
+	* inc/record.inc.php: Bug Fix
+
+2002-11-26 01:09  azurazu
+
+	* users.php: Added ERR_LEVEL_10
+
+2002-11-26 01:05  azurazu
+
+	* inc/dns.inc.php: Removed a bug
+
+2002-11-26 01:05  azurazu
+
+	* inc/footer.inc.php: Added URL
+
+2002-11-26 01:04  azurazu
+
+	* inc/record.inc.php: Removed two bugs
+
+2002-11-26 01:02  azurazu
+
+	* inc/config-block.inc.php: Added 3 fields and removed deprecated
+	stuff
+
+2002-11-25 22:01  azurazu
+
+	* delete_user.php, edit_user.php: Changed the name of
+	get_name_from_userid to get_fullname_from_userid
+
+2002-11-25 22:00  azurazu
+
+	* inc/error.inc.php: Fixed a DUMB error in error.. d'oh and added
+	some more
+
+2002-11-25 21:59  azurazu
+
+	* inc/users.inc.php: Implemented comments and error handling in
+	users.inc.php
+
+2002-11-25 21:11  azurazu
+
+	* inc/: error.inc.php, toolkit.inc.php: Added error define
+	functionality
+
+2002-11-25 21:09  azurazu
+
+	* inc/record.inc.php: Added documentation for each function and
+	changed the error processing to a file called error.inc.php
+
+2002-11-25 19:16  azurazu
+
+	* docs/TODO: [no log message]
+
+2002-11-25 18:35  azurazu
+
+	* inc/dns.inc.php: Allow the notation of
+	12.8/123.123.123.123.in-addr.arpa in the validators. Thanks to mijo
+	for reporting this bug
+
+2002-11-25 18:30  azurazu
+
+	* inc/: record.inc.php, users.inc.php: Major modifications and bug
+	fixes. Also added comments
+
+2002-11-21 23:40  azurazu
+
+	* inc/record.inc.php: Removed some comment crap
+
+2002-11-21 23:39  azurazu
+
+	* inc/dns.inc.php: Fixed some prio bugs
+
+2002-11-21 23:26  azurazu
+
+	* inc/: dns.inc.php, record.inc.php: Build in basic record
+	validation, not totally done yet. Moved the validation function to
+	dns.inc.php
+
+2002-11-05 00:57  azurazu
+
+	* inc/record.inc.php: I dont get the errors (one e ok) but the rest
+	is just stupid Windows probly :/
+
+2002-11-05 00:38  azurazu
+
+	* delete_user.php, index.php: Small bug fixes and enhancements
+
+2002-11-05 00:35  azurazu
+
+	* inc/record.inc.php: Heavy modifications and _STUPID_ bugfixes,
+	really checkout the CVS
+
+2002-11-03 16:07  azurazu
+
+	* inc/dns.inc.php: Fixed a nasty bug in is_valid_hostname
+
+2002-10-30 01:04  azurazu
+
+	* inc/: dns.inc.php, record.inc.php: A lot of changes for
+	validation. Has to be split up still but testing purposes first.
+	Not done yet
+
+2002-10-28 13:45  sjeemz
+
+	* docs/TODO: modified TODO file
+
+2002-10-28 02:57  azurazu
+
+	* inc/record.inc.php: Fixed several small bugs
+
+2002-10-28 02:56  azurazu
+
+	* inc/dns.inc.php: Fixed even better ipv4 check (oneliner) and
+	added function validate_record
+
+2002-10-27 23:00  azurazu
+
+	* docs/TODO: Removed database changes - see changelog
+
+2002-10-27 20:22  azurazu
+
+	* add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, users.php: Changing because of db.inc.php to
+	toolkit.inc.php
+
+2002-10-27 20:20  azurazu
+
+	* inc/footer.inc.php: Changed closing database system
+
+2002-10-27 20:19  azurazu
+
+	* inc/: auth.inc.php, dns.inc.php, record.inc.php, toolkit.inc.php,
+	users.inc.php: Clean up of db.inc.php
+
+2002-10-27 20:18  azurazu
+
+	* inc/: dal.inc.php, database.inc.php: Database Abstraction Layer
+	and implementation
+
+2002-10-27 20:17  azurazu
+
+	* inc/config-block.inc.php: Changed mysql fields to db fields
+
+2002-10-27 20:12  azurazu
+
+	* docs/CHANGELOG: Changed a few things
+
+2002-10-26 23:38  azurazu
+
+	* docs/TODO: Added 2 remarks
+
+2002-10-25 22:20  azurazu
+
+	* add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, install.php, test_setup.php, users.php, docs/CHANGELOG,
+	docs/README, docs/TODO, images/background.jpg, images/delete.gif,
+	images/edit.gif, inc/config-block.inc.php, inc/db.inc.php,
+	inc/footer.inc.php, inc/header.inc.php, style/style.css.php:
+	PowerAdmin initial source code submit
+
+2002-10-25 22:20  azurazu
+
+	* add_record.php, delete_domain.php, delete_record.php,
+	delete_user.php, edit.php, edit_record.php, edit_user.php,
+	index.php, install.php, test_setup.php, users.php, docs/CHANGELOG,
+	docs/README, docs/TODO, images/background.jpg, images/delete.gif,
+	images/edit.gif, inc/config-block.inc.php, inc/db.inc.php,
+	inc/footer.inc.php, inc/header.inc.php, style/style.css.php:
+	Initial revision
+
--- a/docs/README	Wed Apr 18 22:48:49 2007 +0000
+++ b/docs/README	Sun Apr 22 07:20:09 2007 +0000
@@ -1,178 +1,109 @@
-1. What is PowerAdmin
-------------------------------
+What is Poweradmin?
+-----------------------------------------------------------------------
 
-PowerAdmin is a non commercial front-end for the PowerDNS (www.powerdns.com) nameserver.
-The goal of PowerAdmin is to manage the (MySQL) database behind PowerDNS, which contains
-the DNS records.
-
-There have been some changes in this release, both of major and minor importance.
-Please read the following document to familiarize yourself with them. You are also
-requested to report any bugs should you encounter them.
+Poweradmin is a non-commercial front-end for the PowerDNS nameserver,
+see <http://www.powerdns.com>. The goal of Poweradmin is to provide a
+friendly management interface to the database backend of PowerDNS
+which actually holds the DNS records. At this moment, both the mysql
+and pgsql are supported. The interface allows add, modify and deletion
+of both forward and reverse zones and has full IPv6 support.
 
-
-
-2. Where to get PowerAdmin
-------------------------------
+Poweradmin is written by Roeland Nieuwenhuis <trancer@trancer.nl>
+and Sjeemz <sjeemz@sjeemz.nl>. It contains patches of Wim Moistry and
+Dennis Roos.
 
-The main location of PowerAdmin is http://www.poweradmin.org
-
-
-
-3. Notes
-------------------------------
+Please see CHANGES for a list of changes, CHANGES.pre-1.3.0 for a list
+of changes prior to 1.3.0 release, README.i18n for information on the
+multi language support, README.sequence for information the "sequence
+updater" and the insertion of records and zones using other interfaces
+than poweradmin.
 
 
-3.1 Migrating
-------------------------------
-
-If you are running a stone-age version of PowerAdmin read the following information!
+Where to get Poweradmin?
+-----------------------------------------------------------------------
 
-Due to some major changes in this release the current version of PowerAdmin
-supports gmysql backend. You are strongly advised to backup your data before running the
-migrator.php tool in your poweradmin directory. This is to protect you against any data
-loss should anything go wrong. We assume it all works properly, but due to a limited
-number of betatesters we cannot guarantee our tool is 100% bug free.
-
-!! Please be sure you have a working backup of your data !! 
-
-Do the following to migrate: 
-- rename the file migrator.php-pa in your webdir to migrator.php.
-- Go here to migrate it.
-It is recommended to synchronize your database aswell after the update
+The Poweradmin website can be found at <http://www.poweradmin.org>.
 
 
-3.2 DB Information
-------------------------------
-
-For now on PowerAdmin supports PowerDNS' MySQL back-end only. If there is demand for other
-database layers support will be added in the near future. Of course, since the code is opensource,
-everyone who cannot wait is encouraged to plug in their own database layer (and if you dare, send the 
-code to us so we can evaluate it and maybe integrate it with the current PowerAdmin).
-We are still busy with PostGreSQL, but the experience needs a bit more tweaking for us.
-Time will release it, we cannot yet.
+Requirements
+-----------------------------------------------------------------------
 
-By using PEAR::DB we are bound to have some way to keep track of indexes. This is done by using seperate
-tables called users_seq and zones_seq. Also records_seq will be there. This means that if you manually
-insert a record, chances are 90% that you will have corrupted workings of PowerAdmin (because the ID is
-not in order.) The problem can be solved by running the Synchronize Database tool (select it or use the
-seq_update.php url). This will let you resynch your indexes. It is also useful if you are migrating
-from 1.0 to 1.1 or higher.
-
-Read more about this in README-Sequence
-
+- PowerDNS, versions 2.1 through 2.9.19 have been tested, others might
+  work as well. See <http://www.powerdns.com>.
 
-4. Documentation
-------------------------------
-
-PowerAdmin has the following core features:
-
-- User Level dependant editing of domains. For example an administrator
-  can edit all domains, while a user can for example only edit the domain(s)
-  owned by him/her.
+- MySQL or PostgreSQL. Both MySQL versions 4 and 5 have been reported
+  to work, 5.0.22 has been tested.
+  
+- A webserver that support PHP 4 or 5. Apache 2.0.55 has been tested.
 
-- Simple administration of users that can access PowerAdmin.
-
-- Easy creating of domains. Next of that, the proper assignment of rights
-  is simply and done within a few clicks.
+- PHP. At least version 4.2.1. Version 5.1.2 has been tested. It needs
+  the mysql or pgsql extension, as well has PEAR. 
 
-- Ability to apply a record-template when creating domains. For now, the template
-  can only be configured in the config file, but this will be moved to a nice
-  database-table soon.
-
-- Editting records in existing zones.
+- PEAR::MDB2 (2.4.0 has been tested) and PEAR::MDB2_Driver_mysql
+  (1.4.0 has been tested) or PEAR::MDB2_Driver_pgsql.
 
 
-5. Installation
-------------------------------
+Installing
+-----------------------------------------------------------------------
 
-!! If you are updating, you should necessarily read paragraph 3 !!
+Upgrading? See section "Upgrading". 
+
+- Install PowerDNS with a mysql or pgsql backend.
 
-What you need:
-- PowerDNS (Duh!) (Versions 2.1 through 2.6 have been tested, others might work aswell)
-  http://www.powerdns.com/
-- MySQL
-  http://www.mysql.com/
-- An (Apache) webserver that supports php4 and php4-mysql. The PHP version must be at least 4.2.1.
-  http://www.apache.org/
-  http://www.php.net/
+- Install MDB2 and MDB2_Driver_mysql (or pgsql equivalent) packages of
+  PEAR. You can install PEAR on a Debian-based server by installing
+  the package php-pear. Make sure php-cli can access the mysql module
+  (uncomment the line "extension=mysql.so" in /etc/php5/cli/php.ini).
+  The addional PEAR packages can be installed using the "pear install"
+  command (e.g. "pear install MDB2 ; pear install MDB2_Driver_mysql").
 
-First of all, install PowerDNS with it's MySQL Generic back-end.
-
-Next to the MySQL user you created for PowerDNS, you need a MySQL user for PowerAdmin that can do
-the following actions on the PowerDNS database you created: SELECT, INSERT, DELETE, UPDATE, CREATE.
+- Add a SQL user for poweradmin that is granted SELECT, INSERT,
+  DELETE, UPDATE and CREATE actions.
 
-Untar/gzip poweradmin-VERSION.tar.gz in your webdir. This will create a directory called
-poweradmin-VERSION.
+- Untar and gunzip the poweradmin package in your web dir. This will
+  create a directory "poweradmin-VERSION", we will refer to this
+  directory as "poweradmin/".
 
-In the 'inc' subdirectory of your newly created directory, you'll find a file called
-config-block.inc.php. Edit this file to suit your environment. Then rename it to
-config.inc.php to be able to load the site. The website will not work properly without a config,
-so pay attention to your configuration!
+- In the 'poweradmin/inc" directory the file "config-me.inc.php".
+  Edit this file to suit your environment. Then rename this file to
+  config.inc.php to be able to load the site. The website will not
+  work properly without a config, so pay attention to your config!
 
-Next, go to http://www.yourdomain.com/poweradmin-VERSION/install.php
+- Next, go to <http://yourserver/poweradmin/install.php>
 
-Fill in the required information to make an administrator login for your
-PowerAdmin. If all goes well, the user is made, and you can log in using that username.
-WARNING! Be sure to remove install.php from the webdir!
+- Fill in the required information to make an administrator login for
+  your PowerAdmin. If all goes well, the user is added, and you can
+  log in using that username. Do not forget to remove install.php from
+  the webdir!
 
-After you are done, run http://www.yourdomain.com/poweradmin-VERSION/test_setup.php to see if
-everything is set up well.
-This test also includes the functionality testing of your PowerDNS records (whether you
-have read/write access or not)
+- Finaly, run <http://yourserver/poweradmin/test_setup.php> to see if
+  everything is setup correctly. This test also includes the
+  functionality testing of your PowerDNS records (whether you
+  have read/write access or not).
 
 
-6. User levels explained
-------------------------------
-User levels explained:
-
-[x] = yes
-[ ] = no
+Upgrading from 1.2.7-patched
+-----------------------------------------------------------------------
 
-User        Permission to           Permission to           Permission to           Permission to
-Level       change own              change other            create domains          add/modify
-            domain(s)               domain(s)                                       users
-
- 1               [x]                     [ ]                     [ ]                     [ ]
- 5               [x]                     [x]                     [x]                     [ ]
- 10              [x]                     [x]                     [x]                     [x]
-
-
-7. Further Info && Bugs
-------------------------------
-
-The latest contact information can always be found at http://www.poweradmin.org .
+If you are upgrading from 1.2.7-patched, there is not much you need to
+do. The only thing that is needed is install PEAR packages MDB2 and
+MDB2_Driver_mysql (or MDB2_Driver_pgsql). This can be done by running
+the commands "pear install MDB2 ; pear install MDB2_Driver_mysql".
+Make sure php-cli can access the mysql extension by uncommenting the
+line "extension=mysql.so" in /etc/php5/cli/php.ini
 
 
-8. Links and more information
-------------------------------
+User levels explained
+-----------------------------------------------------------------------
 
-http://www.poweradmin.org   Our main site
-http://www.powerdns.com		PowerDNS
-http://www.ietf.org		Information about DNS
-http://poweradmin.sf.net	PowerAdmin @ SourceForge
-http://www.apache.org/          The Apache Webserver
-http://www.php.net/             PHP programming language
-http://www.mysql.com/           MySQL database server
+[x] = yes   [ ] = no
 
-9. Changes
-------------------------------
+User    Permission to   Permission to  Permission to    Permission to
+Level   change own      change other   create domains   add/modify
+        domain(s)       domain(s)                       users
 
-Changes for this version are:
-- Many many many bug fixes!
-- Enhanced sequence updater that is now smarter.
-- SOA Fields fixed.
-- Automatically SOA serial updating after each change in the DNS.
-- MASTER/SLAVE Functionality but that stays untested at the moment of writing. 
-  Use the toggles with care, see the config-block.inc.php for more information.
-- Search abilities added thanks to DeViCeD
-- A lot of other stuff and minor details not worth mentioning that much.
+ 1           [x]             [ ]            [ ]              [ ]
+ 5           [x]             [x]            [x]              [ ]
+ 10          [x]             [x]            [x]              [x]
 
 
---------------------------------------------------------------------------
-Enjoy!
-
-There are some major changes, we would like feedback!
-See paragraph 7 for contact information.
-
-Regards,
-The PowerAdmin Team
--- a/docs/README-Sequence	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-1. What is the Sequence Updater
--------------------------------
-
-The Sequence updater is written to synchronize your PowerAdmin/DNS database 
-after you have manually inserted records into it. 
-
-2. Why do I need that?
--------------------------------
-
-Because PowerAdmin uses the php-PEAR::DB library it is using sequence numbers. 
-A sequence number simply tells the application what will be the next ID 
-for insertion. Some of the mysql users are now shouting auto_increment.
-Yes auto_increment, but we cant use this here because we plan to use 
-PostGreSQL or Other db's that dont have auto_increment so we are stuck to
-using sequence numbers.
-
-3. What does this mean?
--------------------------------
-
-This means that if you dont run this tool after you have been manually adding
-records, your database might be corrupted and PowerAdmin might be kicking
-you back with a lot of errors.
-
-4. Ok, I got it, now what?
--------------------------------
-
-Put this file in your PowerAdmin directory. Login into PowerAdmin using the normal
-system. Now go to the url where you put it and done, the sequence numbers are
-updated.
-
-5. Future versions
--------------------------------
-
-In all versions higher than 1.1.2 this function will be automatically there for
-administrators.
-
-6. Contact
-
-6. Further Info && Bugs
-------------------------------
-
-To contact us we refer you to http://www.poweradmin.org/ for the latest
-contact information.
-
-7. Links and more information
-------------------------------
-
-http://www.poweradmin.org l     Our main site
-http://www.powerdns.com         PowerDNS
-http://www.ietf.org             Information about DNS
-http://poweradmin.sf.net        PowerAdmin @ SourceForge
-http://www.apache.org/          The Apache Webserver
-http://www.php.net/             PHP programming language
-http://www.mysql.com/           MySQL database server
-
---------------------------------------------------------------------------
-
-Regards,
-The PowerAdmin Team
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/README.redhat-8	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,88 @@
+RedHat 8.0 BUG and howto 'fix'
+
+Ok it seems to be that there is some bug in PowerAdmin (for now we assume so).
+It is currently reported all on RedHat 8.0 machines.
+
+The bug seems to be appear when Apache 2.0 is being used with the default
+installed PHP RPM on the platform. New shapshots might remove this bug. We havent
+tested this yet. If you have any more insights on this bug please email us
+at info@poweradmin.sjeemz.nl
+
+We kindly refer you to http://bugs.php.net/bug.php?id=18648
+We havent tested this out fully yet! Not even the fix since we arent native
+RedHat users.
+
+Quick dirty fix. We just avoid the bug by not using php :)
+
+NOTE: THIS IS A MYSQL FIX!
+
+Ok what to do:
+
+- Login to mysql using the poweradmin account information.
+- Issue the following queries:
+
+
+/****************
+ * USER TABLE	*
+ ***************/
+
+CREATE TABLE users (
+id int(11) NOT NULL,
+username varchar(16) NOT NULL default '',
+password varchar(255) NOT NULL default '',
+fullname varchar(255) NOT NULL default '',
+email varchar(255) NOT NULL default '',
+description text NOT NULL,
+level tinyint(4) NOT NULL default '0',
+active tinyint(4) NOT NULL default '0',
+PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+/****************
+ * ZONES TABLE	*
+ ***************/
+
+CREATE TABLE zones (
+id int(11) NOT NULL,
+name varchar(255) NOT NULL default '',
+owner int(11) NOT NULL default '0',
+comment text NOT NULL,
+PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+
+
+/************************
+ * INSTALL YOURSELF	*
+ ***********************/
+
+- $login == your prefered login
+- $full	== your fullname
+- $pass == your prefered password
+- $email == your prefered email
+- $desc == your prefered description
+
+INSERT INTO users VALUES (1,'$login',md5('$pass'),'$full','$email','$description',10,1)
+
+Example
+INSERT INTO users VALUES (1,'trance',md5('test'),'me','trancer@nospam.trancer.nl','its me!',10,1);
+
+- Ok, now we have a problem. PowerAdmin uses PEAR. And to remain independent PEAR has
+its own incrementation functions. For this there is a seperate table. We didnt use pear yet, therefore
+the current setup is inconsistent with what pear is thinking (you are one id behind).
+We now have to setup a users_seq table for this.
+
+
+CREATE TABLE users_seq (
+  id int(10) unsigned NOT NULL auto_increment,
+  PRIMARY KEY  (id)
+) TYPE=MyISAM;
+
+INSERT INTO users_seq VALUES (1);
+
+
+Done! It should now work. If you encounter any problems feel free to email us, also monitor the website
+bugfixes might come available.
+
+Roeland, PowerAdmin Team
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/README.sequence	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,88 @@
+README.sequence - Additional documentation on manual inserts (using
+poweradmin along with other interfaces to the powerdns database).
+
+
+Removal of "sequence updater"
+-----------------------------------------------------------------------
+
+Up to poweradmin version 1.2.7-patched, the code included the so
+called "sequence updater". It was written to synchronize poweradmin
+with the database after manual inserts of zones and records. This
+happens if you insert new zones or records by hand, or have other
+interfaces than poweradmin talking to the database as well.
+
+The 1.2.7-patched version of poweradmin was using the PEAR::DB module,
+using it's nextID() function. It tells the application what will be
+the next ID for insertion. However, mysql has "auto_increment" and
+pgsql has "serial". Both allow to do insert with ID's created on the
+run, without the need of seperate sequence numbers.
+
+In order to get rid of the incidental errors and the need to hit the
+"synchronize database" from time to time, the "sequence updater" has
+been removed and the code has been updated to use the "auto_increment"
+and "serial" functionality. As long as you do manual inserts the
+correct way, this will not cause any problems.
+
+
+Insert new records and zones the correct way (using other tools)
+-----------------------------------------------------------------------
+
+According to the documentation of powerdns (2.9.20), the id column of
+the tables domains and records in a mysql setup are created using the
+"auto_increment" option and in a pgsql setup using the "serial"
+option. [1] 
+
+This will allow for auto increments of the id field, as long as no one
+does a manual insert, specifying the id. So, let's say we have created
+a table, one in mysql, one in pgsql:
+
+  CREATE TABLE xmpl_tbl (id INT auto_increment, text TEXT);
+  CREATE TABLE xmpl_tbl (id SERIAL PRIMARY KEY, text TEXT);
+
+This insert will work in pgsql only:
+
+  INSERT INTO xmpl_tbl VALUES (DEFAULT,'First insert test");
+
+These inserts will work in mysql only:
+
+  INSERT INTO xmpl_tbl VALUES (NULL,'Third insert test"); 
+  INSERT INTO xmpl_tbl VALUES ('','Fourth insert test"); 
+
+This will work in both mysql and pgsql (as long as id didn't exist
+already), but it will break "auto increment" feature in pgsql [2] (can
+be fixed using setval() functionality in pgsql):
+
+  INSERT INTO xmpl_tbl VALUES (42,'Fifth insert test");
+
+This will work in both mysql and pgsql:
+
+  INSERT INTO xmpl_tbl (text) VALUES ('Second insert test");
+
+So, in other words: if you want to insert records and zones into the
+powerdns database using other tools and interfaces than poweradmin,
+you should make sure you are using the correct syntax.
+
+
+Limitations
+-----------------------------------------------------------------------
+
+Removing the "sequence updater" removes the possibilty to use the
+poweradmin code against other databases than mysql and pgsql (or at
+least, it is untested).
+
+
+More information
+-----------------------------------------------------------------------
+
+More information can be found here:
+
+ - PowerDNS manual, section backends in detail
+   <http://downloads.powerdns.com/documentation/html/generic-mypgsql-backends.html>
+
+ - Postgresql documentation, section Operational Questions 
+   <http://www.postgresql.org/files/documentation/books/aw_pgsql/node196.html#SECTION0029916000000000000000>
+
+ - pgsql-bugs mailinglist archive
+   <http://archives.postgresql.org/pgsql-bugs/2004-11/msg00340.php>
+   <http://archives.postgresql.org/pgsql-bugs/2004-11/msg00344.php>
+
--- a/docs/REDHAT-README	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-RedHat 8.0 BUG and howto 'fix'
-
-Ok it seems to be that there is some bug in PowerAdmin (for now we assume so).
-It is currently reported all on RedHat 8.0 machines.
-
-The bug seems to be appear when Apache 2.0 is being used with the default
-installed PHP RPM on the platform. New shapshots might remove this bug. We havent
-tested this yet. If you have any more insights on this bug please email us
-at info@poweradmin.sjeemz.nl
-
-We kindly refer you to http://bugs.php.net/bug.php?id=18648
-We havent tested this out fully yet! Not even the fix since we arent native
-RedHat users.
-
-Quick dirty fix. We just avoid the bug by not using php :)
-
-NOTE: THIS IS A MYSQL FIX!
-
-Ok what to do:
-
-- Login to mysql using the poweradmin account information.
-- Issue the following queries:
-
-
-/****************
- * USER TABLE	*
- ***************/
-
-CREATE TABLE users (
-id int(11) NOT NULL,
-username varchar(16) NOT NULL default '',
-password varchar(255) NOT NULL default '',
-fullname varchar(255) NOT NULL default '',
-email varchar(255) NOT NULL default '',
-description text NOT NULL,
-level tinyint(4) NOT NULL default '0',
-active tinyint(4) NOT NULL default '0',
-PRIMARY KEY  (id)
-) TYPE=MyISAM;
-
-/****************
- * ZONES TABLE	*
- ***************/
-
-CREATE TABLE zones (
-id int(11) NOT NULL,
-name varchar(255) NOT NULL default '',
-owner int(11) NOT NULL default '0',
-comment text NOT NULL,
-PRIMARY KEY  (id)
-) TYPE=MyISAM;
-
-
-
-/************************
- * INSTALL YOURSELF	*
- ***********************/
-
-- $login == your prefered login
-- $full	== your fullname
-- $pass == your prefered password
-- $email == your prefered email
-- $desc == your prefered description
-
-INSERT INTO users VALUES (1,'$login',md5('$pass'),'$full','$email','$description',10,1)
-
-Example
-INSERT INTO users VALUES (1,'trance',md5('test'),'me','trancer@nospam.trancer.nl','its me!',10,1);
-
-- Ok, now we have a problem. PowerAdmin uses PEAR. And to remain independent PEAR has
-its own incrementation functions. For this there is a seperate table. We didnt use pear yet, therefore
-the current setup is inconsistent with what pear is thinking (you are one id behind).
-We now have to setup a users_seq table for this.
-
-
-CREATE TABLE users_seq (
-  id int(10) unsigned NOT NULL auto_increment,
-  PRIMARY KEY  (id)
-) TYPE=MyISAM;
-
-INSERT INTO users_seq VALUES (1);
-
-
-Done! It should now work. If you encounter any problems feel free to email us, also monitor the website
-bugfixes might come available.
-
-Roeland, PowerAdmin Team
-
--- a/docs/template.pot	Wed Apr 18 22:48:49 2007 +0000
+++ b/docs/template.pot	Sun Apr 22 07:20:09 2007 +0000
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-04-18 22:44+0200\n"
+"POT-Creation-Date: 2007-04-21 19:20+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,7 @@
 msgid "Add record to zone"
 msgstr ""
 
-#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106
+#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73
 #: search.php:40 users.php:49
 msgid "DNS Admin"
 msgstr ""
@@ -29,8 +29,8 @@
 msgid "Add record"
 msgstr ""
 
-#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:152
-#: search.php:78 search.php:121 users.php:78
+#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119
+#: search.php:78 search.php:121 users.php:72
 msgid "Name"
 msgstr ""
 
@@ -50,11 +50,11 @@
 msgid "TTL"
 msgstr ""
 
-#: delete_domain.php:38 users.php:93
+#: delete_domain.php:38 users.php:87
 msgid "Delete domain"
 msgstr ""
 
-#: delete_domain.php:39 index.php:152 index.php:207 search.php:80
+#: delete_domain.php:39 index.php:119 index.php:174 search.php:80
 msgid "Owner"
 msgstr ""
 
@@ -78,7 +78,7 @@
 msgid "Delete record"
 msgstr ""
 
-#: delete_user.php:54 users.php:85
+#: delete_user.php:54 users.php:79
 msgid "Delete user"
 msgstr ""
 
@@ -154,7 +154,7 @@
 msgid "Assign to user"
 msgstr ""
 
-#: edit.php:276 index.php:176 search.php:91
+#: edit.php:276 index.php:143 search.php:91
 msgid "Delete zone"
 msgstr ""
 
@@ -182,134 +182,192 @@
 msgid "Edit user"
 msgstr ""
 
-#: edit_user.php:59 index.php:112 search.php:44 users.php:47
+#: edit_user.php:59 index.php:79 search.php:44 users.php:47
 msgid "User admin"
 msgstr ""
 
-#: edit_user.php:69 users.php:105
+#: edit_user.php:69 users.php:99
 msgid "User name"
 msgstr ""
 
-#: edit_user.php:70 users.php:106
+#: edit_user.php:70 install.php:204 users.php:100
 msgid "Full name"
 msgstr ""
 
-#: edit_user.php:71 users.php:107 inc/auth.inc.php:97
+#: edit_user.php:71 install.php:203 users.php:101 inc/auth.inc.php:97
 msgid "Password"
 msgstr ""
 
-#: edit_user.php:72 users.php:108
+#: edit_user.php:72 users.php:102
 msgid "E-mail"
 msgstr ""
 
-#: edit_user.php:73 users.php:109
+#: edit_user.php:73 users.php:103
 msgid "User level"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:84
+#: edit_user.php:73 inc/config-me.inc.php:84
 msgid "Normal user"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:85
+#: edit_user.php:73 inc/config-me.inc.php:85
 msgid "Administrator"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:86
+#: edit_user.php:73 inc/config-me.inc.php:86
 msgid "Administrator w/ user admin rights"
 msgstr ""
 
-#: edit_user.php:74 users.php:110
+#: edit_user.php:74 install.php:206 users.php:104
 msgid "Description"
 msgstr ""
 
-#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270
+#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270
 msgid "Active"
 msgstr ""
 
-#: index.php:112 search.php:44 users.php:53
-msgid "Synchronize database"
-msgstr ""
-
-#: index.php:115 users.php:55
+#: index.php:82 users.php:49
 msgid "Search records"
 msgstr ""
 
-#: index.php:119
+#: index.php:86
 msgid "Welcome"
 msgstr ""
 
-#: index.php:122
+#: index.php:89
 msgid "Your userlevel is"
 msgstr ""
 
-#: index.php:128 users.php:65
+#: index.php:95 users.php:59
 msgid "Error"
 msgstr ""
 
-#: index.php:132
+#: index.php:99
 msgid "Current domains in DNS (click to view or edit)"
 msgstr ""
 
-#: index.php:138
+#: index.php:105
 msgid "Number of domains"
 msgstr ""
 
-#: index.php:152 search.php:79
+#: index.php:119 search.php:79
 msgid "Records"
 msgstr ""
 
-#: index.php:164
+#: index.php:131
 msgid "No domains in this listing, sorry."
 msgstr ""
 
-#: index.php:191
+#: index.php:158
 msgid "You only administer some records of domains marked with an (*)."
 msgstr ""
 
-#: index.php:202
+#: index.php:169
 msgid "Create new domain"
 msgstr ""
 
-#: index.php:204
+#: index.php:171
 msgid "Domain name"
 msgstr ""
 
-#: index.php:205
+#: index.php:172
 msgid "Web IP"
 msgstr ""
 
-#: index.php:206
+#: index.php:173
 msgid "Mail IP"
 msgstr ""
 
-#: index.php:221
+#: index.php:188
 msgid "Domain type"
 msgstr ""
 
-#: index.php:232
+#: index.php:199
 msgid "Create zone without"
 msgstr ""
 
-#: index.php:232
+#: index.php:199
 msgid "applying records-template"
 msgstr ""
 
-#: index.php:233
+#: index.php:200
 msgid "Add domain"
 msgstr ""
 
-#: index.php:242 index.php:247
+#: index.php:209 index.php:214
 msgid "Change password"
 msgstr ""
 
-#: index.php:244
+#: index.php:211
 msgid "Current password"
 msgstr ""
 
-#: index.php:245 index.php:246
+#: index.php:212 index.php:213
 msgid "New password"
 msgstr ""
 
+#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149
+msgid "Oops! An error occured!"
+msgstr ""
+
+#: install.php:171
+msgid "PowerAdmin has succesfully been installed."
+msgstr ""
+
+#: install.php:173
+msgid "Remove this file (install.php) from your webdir."
+msgstr ""
+
+#: install.php:174
+msgid "WARNING"
+msgstr ""
+
+#: install.php:174
+msgid "PowerAdmin will not work until you delete install.php"
+msgstr ""
+
+#: install.php:176
+msgid "You can click"
+msgstr ""
+
+#: install.php:176
+msgid "to start using PowerAdmin"
+msgstr ""
+
+#: install.php:185
+msgid "You didnt fill in one of the required fields!"
+msgstr ""
+
+#: install.php:193 inc/auth.inc.php:86
+msgid "PowerAdmin for PowerDNS"
+msgstr ""
+
+#: install.php:195
+msgid ""
+"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n"
+"administrator login."
+msgstr ""
+
+#: install.php:197
+msgid "Fields marked with a"
+msgstr ""
+
+#: install.php:197
+msgid "are required."
+msgstr ""
+
+#: install.php:202
+msgid "Login Name"
+msgstr ""
+
+#: install.php:205
+msgid "Email"
+msgstr ""
+
+#: install.php:207
+msgid "Make Account"
+msgstr ""
+
 #: search.php:38
 msgid "Search zones or records"
 msgstr ""
@@ -338,14 +396,6 @@
 msgid "Nothing found for query"
 msgstr ""
 
-#: seq_update.php:26
-msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)."
-msgstr ""
-
-#: seq_update.php:53
-msgid "All tables are successfully synchronized."
-msgstr ""
-
 #: test_setup.php:58
 msgid "Not all tables are ok!"
 msgstr ""
@@ -374,35 +424,35 @@
 msgid "Please fill in all fields"
 msgstr ""
 
-#: users.php:68
+#: users.php:62
 msgid "Current users (click to edit)"
 msgstr ""
 
+#: users.php:66
+msgid "Number of users"
+msgstr ""
+
 #: users.php:72
-msgid "Number of users"
-msgstr ""
-
-#: users.php:78
 msgid "Domains"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Domain list"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Level"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Status"
 msgstr ""
 
-#: users.php:103
+#: users.php:97
 msgid "Create new user"
 msgstr ""
 
-#: users.php:112
+#: users.php:106
 msgid "Add user"
 msgstr ""
 
@@ -415,10 +465,6 @@
 msgstr ""
 
 #: inc/auth.inc.php:86
-msgid "PowerAdmin for PowerDNS"
-msgstr ""
-
-#: inc/auth.inc.php:86
 msgid "Please login"
 msgstr ""
 
@@ -430,10 +476,6 @@
 msgid "You have logged out."
 msgstr ""
 
-#: inc/database.inc.php:31 inc/toolkit.inc.php:149
-msgid "Oops! An error occured!"
-msgstr ""
-
 #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187
 msgid "back"
 msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/config-me.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,178 @@
+<?php
+
+/* Edit all fields below here to your information */
+
+/* MySQL Configuration */
+
+//
+// Host we should connect to.
+// This could be for example "localhost" or a sock file
+$dbhost = 'localhost';
+
+//
+// Your user with SELECT/INSERT/UPDATE/DELETE/CREATE access to $dbdatabase
+$dbuser = '';
+
+//
+// Youe password, the password for $dbuser
+$dbpass = '';
+
+// Your database, the database you want to use for PowerDNS (or are already using)
+$dbdatabase   = '';
+
+// The dsn you want to use (which database you want to use)
+// Tested is mysql and pgsql default is mysql
+$dbdsntype = 'mysql';
+
+/* URI Configuration */
+
+
+// $BASE_URL
+// This will be the main URI you will use to connect to PowerAdmin.
+// For instance: "http://poweradmin.sjeemz.nl"
+$BASE_URL = "http://";
+
+// $BASE_PATH
+// If PowerAdmin is in a subdir. Specify this here
+// For instance: "/admin/"
+$BASE_PATH = "/admin/";
+
+
+/* DNS Record information */
+
+
+// $HOSTMASTER
+// The email address of the hostmaster you want to be mailed.
+// For instance: "hostmaster@sjeemz.nl"
+$HOSTMASTER = "";
+
+// $NS1
+// Your first nameserver
+// Should be a domainname! Not an IP.
+$NS1 = "";
+
+// $NS2
+// Your second nameserver.
+// If you dont have a second nameserver, fill in the same value as $NS1
+$NS2 = "";
+
+/* You dont have to edit these fields. Change them if you want. */
+
+
+// $EXPIRE
+// Session timeout in seconds. This is 1800 seconds which is 30 minutes by default.
+// The information in this field should be in seconds.
+// After this $EXPIRE you are automatically logged out from the system.
+$EXPIRE = 1800;
+
+// $ALLOW_SOA_EDIT
+// Allow users with level 1 to edit/delete SOA records?
+$ALLOW_SOA_EDIT = 0;
+
+// $ALLOW_NS_EDIT
+// Allow users with level 1 to edit/delete pre-set NS records for their domain.
+$ALLOW_NS_EDIT = 1;
+
+// $DEFAULT_TTL
+// Default TTL for records.
+// Default time to live for all records. This notation is in seconds.
+$DEFAULT_TTL = 3600;      // (3600 seconds / 1 hour by default)
+
+
+// $NAME_LEVEL_X
+// These directives allow you to change the statusnames of users on the system.
+$NAME_LEVEL_1 = _('Normal user');
+$NAME_LEVEL_5 = _('Administrator');
+$NAME_LEVEL_10 = _('Administrator w/ user admin rights');
+
+// Enable fancy records or not (http://doc.powerdns.com/fancy-records.html)? true/false
+$FANCY_RECORDS = true;
+
+// Master or slave functionality. Set this to either true or false.
+// This field indicates if you are running in a MASTER/SLAVE setup or in a NATIVE setup.
+// By toggling this function you will get some more selection features.
+// Default is false.
+// Use these features with care, they havent been tested much yet.
+$MASTER_SLAVE_FUNCTIONS = false;
+
+
+/* ------------------------------------------ */
+/* No need to make changes below this line... */
+/* Which means, dont touch it		      */
+/* ------------------------------------------ */
+
+/* -------------------------------------------------------------------- */
+/* NO REALLY DONT TOUCH IT! Unless you _REALLY_ know what you are doing */
+/* -------------------------------------------------------------------- */
+
+// $rtypes - array of possible record types
+$rtypes = array('A', 'AAAA', 'CNAME', 'HINFO', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'TXT');
+
+// If fancy records is enabled, extend this field.
+if($FANCY_RECORDS)
+{
+	$rtypes[10] = 'URL';
+	$rtypes[11] = 'MBOXFW';
+}
+
+// $template - array of records that will be applied when adding a new zone file
+$template = array(
+                array(
+
+                                "name"          =>              "##DOMAIN##",
+                                "type"          =>              "SOA",
+                                "content"       =>              "$NS1 $HOSTMASTER 1",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "##DOMAIN##",
+                                "type"          =>              "NS",
+                                "content"       =>              "$NS1",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "##DOMAIN##",
+                                "type"          =>              "NS",
+                                "content"       =>              "$NS2",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "www.##DOMAIN##",
+                                "type"          =>              "A",
+                                "content"       =>              "##WEBIP##",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "##DOMAIN##",
+                                "type"          =>              "A",
+                                "content"       =>              "##WEBIP##",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "mail.##DOMAIN##",
+                                "type"          =>              "A",
+                                "content"       =>              "##MAILIP##",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "localhost.##DOMAIN##",
+                                "type"          =>              "A",
+                                "content"       =>              "127.0.0.1",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              ""
+                ),
+                array(
+                                "name"          =>              "##DOMAIN##",
+                                "type"          =>              "MX",
+                                "content"       =>              "mail.##DOMAIN##",
+                                "ttl"           =>              "$DEFAULT_TTL",
+                                "prio"          =>              "10"
+                )
+);
+?>
--- a/inc/config.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-<?php
-
-/* Edit all fields below here to your information */
-
-/* MySQL Configuration */
-
-//
-// Host we should connect to.
-// This could be for example "localhost" or a sock file
-$dbhost = 'localhost';
-
-//
-// Your user with SELECT/INSERT/UPDATE/DELETE/CREATE access to $dbdatabase
-$dbuser = '';
-
-//
-// Youe password, the password for $dbuser
-$dbpass = '';
-
-// Your database, the database you want to use for PowerDNS (or are already using)
-$dbdatabase   = '';
-
-// The dsn you want to use (which database you want to use)
-// Tested is mysql and pgsql default is mysql
-$dbdsntype = 'mysql';
-
-/* URI Configuration */
-
-
-// $BASE_URL
-// This will be the main URI you will use to connect to PowerAdmin.
-// For instance: "http://poweradmin.sjeemz.nl"
-$BASE_URL = "http://";
-
-// $BASE_PATH
-// If PowerAdmin is in a subdir. Specify this here
-// For instance: "/admin/"
-$BASE_PATH = "/admin/";
-
-
-/* DNS Record information */
-
-
-// $HOSTMASTER
-// The email address of the hostmaster you want to be mailed.
-// For instance: "hostmaster@sjeemz.nl"
-$HOSTMASTER = "";
-
-// $NS1
-// Your first nameserver
-// Should be a domainname! Not an IP.
-$NS1 = "";
-
-// $NS2
-// Your second nameserver.
-// If you dont have a second nameserver, fill in the same value as $NS1
-$NS2 = "";
-
-/* You dont have to edit these fields. Change them if you want. */
-
-
-// $EXPIRE
-// Session timeout in seconds. This is 1800 seconds which is 30 minutes by default.
-// The information in this field should be in seconds.
-// After this $EXPIRE you are automatically logged out from the system.
-$EXPIRE = 1800;
-
-// $ALLOW_SOA_EDIT
-// Allow users with level 1 to edit/delete SOA records?
-$ALLOW_SOA_EDIT = 0;
-
-// $ALLOW_NS_EDIT
-// Allow users with level 1 to edit/delete pre-set NS records for their domain.
-$ALLOW_NS_EDIT = 1;
-
-// $DEFAULT_TTL
-// Default TTL for records.
-// Default time to live for all records. This notation is in seconds.
-$DEFAULT_TTL = 3600;      // (3600 seconds / 1 hour by default)
-
-
-// $NAME_LEVEL_X
-// These directives allow you to change the statusnames of users on the system.
-$NAME_LEVEL_1 = _('Normal user');
-$NAME_LEVEL_5 = _('Administrator');
-$NAME_LEVEL_10 = _('Administrator w/ user admin rights');
-
-// Enable fancy records or not (http://doc.powerdns.com/fancy-records.html)? true/false
-$FANCY_RECORDS = true;
-
-// Master or slave functionality. Set this to either true or false.
-// This field indicates if you are running in a MASTER/SLAVE setup or in a NATIVE setup.
-// By toggling this function you will get some more selection features.
-// Default is false.
-// Use these features with care, they havent been tested much yet.
-$MASTER_SLAVE_FUNCTIONS = false;
-
-
-/* ------------------------------------------ */
-/* No need to make changes below this line... */
-/* Which means, dont touch it		      */
-/* ------------------------------------------ */
-
-/* -------------------------------------------------------------------- */
-/* NO REALLY DONT TOUCH IT! Unless you _REALLY_ know what you are doing */
-/* -------------------------------------------------------------------- */
-
-// $rtypes - array of possible record types
-$rtypes = array('A', 'AAAA', 'CNAME', 'HINFO', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'TXT');
-
-// If fancy records is enabled, extend this field.
-if($FANCY_RECORDS)
-{
-	$rtypes[10] = 'URL';
-	$rtypes[11] = 'MBOXFW';
-}
-
-// $template - array of records that will be applied when adding a new zone file
-$template = array(
-                array(
-
-                                "name"          =>              "##DOMAIN##",
-                                "type"          =>              "SOA",
-                                "content"       =>              "$NS1 $HOSTMASTER 1",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "##DOMAIN##",
-                                "type"          =>              "NS",
-                                "content"       =>              "$NS1",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "##DOMAIN##",
-                                "type"          =>              "NS",
-                                "content"       =>              "$NS2",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "www.##DOMAIN##",
-                                "type"          =>              "A",
-                                "content"       =>              "##WEBIP##",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "##DOMAIN##",
-                                "type"          =>              "A",
-                                "content"       =>              "##WEBIP##",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "mail.##DOMAIN##",
-                                "type"          =>              "A",
-                                "content"       =>              "##MAILIP##",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "localhost.##DOMAIN##",
-                                "type"          =>              "A",
-                                "content"       =>              "127.0.0.1",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              ""
-                ),
-                array(
-                                "name"          =>              "##DOMAIN##",
-                                "type"          =>              "MX",
-                                "content"       =>              "mail.##DOMAIN##",
-                                "ttl"           =>              "$DEFAULT_TTL",
-                                "prio"          =>              "10"
-                )
-);
-?>
--- a/inc/dal.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1388 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Database independent query interface
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.0 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category   Database
- * @package    DB
- * @author     Stig Bakken <ssb@php.net>
- * @author     Tomas V.V.Cox <cox@idecnet.com>
- * @author     Daniel Convissor <danielc@php.net>
- * @copyright  1997-2005 The PHP Group
- * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    CVS: $Id: DB.php,v 1.80 2005/02/16 02:16:00 danielc Exp $
- * @link       http://pear.php.net/package/DB
- */
-
-/**
- * Obtain the PEAR class so it can be extended from
- */
-require_once 'PEAR.php';
-
-
-// {{{ constants
-// {{{ error codes
-
-/**#@+
- * One of PEAR DB's portable error codes.
- * @see DB_common::errorCode(), DB::errorMessage()
- *
- * {@internal If you add an error code here, make sure you also add a textual
- * version of it in DB::errorMessage().}}
- */
-
-/**
- * The code returned by many methods upon success
- */
-define('DB_OK', 1);
-
-/**
- * Unkown error
- */
-define('DB_ERROR', -1);
-
-/**
- * Syntax error
- */
-define('DB_ERROR_SYNTAX', -2);
-
-/**
- * Tried to insert a duplicate value into a primary or unique index
- */
-define('DB_ERROR_CONSTRAINT', -3);
-
-/**
- * An identifier in the query refers to a non-existant object
- */
-define('DB_ERROR_NOT_FOUND', -4);
-
-/**
- * Tried to create a duplicate object
- */
-define('DB_ERROR_ALREADY_EXISTS', -5);
-
-/**
- * The current driver does not support the action you attempted
- */
-define('DB_ERROR_UNSUPPORTED', -6);
-
-/**
- * The number of parameters does not match the number of placeholders
- */
-define('DB_ERROR_MISMATCH', -7);
-
-/**
- * A literal submitted did not match the data type expected
- */
-define('DB_ERROR_INVALID', -8);
-
-/**
- * The current DBMS does not support the action you attempted
- */
-define('DB_ERROR_NOT_CAPABLE', -9);
-
-/**
- * A literal submitted was too long so the end of it was removed
- */
-define('DB_ERROR_TRUNCATED', -10);
-
-/**
- * A literal number submitted did not match the data type expected
- */
-define('DB_ERROR_INVALID_NUMBER', -11);
-
-/**
- * A literal date submitted did not match the data type expected
- */
-define('DB_ERROR_INVALID_DATE', -12);
-
-/**
- * Attempt to divide something by zero
- */
-define('DB_ERROR_DIVZERO', -13);
-
-/**
- * A database needs to be selected
- */
-define('DB_ERROR_NODBSELECTED', -14);
-
-/**
- * Could not create the object requested
- */
-define('DB_ERROR_CANNOT_CREATE', -15);
-
-/**
- * Could not drop the database requested because it does not exist
- */
-define('DB_ERROR_CANNOT_DROP', -17);
-
-/**
- * An identifier in the query refers to a non-existant table
- */
-define('DB_ERROR_NOSUCHTABLE', -18);
-
-/**
- * An identifier in the query refers to a non-existant column
- */
-define('DB_ERROR_NOSUCHFIELD', -19);
-
-/**
- * The data submitted to the method was inappropriate
- */
-define('DB_ERROR_NEED_MORE_DATA', -20);
-
-/**
- * The attempt to lock the table failed
- */
-define('DB_ERROR_NOT_LOCKED', -21);
-
-/**
- * The number of columns doesn't match the number of values
- */
-define('DB_ERROR_VALUE_COUNT_ON_ROW', -22);
-
-/**
- * The DSN submitted has problems
- */
-define('DB_ERROR_INVALID_DSN', -23);
-
-/**
- * Could not connect to the database
- */
-define('DB_ERROR_CONNECT_FAILED', -24);
-
-/**
- * The PHP extension needed for this DBMS could not be found
- */
-define('DB_ERROR_EXTENSION_NOT_FOUND',-25);
-
-/**
- * The present user has inadequate permissions to perform the task requestd
- */
-define('DB_ERROR_ACCESS_VIOLATION', -26);
-
-/**
- * The database requested does not exist
- */
-define('DB_ERROR_NOSUCHDB', -27);
-
-/**
- * Tried to insert a null value into a column that doesn't allow nulls
- */
-define('DB_ERROR_CONSTRAINT_NOT_NULL',-29);
-/**#@-*/
-
-
-// }}}
-// {{{ prepared statement-related
-
-
-/**#@+
- * Identifiers for the placeholders used in prepared statements.
- * @see DB_common::prepare()
- */
-
-/**
- * Indicates a scalar (<kbd>?</kbd>) placeholder was used
- *
- * Quote and escape the value as necessary.
- */
-define('DB_PARAM_SCALAR', 1);
-
-/**
- * Indicates an opaque (<kbd>&</kbd>) placeholder was used
- *
- * The value presented is a file name.  Extract the contents of that file
- * and place them in this column.
- */
-define('DB_PARAM_OPAQUE', 2);
-
-/**
- * Indicates a misc (<kbd>!</kbd>) placeholder was used
- *
- * The value should not be quoted or escaped.
- */
-define('DB_PARAM_MISC',   3);
-/**#@-*/
-
-
-// }}}
-// {{{ binary data-related
-
-
-/**#@+
- * The different ways of returning binary data from queries.
- */
-
-/**
- * Sends the fetched data straight through to output
- */
-define('DB_BINMODE_PASSTHRU', 1);
-
-/**
- * Lets you return data as usual
- */
-define('DB_BINMODE_RETURN', 2);
-
-/**
- * Converts the data to hex format before returning it
- *
- * For example the string "123" would become "313233".
- */
-define('DB_BINMODE_CONVERT', 3);
-/**#@-*/
-
-
-// }}}
-// {{{ fetch modes
-
-
-/**#@+
- * Fetch Modes.
- * @see DB_common::setFetchMode()
- */
-
-/**
- * Indicates the current default fetch mode should be used
- * @see DB_common::$fetchmode
- */
-define('DB_FETCHMODE_DEFAULT', 0);
-
-/**
- * Column data indexed by numbers, ordered from 0 and up
- */
-define('DB_FETCHMODE_ORDERED', 1);
-
-/**
- * Column data indexed by column names
- */
-define('DB_FETCHMODE_ASSOC', 2);
-
-/**
- * Column data as object properties
- */
-define('DB_FETCHMODE_OBJECT', 3);
-
-/**
- * For multi-dimensional results, make the column name the first level
- * of the array and put the row number in the second level of the array
- *
- * This is flipped from the normal behavior, which puts the row numbers
- * in the first level of the array and the column names in the second level.
- */
-define('DB_FETCHMODE_FLIPPED', 4);
-/**#@-*/
-
-/**#@+
- * Old fetch modes.  Left here for compatibility.
- */
-define('DB_GETMODE_ORDERED', DB_FETCHMODE_ORDERED);
-define('DB_GETMODE_ASSOC',   DB_FETCHMODE_ASSOC);
-define('DB_GETMODE_FLIPPED', DB_FETCHMODE_FLIPPED);
-/**#@-*/
-
-
-// }}}
-// {{{ tableInfo() && autoPrepare()-related
-
-
-/**#@+
- * The type of information to return from the tableInfo() method.
- *
- * Bitwised constants, so they can be combined using <kbd>|</kbd>
- * and removed using <kbd>^</kbd>.
- *
- * @see DB_common::tableInfo()
- *
- * {@internal Since the TABLEINFO constants are bitwised, if more of them are
- * added in the future, make sure to adjust DB_TABLEINFO_FULL accordingly.}}
- */
-define('DB_TABLEINFO_ORDER', 1);
-define('DB_TABLEINFO_ORDERTABLE', 2);
-define('DB_TABLEINFO_FULL', 3);
-/**#@-*/
-
-
-/**#@+
- * The type of query to create with the automatic query building methods.
- * @see DB_common::autoPrepare(), DB_common::autoExecute()
- */
-define('DB_AUTOQUERY_INSERT', 1);
-define('DB_AUTOQUERY_UPDATE', 2);
-/**#@-*/
-
-
-// }}}
-// {{{ portability modes
-
-
-/**#@+
- * Portability Modes.
- *
- * Bitwised constants, so they can be combined using <kbd>|</kbd>
- * and removed using <kbd>^</kbd>.
- *
- * @see DB_common::setOption()
- *
- * {@internal Since the PORTABILITY constants are bitwised, if more of them are
- * added in the future, make sure to adjust DB_PORTABILITY_ALL accordingly.}}
- */
-
-/**
- * Turn off all portability features
- */
-define('DB_PORTABILITY_NONE', 0);
-
-/**
- * Convert names of tables and fields to lower case
- * when using the get*(), fetch*() and tableInfo() methods
- */
-define('DB_PORTABILITY_LOWERCASE', 1);
-
-/**
- * Right trim the data output by get*() and fetch*()
- */
-define('DB_PORTABILITY_RTRIM', 2);
-
-/**
- * Force reporting the number of rows deleted
- */
-define('DB_PORTABILITY_DELETE_COUNT', 4);
-
-/**
- * Enable hack that makes numRows() work in Oracle
- */
-define('DB_PORTABILITY_NUMROWS', 8);
-
-/**
- * Makes certain error messages in certain drivers compatible
- * with those from other DBMS's
- *
- * + mysql, mysqli:  change unique/primary key constraints
- *   DB_ERROR_ALREADY_EXISTS -> DB_ERROR_CONSTRAINT
- *
- * + odbc(access):  MS's ODBC driver reports 'no such field' as code
- *   07001, which means 'too few parameters.'  When this option is on
- *   that code gets mapped to DB_ERROR_NOSUCHFIELD.
- */
-define('DB_PORTABILITY_ERRORS', 16);
-
-/**
- * Convert null values to empty strings in data output by
- * get*() and fetch*()
- */
-define('DB_PORTABILITY_NULL_TO_EMPTY', 32);
-
-/**
- * Turn on all portability features
- */
-define('DB_PORTABILITY_ALL', 63);
-/**#@-*/
-
-// }}}
-
-
-// }}}
-// {{{ class DB
-
-/**
- * Database independent query interface
- *
- * The main "DB" class is simply a container class with some static
- * methods for creating DB objects as well as some utility functions
- * common to all parts of DB.
- *
- * The object model of DB is as follows (indentation means inheritance):
- * <pre>
- * DB           The main DB class.  This is simply a utility class
- *              with some "static" methods for creating DB objects as
- *              well as common utility functions for other DB classes.
- *
- * DB_common    The base for each DB implementation.  Provides default
- * |            implementations (in OO lingo virtual methods) for
- * |            the actual DB implementations as well as a bunch of
- * |            query utility functions.
- * |
- * +-DB_mysql   The DB implementation for MySQL.  Inherits DB_common.
- *              When calling DB::factory or DB::connect for MySQL
- *              connections, the object returned is an instance of this
- *              class.
- * </pre>
- *
- * @category   Database
- * @package    DB
- * @author     Stig Bakken <ssb@php.net>
- * @author     Tomas V.V.Cox <cox@idecnet.com>
- * @author     Daniel Convissor <danielc@php.net>
- * @copyright  1997-2005 The PHP Group
- * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: @package_version@
- * @link       http://pear.php.net/package/DB
- */
-class DB
-{
-    // {{{ &factory()
-
-    /**
-     * Create a new DB object for the specified database type but don't
-     * connect to the database
-     *
-     * @param string $type     the database type (eg "mysql")
-     * @param array  $options  an associative array of option names and values
-     *
-     * @return object  a new DB object.  A DB_Error object on failure.
-     *
-     * @see DB_common::setOption()
-     */
-    function &factory($type, $options = false)
-    {
-        if (!is_array($options)) {
-            $options = array('persistent' => $options);
-        }
-
-        if (isset($options['debug']) && $options['debug'] >= 2) {
-            // expose php errors with sufficient debug level
-            include_once "DB/{$type}.php";
-        } else {
-            @include_once "DB/{$type}.php";
-        }
-
-        $classname = "DB_${type}";
-
-        if (!class_exists($classname)) {
-            $tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null,
-                                    "Unable to include the DB/{$type}.php"
-                                    . " file for '$dsn'",
-                                    'DB_Error', true);
-            return $tmp;
-        }
-
-        @$obj =& new $classname;
-
-        foreach ($options as $option => $value) {
-            $test = $obj->setOption($option, $value);
-            if (DB::isError($test)) {
-                return $test;
-            }
-        }
-
-        return $obj;
-    }
-
-    // }}}
-    // {{{ &connect()
-
-    /**
-     * Create a new DB object including a connection to the specified database
-     *
-     * Example 1.
-     * <code>
-     * require_once 'DB.php';
-     *
-     * $dsn = 'pgsql://user:password@host/database';
-     * $options = array(
-     *     'debug'       => 2,
-     *     'portability' => DB_PORTABILITY_ALL,
-     * );
-     *
-     * $db =& DB::connect($dsn, $options);
-     * if (PEAR::isError($db)) {
-     *     die($db->getMessage());
-     * }
-     * </code>
-     *
-     * @param mixed $dsn      the string "data source name" or array in the
-     *                         format returned by DB::parseDSN()
-     * @param array $options  an associative array of option names and values
-     *
-     * @return object  a new DB object.  A DB_Error object on failure.
-     *
-     * @uses DB_dbase::connect(), DB_fbsql::connect(), DB_ibase::connect(),
-     *       DB_ifx::connect(), DB_msql::connect(), DB_mssql::connect(),
-     *       DB_mysql::connect(), DB_mysqli::connect(), DB_oci8::connect(),
-     *       DB_odbc::connect(), DB_pgsql::connect(), DB_sqlite::connect(),
-     *       DB_sybase::connect()
-     *
-     * @uses DB::parseDSN(), DB_common::setOption(), PEAR::isError()
-     */
-    function &connect($dsn, $options = array())
-    {
-        $dsninfo = DB::parseDSN($dsn);
-        $type = $dsninfo['phptype'];
-
-        if (!is_array($options)) {
-            /*
-             * For backwards compatibility.  $options used to be boolean,
-             * indicating whether the connection should be persistent.
-             */
-            $options = array('persistent' => $options);
-        }
-
-        if (isset($options['debug']) && $options['debug'] >= 2) {
-            // expose php errors with sufficient debug level
-            include_once "DB/${type}.php";
-        } else {
-            @include_once "DB/${type}.php";
-        }
-
-        $classname = "DB_${type}";
-        if (!class_exists($classname)) {
-            $tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null,
-                                    "Unable to include the DB/{$type}.php"
-                                    . " file for '$dsn'",
-                                    'DB_Error', true);
-            return $tmp;
-        }
-
-        @$obj =& new $classname;
-
-        foreach ($options as $option => $value) {
-            $test = $obj->setOption($option, $value);
-            if (DB::isError($test)) {
-                return $test;
-            }
-        }
-
-        $err = $obj->connect($dsninfo, $obj->getOption('persistent'));
-        if (DB::isError($err)) {
-            $err->addUserInfo($dsn);
-            return $err;
-        }
-
-        return $obj;
-    }
-
-    // }}}
-    // {{{ apiVersion()
-
-    /**
-     * Return the DB API version
-     *
-     * @return string  the DB API version number
-     */
-    function apiVersion()
-    {
-        return '@package_version@';
-    }
-
-    // }}}
-    // {{{ isError()
-
-    /**
-     * Determines if a variable is a DB_Error object
-     *
-     * @param mixed $value  the variable to check
-     *
-     * @return bool  whether $value is DB_Error object
-     */
-    function isError($value)
-    {
-        return is_a($value, 'DB_Error');
-    }
-
-    // }}}
-    // {{{ isConnection()
-
-    /**
-     * Determines if a value is a DB_<driver> object
-     *
-     * @param mixed $value  the value to test
-     *
-     * @return bool  whether $value is a DB_<driver> object
-     */
-    function isConnection($value)
-    {
-        return (is_object($value) &&
-                is_subclass_of($value, 'db_common') &&
-                method_exists($value, 'simpleQuery'));
-    }
-
-    // }}}
-    // {{{ isManip()
-
-    /**
-     * Tell whether a query is a data manipulation or data definition query
-     *
-     * Examples of data manipulation queries are INSERT, UPDATE and DELETE.
-     * Examples of data definition queries are CREATE, DROP, ALTER, GRANT,
-     * REVOKE.
-     *
-     * @param string $query  the query
-     *
-     * @return boolean  whether $query is a data manipulation query
-     */
-    function isManip($query)
-    {
-        $manips = 'INSERT|UPDATE|DELETE|REPLACE|'
-                . 'CREATE|DROP|'
-                . 'LOAD DATA|SELECT .* INTO|COPY|'
-                . 'ALTER|GRANT|REVOKE|'
-                . 'LOCK|UNLOCK';
-        if (preg_match('/^\s*"?(' . $manips . ')\s+/i', $query)) {
-            return true;
-        }
-        return false;
-    }
-
-    // }}}
-    // {{{ errorMessage()
-
-    /**
-     * Return a textual error message for a DB error code
-     *
-     * @param integer $value  the DB error code
-     *
-     * @return string  the error message or false if the error code was
-     *                  not recognized
-     */
-    function errorMessage($value)
-    {
-        static $errorMessages;
-        if (!isset($errorMessages)) {
-            $errorMessages = array(
-                DB_ERROR                    => 'unknown error',
-                DB_ERROR_ACCESS_VIOLATION   => 'insufficient permissions',
-                DB_ERROR_ALREADY_EXISTS     => 'already exists',
-                DB_ERROR_CANNOT_CREATE      => 'can not create',
-                DB_ERROR_CANNOT_DROP        => 'can not drop',
-                DB_ERROR_CONNECT_FAILED     => 'connect failed',
-                DB_ERROR_CONSTRAINT         => 'constraint violation',
-                DB_ERROR_CONSTRAINT_NOT_NULL=> 'null value violates not-null constraint',
-                DB_ERROR_DIVZERO            => 'division by zero',
-                DB_ERROR_EXTENSION_NOT_FOUND=> 'extension not found',
-                DB_ERROR_INVALID            => 'invalid',
-                DB_ERROR_INVALID_DATE       => 'invalid date or time',
-                DB_ERROR_INVALID_DSN        => 'invalid DSN',
-                DB_ERROR_INVALID_NUMBER     => 'invalid number',
-                DB_ERROR_MISMATCH           => 'mismatch',
-                DB_ERROR_NEED_MORE_DATA     => 'insufficient data supplied',
-                DB_ERROR_NODBSELECTED       => 'no database selected',
-                DB_ERROR_NOSUCHDB           => 'no such database',
-                DB_ERROR_NOSUCHFIELD        => 'no such field',
-                DB_ERROR_NOSUCHTABLE        => 'no such table',
-                DB_ERROR_NOT_CAPABLE        => 'DB backend not capable',
-                DB_ERROR_NOT_FOUND          => 'not found',
-                DB_ERROR_NOT_LOCKED         => 'not locked',
-                DB_ERROR_SYNTAX             => 'syntax error',
-                DB_ERROR_UNSUPPORTED        => 'not supported',
-                DB_ERROR_TRUNCATED          => 'truncated',
-                DB_ERROR_VALUE_COUNT_ON_ROW => 'value count on row',
-                DB_OK                       => 'no error',
-            );
-        }
-
-        if (DB::isError($value)) {
-            $value = $value->getCode();
-        }
-
-        return isset($errorMessages[$value]) ? $errorMessages[$value]
-                     : $errorMessages[DB_ERROR];
-    }
-
-    // }}}
-    // {{{ parseDSN()
-
-    /**
-     * Parse a data source name
-     *
-     * Additional keys can be added by appending a URI query string to the
-     * end of the DSN.
-     *
-     * The format of the supplied DSN is in its fullest form:
-     * <code>
-     *  phptype(dbsyntax)://username:password@protocol+hostspec/database?option=8&another=true
-     * </code>
-     *
-     * Most variations are allowed:
-     * <code>
-     *  phptype://username:password@protocol+hostspec:110//usr/db_file.db?mode=0644
-     *  phptype://username:password@hostspec/database_name
-     *  phptype://username:password@hostspec
-     *  phptype://username@hostspec
-     *  phptype://hostspec/database
-     *  phptype://hostspec
-     *  phptype(dbsyntax)
-     *  phptype
-     * </code>
-     *
-     * @param string $dsn Data Source Name to be parsed
-     *
-     * @return array an associative array with the following keys:
-     *  + phptype:  Database backend used in PHP (mysql, odbc etc.)
-     *  + dbsyntax: Database used with regards to SQL syntax etc.
-     *  + protocol: Communication protocol to use (tcp, unix etc.)
-     *  + hostspec: Host specification (hostname[:port])
-     *  + database: Database to use on the DBMS server
-     *  + username: User name for login
-     *  + password: Password for login
-     */
-    function parseDSN($dsn)
-    {
-        $parsed = array(
-            'phptype'  => false,
-            'dbsyntax' => false,
-            'username' => false,
-            'password' => false,
-            'protocol' => false,
-            'hostspec' => false,
-            'port'     => false,
-            'socket'   => false,
-            'database' => false,
-        );
-
-        if (is_array($dsn)) {
-            $dsn = array_merge($parsed, $dsn);
-            if (!$dsn['dbsyntax']) {
-                $dsn['dbsyntax'] = $dsn['phptype'];
-            }
-            return $dsn;
-        }
-
-        // Find phptype and dbsyntax
-        if (($pos = strpos($dsn, '://')) !== false) {
-            $str = substr($dsn, 0, $pos);
-            $dsn = substr($dsn, $pos + 3);
-        } else {
-            $str = $dsn;
-            $dsn = null;
-        }
-
-        // Get phptype and dbsyntax
-        // $str => phptype(dbsyntax)
-        if (preg_match('|^(.+?)\((.*?)\)$|', $str, $arr)) {
-            $parsed['phptype']  = $arr[1];
-            $parsed['dbsyntax'] = !$arr[2] ? $arr[1] : $arr[2];
-        } else {
-            $parsed['phptype']  = $str;
-            $parsed['dbsyntax'] = $str;
-        }
-
-        if (!count($dsn)) {
-            return $parsed;
-        }
-
-        // Get (if found): username and password
-        // $dsn => username:password@protocol+hostspec/database
-        if (($at = strrpos($dsn,'@')) !== false) {
-            $str = substr($dsn, 0, $at);
-            $dsn = substr($dsn, $at + 1);
-            if (($pos = strpos($str, ':')) !== false) {
-                $parsed['username'] = rawurldecode(substr($str, 0, $pos));
-                $parsed['password'] = rawurldecode(substr($str, $pos + 1));
-            } else {
-                $parsed['username'] = rawurldecode($str);
-            }
-        }
-
-        // Find protocol and hostspec
-
-        if (preg_match('|^([^(]+)\((.*?)\)/?(.*?)$|', $dsn, $match)) {
-            // $dsn => proto(proto_opts)/database
-            $proto       = $match[1];
-            $proto_opts  = $match[2] ? $match[2] : false;
-            $dsn         = $match[3];
-
-        } else {
-            // $dsn => protocol+hostspec/database (old format)
-            if (strpos($dsn, '+') !== false) {
-                list($proto, $dsn) = explode('+', $dsn, 2);
-            }
-            if (strpos($dsn, '/') !== false) {
-                list($proto_opts, $dsn) = explode('/', $dsn, 2);
-            } else {
-                $proto_opts = $dsn;
-                $dsn = null;
-            }
-        }
-
-        // process the different protocol options
-        $parsed['protocol'] = (!empty($proto)) ? $proto : 'tcp';
-        $proto_opts = rawurldecode($proto_opts);
-        if ($parsed['protocol'] == 'tcp') {
-            if (strpos($proto_opts, ':') !== false) {
-                list($parsed['hostspec'],
-                     $parsed['port']) = explode(':', $proto_opts);
-            } else {
-                $parsed['hostspec'] = $proto_opts;
-            }
-        } elseif ($parsed['protocol'] == 'unix') {
-            $parsed['socket'] = $proto_opts;
-        }
-
-        // Get dabase if any
-        // $dsn => database
-        if ($dsn) {
-            if (($pos = strpos($dsn, '?')) === false) {
-                // /database
-                $parsed['database'] = rawurldecode($dsn);
-            } else {
-                // /database?param1=value1&param2=value2
-                $parsed['database'] = rawurldecode(substr($dsn, 0, $pos));
-                $dsn = substr($dsn, $pos + 1);
-                if (strpos($dsn, '&') !== false) {
-                    $opts = explode('&', $dsn);
-                } else { // database?param1=value1
-                    $opts = array($dsn);
-                }
-                foreach ($opts as $opt) {
-                    list($key, $value) = explode('=', $opt);
-                    if (!isset($parsed[$key])) {
-                        // don't allow params overwrite
-                        $parsed[$key] = rawurldecode($value);
-                    }
-                }
-            }
-        }
-
-        return $parsed;
-    }
-
-    // }}}
-}
-
-// }}}
-// {{{ class DB_Error
-
-/**
- * DB_Error implements a class for reporting portable database error
- * messages
- *
- * @category   Database
- * @package    DB
- * @author     Stig Bakken <ssb@php.net>
- * @copyright  1997-2005 The PHP Group
- * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: @package_version@
- * @link       http://pear.php.net/package/DB
- */
-class DB_Error extends PEAR_Error
-{
-    // {{{ constructor
-
-    /**
-     * DB_Error constructor
-     *
-     * @param mixed $code       DB error code, or string with error message
-     * @param int   $mode       what "error mode" to operate in
-     * @param int   $level      what error level to use for $mode &
-     *                           PEAR_ERROR_TRIGGER
-     * @param mixed $debuginfo  additional debug info, such as the last query
-     *
-     * @see PEAR_Error
-     */
-    function DB_Error($code = DB_ERROR, $mode = PEAR_ERROR_RETURN,
-                      $level = E_USER_NOTICE, $debuginfo = null)
-    {
-        if (is_int($code)) {
-            $this->PEAR_Error('DB Error: ' . DB::errorMessage($code), $code,
-                              $mode, $level, $debuginfo);
-        } else {
-            $this->PEAR_Error("DB Error: $code", DB_ERROR,
-                              $mode, $level, $debuginfo);
-        }
-    }
-
-    // }}}
-}
-
-// }}}
-// {{{ class DB_result
-
-/**
- * This class implements a wrapper for a DB result set
- *
- * A new instance of this class will be returned by the DB implementation
- * after processing a query that returns data.
- *
- * @category   Database
- * @package    DB
- * @author     Stig Bakken <ssb@php.net>
- * @copyright  1997-2005 The PHP Group
- * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: @package_version@
- * @link       http://pear.php.net/package/DB
- */
-class DB_result
-{
-    // {{{ properties
-
-    /**
-     * Should results be freed automatically when there are no more rows?
-     * @var boolean
-     * @see DB_common::$options
-     */
-    var $autofree;
-
-    /**
-     * A reference to the DB_<driver> object
-     * @var object
-     */
-    var $dbh;
-
-    /**
-     * The current default fetch mode
-     * @var integer
-     * @see DB_common::$fetchmode
-     */
-    var $fetchmode;
-
-    /**
-     * The name of the class into which results should be fetched when
-     * DB_FETCHMODE_OBJECT is in effect
-     *
-     * @var string
-     * @see DB_common::$fetchmode_object_class
-     */
-    var $fetchmode_object_class;
-
-    /**
-     * The number of rows to fetch from a limit query
-     * @var integer
-     */
-    var $limit_count = null;
-
-    /**
-     * The row to start fetching from in limit queries
-     * @var integer
-     */
-    var $limit_from = null;
-
-    /**
-     * The execute parameters that created this result
-     * @var array
-     * @since Property available since Release 1.7.0
-     */
-    var $parameters;
-
-    /**
-     * The query string that created this result
-     *
-     * Copied here incase it changes in $dbh, which is referenced
-     *
-     * @var string
-     * @since Property available since Release 1.7.0
-     */
-    var $query;
-
-    /**
-     * The query result resource id created by PHP
-     * @var resource
-     */
-    var $result;
-
-    /**
-     * The present row being dealt with
-     * @var integer
-     */
-    var $row_counter = null;
-
-    /**
-     * The prepared statement resource id created by PHP in $dbh
-     *
-     * This resource is only available when the result set was created using
-     * a driver's native execute() method, not PEAR DB's emulated one.
-     *
-     * Copied here incase it changes in $dbh, which is referenced
-     *
-     * {@internal  Mainly here because the InterBase/Firebird API is only
-     * able to retrieve data from result sets if the statemnt handle is
-     * still in scope.}}
-     *
-     * @var resource
-     * @since Property available since Release 1.7.0
-     */
-    var $statement;
-
-
-    // }}}
-    // {{{ constructor
-
-    /**
-     * This constructor sets the object's properties
-     *
-     * @param object   &$dbh     the DB object reference
-     * @param resource $result   the result resource id
-     * @param array    $options  an associative array with result options
-     *
-     * @return void
-     */
-    function DB_result(&$dbh, $result, $options = array())
-    {
-        $this->autofree    = $dbh->options['autofree'];
-        $this->dbh         = &$dbh;
-        $this->fetchmode   = $dbh->fetchmode;
-        $this->fetchmode_object_class = $dbh->fetchmode_object_class;
-        $this->parameters  = $dbh->last_parameters;
-        $this->query       = $dbh->last_query;
-        $this->result      = $result;
-        $this->statement   = empty($dbh->last_stmt) ? null : $dbh->last_stmt;
-        foreach ($options as $key => $value) {
-            $this->setOption($key, $value);
-        }
-    }
-
-    /**
-     * Set options for the DB_result object
-     *
-     * @param string $key    the option to set
-     * @param mixed  $value  the value to set the option to
-     *
-     * @return void
-     */
-    function setOption($key, $value = null)
-    {
-        switch ($key) {
-            case 'limit_from':
-                $this->limit_from = $value;
-                break;
-            case 'limit_count':
-                $this->limit_count = $value;
-        }
-    }
-
-    // }}}
-    // {{{ fetchRow()
-
-    /**
-     * Fetch a row of data and return it by reference into an array
-     *
-     * The type of array returned can be controlled either by setting this
-     * method's <var>$fetchmode</var> parameter or by changing the default
-     * fetch mode setFetchMode() before calling this method.
-     *
-     * There are two options for standardizing the information returned
-     * from databases, ensuring their values are consistent when changing
-     * DBMS's.  These portability options can be turned on when creating a
-     * new DB object or by using setOption().
-     *
-     *   + <var>DB_PORTABILITY_LOWERCASE</var>
-     *     convert names of fields to lower case
-     *
-     *   + <var>DB_PORTABILITY_RTRIM</var>
-     *     right trim the data
-     *
-     * @param int $fetchmode  the constant indicating how to format the data
-     * @param int $rownum     the row number to fetch (index starts at 0)
-     *
-     * @return mixed  an array or object containing the row's data,
-     *                 NULL when the end of the result set is reached
-     *                 or a DB_Error object on failure.
-     *
-     * @see DB_common::setOption(), DB_common::setFetchMode()
-     */
-    function &fetchRow($fetchmode = DB_FETCHMODE_DEFAULT, $rownum = null)
-    {
-        if ($fetchmode === DB_FETCHMODE_DEFAULT) {
-            $fetchmode = $this->fetchmode;
-        }
-        if ($fetchmode === DB_FETCHMODE_OBJECT) {
-            $fetchmode = DB_FETCHMODE_ASSOC;
-            $object_class = $this->fetchmode_object_class;
-        }
-        if ($this->limit_from !== null) {
-            if ($this->row_counter === null) {
-                $this->row_counter = $this->limit_from;
-                // Skip rows
-                if ($this->dbh->features['limit'] === false) {
-                    $i = 0;
-                    while ($i++ < $this->limit_from) {
-                        $this->dbh->fetchInto($this->result, $arr, $fetchmode);
-                    }
-                }
-            }
-            if ($this->row_counter >= ($this->limit_from + $this->limit_count))
-            {
-                if ($this->autofree) {
-                    $this->free();
-                }
-                $tmp = null;
-                return $tmp;
-            }
-            if ($this->dbh->features['limit'] === 'emulate') {
-                $rownum = $this->row_counter;
-            }
-            $this->row_counter++;
-        }
-        $res = $this->dbh->fetchInto($this->result, $arr, $fetchmode, $rownum);
-        if ($res === DB_OK) {
-            if (isset($object_class)) {
-                // The default mode is specified in the
-                // DB_common::fetchmode_object_class property
-                if ($object_class == 'stdClass') {
-                    $arr = (object) $arr;
-                } else {
-                    $arr = &new $object_class($arr);
-                }
-            }
-            return $arr;
-        }
-        if ($res == null && $this->autofree) {
-            $this->free();
-        }
-        return $res;
-    }
-
-    // }}}
-    // {{{ fetchInto()
-
-    /**
-     * Fetch a row of data into an array which is passed by reference
-     *
-     * The type of array returned can be controlled either by setting this
-     * method's <var>$fetchmode</var> parameter or by changing the default
-     * fetch mode setFetchMode() before calling this method.
-     *
-     * There are two options for standardizing the information returned
-     * from databases, ensuring their values are consistent when changing
-     * DBMS's.  These portability options can be turned on when creating a
-     * new DB object or by using setOption().
-     *
-     *   + <var>DB_PORTABILITY_LOWERCASE</var>
-     *     convert names of fields to lower case
-     *
-     *   + <var>DB_PORTABILITY_RTRIM</var>
-     *     right trim the data
-     *
-     * @param array &$arr       the variable where the data should be placed
-     * @param int   $fetchmode  the constant indicating how to format the data
-     * @param int   $rownum     the row number to fetch (index starts at 0)
-     *
-     * @return mixed  DB_OK if a row is processed, NULL when the end of the
-     *                 result set is reached or a DB_Error object on failure
-     *
-     * @see DB_common::setOption(), DB_common::setFetchMode()
-     */
-    function fetchInto(&$arr, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum = null)
-    {
-        if ($fetchmode === DB_FETCHMODE_DEFAULT) {
-            $fetchmode = $this->fetchmode;
-        }
-        if ($fetchmode === DB_FETCHMODE_OBJECT) {
-            $fetchmode = DB_FETCHMODE_ASSOC;
-            $object_class = $this->fetchmode_object_class;
-        }
-        if ($this->limit_from !== null) {
-            if ($this->row_counter === null) {
-                $this->row_counter = $this->limit_from;
-                // Skip rows
-                if ($this->dbh->features['limit'] === false) {
-                    $i = 0;
-                    while ($i++ < $this->limit_from) {
-                        $this->dbh->fetchInto($this->result, $arr, $fetchmode);
-                    }
-                }
-            }
-            if ($this->row_counter >= (
-                    $this->limit_from + $this->limit_count))
-            {
-                if ($this->autofree) {
-                    $this->free();
-                }
-                return null;
-            }
-            if ($this->dbh->features['limit'] === 'emulate') {
-                $rownum = $this->row_counter;
-            }
-
-            $this->row_counter++;
-        }
-        $res = $this->dbh->fetchInto($this->result, $arr, $fetchmode, $rownum);
-        if ($res === DB_OK) {
-            if (isset($object_class)) {
-                // default mode specified in the
-                // DB_common::fetchmode_object_class property
-                if ($object_class == 'stdClass') {
-                    $arr = (object) $arr;
-                } else {
-                    $arr = new $object_class($arr);
-                }
-            }
-            return DB_OK;
-        }
-        if ($res == null && $this->autofree) {
-            $this->free();
-        }
-        return $res;
-    }
-
-    // }}}
-    // {{{ numCols()
-
-    /**
-     * Get the the number of columns in a result set
-     *
-     * @return int  the number of columns.  A DB_Error object on failure.
-     */
-    function numCols()
-    {
-        return $this->dbh->numCols($this->result);
-    }
-
-    // }}}
-    // {{{ numRows()
-
-    /**
-     * Get the number of rows in a result set
-     *
-     * @return int  the number of rows.  A DB_Error object on failure.
-     */
-    function numRows()
-    {
-        if ($this->dbh->features['numrows'] === 'emulate'
-            && $this->dbh->options['portability'] & DB_PORTABILITY_NUMROWS)
-        {
-            if ($this->dbh->features['prepare']) {
-                $res = $this->dbh->query($this->query, $this->parameters);
-            } else {
-                $res = $this->dbh->query($this->query);
-            }
-            if (DB::isError($res)) {
-                return $res;
-            }
-            $i = 0;
-            while ($res->fetchInto($tmp, DB_FETCHMODE_ORDERED)) {
-                $i++;
-            }
-            return $i;
-        } else {
-            return $this->dbh->numRows($this->result);
-        }
-    }
-
-    // }}}
-    // {{{ nextResult()
-
-    /**
-     * Get the next result if a batch of queries was executed
-     *
-     * @return bool  true if a new result is available or false if not
-     */
-    function nextResult()
-    {
-        return $this->dbh->nextResult($this->result);
-    }
-
-    // }}}
-    // {{{ free()
-
-    /**
-     * Frees the resources allocated for this result set
-     *
-     * @return bool  true on success.  A DB_Error object on failure.
-     */
-    function free()
-    {
-        $err = $this->dbh->freeResult($this->result);
-        if (DB::isError($err)) {
-            return $err;
-        }
-        $this->result = false;
-        $this->statement = false;
-        return true;
-    }
-
-    // }}}
-    // {{{ tableInfo()
-
-    /**
-     * @see DB_common::tableInfo()
-     * @deprecated Method deprecated some time before Release 1.2
-     */
-    function tableInfo($mode = null)
-    {
-        if (is_string($mode)) {
-            return $this->dbh->raiseError(DB_ERROR_NEED_MORE_DATA);
-        }
-        return $this->dbh->tableInfo($this, $mode);
-    }
-
-    // }}}
-    // {{{ getQuery()
-
-    /**
-     * Determine the query string that created this result
-     *
-     * @return string  the query string
-     *
-     * @since Method available since Release 1.7.0
-     */
-    function getQuery()
-    {
-        return $this->query;
-    }
-
-    // }}}
-    // {{{ getRowCounter()
-
-    /**
-     * Tells which row number is currently being processed
-     *
-     * @return integer  the current row being looked at.  Starts at 1.
-     */
-    function getRowCounter()
-    {
-        return $this->row_counter;
-    }
-
-    // }}}
-}
-
-// }}}
-// {{{ class DB_row
-
-/**
- * PEAR DB Row Object
- *
- * The object contains a row of data from a result set.  Each column's data
- * is placed in a property named for the column.
- *
- * @category   Database
- * @package    DB
- * @author     Stig Bakken <ssb@php.net>
- * @copyright  1997-2005 The PHP Group
- * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
- * @version    Release: @package_version@
- * @link       http://pear.php.net/package/DB
- * @see        DB_common::setFetchMode()
- */
-class DB_row
-{
-    // {{{ constructor
-
-    /**
-     * The constructor places a row's data into properties of this object
-     *
-     * @param array  the array containing the row's data
-     *
-     * @return void
-     */
-    function DB_row(&$arr)
-    {
-        foreach ($arr as $key => $value) {
-            $this->$key = &$arr[$key];
-        }
-    }
-
-    // }}}
-}
-
-// }}}
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- */
-
-?>
--- a/inc/database.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/inc/database.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -21,7 +21,7 @@
 // $Id: database.inc.php,v 1.3 2002/12/27 02:45:08 azurazu Exp $
 //
 
-require_once("dal.inc.php");
+require_once("MDB2.php");
 
 function dbError($msg)
 {
@@ -35,22 +35,19 @@
         die();
 }
 
-// Setup error handling.
 PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'dbError');
 
-//$dsn = "mysql://padev:blapadev@localhost/padev" ;
 $dsn = "$dbdsntype://$dbuser:$dbpass@$dbhost/$dbdatabase";
-$db = DB::connect($dsn);
+$db = MDB2::connect($dsn);
 
-if (DB::isError($db))
+if (MDB2::isError($db))
 {
 	// Error handling should be put.
         error(MYSQL_ERROR_FATAL, $db->getMessage());
 }
 
 // Do an ASSOC fetch. Gives us the ability to use ["id"] fields.
-$db->setFetchMode(DB_FETCHMODE_ASSOC);
-
+$db->setFetchMode(MDB2_FETCHMODE_ASSOC);
 
 /* erase info */
 $mysql_pass = $dsn = '';
--- a/inc/dns.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/inc/dns.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -28,7 +28,7 @@
  * Validates an IPv4 IP.
  * returns true if valid.
  */
-function validate_input($recordid, $zoneid, $type, &$content, &$name, &$prio, &$ttl)
+function validate_input($zoneid, $type, &$content, &$name, &$prio, &$ttl)
 {
 	global $db;
 
@@ -387,7 +387,7 @@
 	global $db;
 	// See if the destination to which this MX is pointing is NOT a CNAME record.
 	// Check inside our dns server.
-	if($db->getOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0)
+	if($db->queryOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0)
 	{
 		return -1;
 	}
@@ -430,7 +430,7 @@
 		// "an IN NS field must be a hostname."
 	}
 
-	if($db->getOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0)
+	if($db->queryOne("SELECT count(id) FROM records WHERE name='$content' AND type='CNAME'") > 0)
 	{
 		return -2;
 		// "You can not point a NS record to a CNAME record. Remove/rename the CNAME record first or take another name."
--- a/inc/i18n.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/inc/i18n.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -1,5 +1,5 @@
 <?
-$language = "nl_NL";
+$language = "en_EN";
 setlocale(LC_ALL, $language);
 $gettext_domain = 'messages';
 bindtextdomain($gettext_domain, "./locale");
--- a/inc/record.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/inc/record.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -46,10 +46,10 @@
 	 */
 
 	$sqlq = "SELECT `notified_serial` FROM `domains` WHERE `id` = '".$domain_id."'";
-	$notified_serial = $db->getOne($sqlq);
+	$notified_serial = $db->queryOne($sqlq);
 
 	$sqlq = "SELECT `content` FROM `records` WHERE `type` = 'SOA' AND `domain_id` = '".$domain_id."'";
-	$content = $db->getOne($sqlq);
+	$content = $db->queryOne($sqlq);
     $need_to_update = false;
 	
 	// Getting the serial field.
@@ -171,17 +171,14 @@
 	}
 	if (is_numeric($zoneid))
 	{
-
-		// Get the Insert ID, we can not rely on auto_increment
-		$idrecords = $db->nextID('records');
+		// Check the user input.
+		validate_input($zoneid, $type, $content, $name, $prio, $ttl);
 
-		// Check the user input.
-		validate_input($idrecords, $zoneid, $type, $content, $name, $prio, $ttl);
-
-		// Generate new timestamp for the Daemon
+		// Generate new timestamp for the daemon
 		$change = time();
+		
 		// Execute query.
-		$db->query("INSERT INTO records (id, domain_id, name, type, content, ttl, prio, change_date) VALUES ($idrecords, $zoneid, '$name', '$type', '$content', $ttl, '$prio', $change)");
+		$db->query("INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) VALUES ($zoneid, '$name', '$type', '$content', $ttl, '$prio', $change)");
 		if ($type != 'SOA')
 		{
 			update_soa_serial($zoneid);
@@ -270,40 +267,38 @@
 	// Continue this function
 	if (($domain && $owner && $webip && $mailip) || ($empty && $owner && $domain) || (eregi('in-addr.arpa', $domain) && $owner))
 	{
-		// Retrieve next zones id.
-		$idzones = $db->nextID('zones');
-		$iddomains = $db->nextID('domains');
-
-		$db->query("INSERT INTO zones (id, domain_id, owner) VALUES ('$idzones', '$iddomains', $owner)");
+                
+                // First insert zone into domain table
+                $db->query("INSERT INTO domains (name, type) VALUES ('$domain', '$type')");
 
-		/*
-		 * TODO : NATIVE OPERATION ONLY FOR NOW
-		 */
+                // Determine id of insert zone (in other words, find domain_id)
+                $iddomain = $db->lastInsertId('domains', 'id');
+                if (PEAR::isError($iddomain)) {
+                        die($id->getMessage());
+                }
 
-		$db->query("INSERT INTO domains (id, name, type) VALUES ('$iddomains', '$domain', '$type')");
+                // Second, insert into zones tables
+                $db->query("INSERT INTO zones (domain_id, owner) VALUES ('$iddomain', $owner)");
 
-		// Generate new timestamp. We need this one anyhow.
-		$now = time();
+                // Generate new timestamp. We need this one anyhow.
+                $now = time();
 
-		if ($empty && $iddomains)
+		if ($empty && $iddomain)
 		{
-			// If we come into this if statement we dont want to apply templates.
-			// Retrieve configuration settings.
-			$ns1 = $GLOBALS["NS1"];
-			$hm  = $GLOBALS["HOSTMASTER"];
-			$ttl = $GLOBALS["DEFAULT_TTL"];
-
-			// Retrieve next records id
-			$idrecords = $db->nextID('records');
+                        // If we come into this if statement we dont want to apply templates.
+                        // Retrieve configuration settings.
+                        $ns1 = $GLOBALS["NS1"];
+                        $hm  = $GLOBALS["HOSTMASTER"];
+                        $ttl = $GLOBALS["DEFAULT_TTL"];
 
-			// Build and execute query
-			$sql = "INSERT INTO records (id, domain_id, name, content, type, ttl, prio, change_date) VALUES ('$idrecords', '$iddomains', '$domain', '$ns1 $hm 1', 'SOA', $ttl, '', '$now')";
-			$db->query($sql);
+                        // Build and execute query
+                        $sql = "INSERT INTO records (domain_id, name, content, type, ttl, prio, change_date) VALUES ('$iddomain', '$domain', '$ns1 $hm 1', 'SOA', $ttl, '', '$now')";
+                        $db->query($sql);
 
-			// Done
-			return true;
+                        // Done
+                        return true;
 		}
-		elseif ($iddomains)
+		elseif ($iddomain)
 		{
 			// If we are here we want to apply templates.
 			global $template;
@@ -327,9 +322,7 @@
 						$ttl = $GLOBALS["DEFAULT_TTL"];
 					}
 
-					// Retrieve new record id;
-					$idrecords = $db->nextID('records');
-					$sql = "INSERT INTO records (id, domain_id, name, content, type, ttl, prio, change_date) VALUES ('$idrecords', '$iddomains', '$name','$content','$type','$ttl','$prio','$now')";
+					$sql = "INSERT INTO records (domain_id, name, content, type, ttl, prio, change_date) VALUES ('$iddomain', '$name','$content','$type','$ttl','$prio','$now')";
 					$db->query($sql);
 				}
 			}
@@ -465,10 +458,9 @@
 
 	if (is_numeric($domain) && is_numeric($newowner) && is_valid_user($newowner))
 	{
-		$iid = $db->nextID('zones');
-		if($db->getOne("SELECT COUNT(id) FROM zones WHERE owner=$newowner AND domain_id=$domain") == 0)
+		if($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=$newowner AND domain_id=$domain") == 0)
 		{
-			$db->query("INSERT INTO zones(id, domain_id, owner) VALUES($iid, $domain, $newowner)");
+			$db->query("INSERT INTO zones (domain_id, owner) VALUES($domain, $newowner)");
 		}
 		return true;
 	}
@@ -482,7 +474,7 @@
 function delete_owner($domain, $owner)
 {
 	global $db;
-	if($db->getOne("SELECT COUNT(id) FROM zones WHERE owner=$owner AND domain_id=$domain") != 0)
+	if($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=$owner AND domain_id=$domain") != 0)
 	{
 		$db->query("DELETE FROM zones WHERE owner=$owner AND domain_id=$domain");
 	}
@@ -655,7 +647,7 @@
 	GROUP BY name, owner, users.fullname
 	ORDER BY name";
 	
-	$result = $db->getRow($sqlq);
+	$result = $db->queryRow($sqlq);
 
 	$ret = array(
 	"name"          =>              $result["name"],
@@ -682,9 +674,9 @@
 			ORDER BY zones.id";
 
 		// Put the first occurence in an array and return it.
-		$result = $db->getRow($sqlq);
+		$result = $db->queryRow($sqlq);
 
-		//$result["ownerid"] = ($result["ownerid"] == NULL) ? $db->getOne("select min(id) from users where users.level=10") : $result["ownerid"];
+		//$result["ownerid"] = ($result["ownerid"] == NULL) ? $db->queryOne("select min(id) from users where users.level=10") : $result["ownerid"];
 
 		$ret = array(
 		"name"          =>              $result["name"],
@@ -829,7 +821,7 @@
 
 	while($r = $result->fetchRow())
 	{
-		$r["owner"] = ($r["owner"] == NULL) ? $db->getOne("select min(id) from users where users.level=10") : $r["owner"];
+		$r["owner"] = ($r["owner"] == NULL) ? $db->queryOne("select min(id) from users where users.level=10") : $r["owner"];
 	     	$ret[$r["domainname"]] = array(
 		"name"          =>              $r["domainname"],
 		"id"            =>              $r["domain_id"],
@@ -992,11 +984,11 @@
 function get_users_from_domain_id($id)
 {
 	global $db;
-	$result = $db->getCol("SELECT owner FROM zones WHERE domain_id=$id");
+	$result = $db->queryCol("SELECT owner FROM zones WHERE domain_id=$id");
 	$ret = array();
 	foreach($result as $uid)
 	{
-		$fullname = $db->getOne("SELECT fullname FROM users WHERE id=$uid");
+		$fullname = $db->queryOne("SELECT fullname FROM users WHERE id=$uid");
 		$ret[] = array(
 		"id" 		=> 	$uid,
 		"fullname"	=>	$fullname		
@@ -1105,7 +1097,7 @@
 function get_domain_type($id)
 {
 	global $db;
-	$type = $db->getOne("SELECT `type` FROM `domains` WHERE `id` = '".$id."'");
+	$type = $db->queryOne("SELECT `type` FROM `domains` WHERE `id` = '".$id."'");
 	if($type == "")
 	{
 		$type = "NATIVE";
--- a/inc/users.inc.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/inc/users.inc.php	Sun Apr 22 07:20:09 2007 +0000
@@ -221,9 +221,7 @@
 		$fullname = mysql_escape_string($fullname);
 		is_valid_email($email);
 
-		// Get id and insert information.
-		$idusers= $db->nextID('users');
-		$db->query("INSERT INTO users (id, username, password, fullname, email, description, level, active) VALUES ($idusers, '$user', '" . md5($password) . "', '$fullname', '$email', '$description', '$level', '$active')");
+		$db->query("INSERT INTO users (username, password, fullname, email, description, level, active) VALUES ('$user', '" . md5($password) . "', '$fullname', '$email', '$description', '$level', '$active')");
 		return true;
 	}
 	else
--- a/index.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/index.php	Sun Apr 22 07:20:09 2007 +0000
@@ -21,39 +21,6 @@
 require_once("inc/i18n.inc.php");
 require_once("inc/toolkit.inc.php");
 
-/*
-// Checks if the user migrated his database, can be deprecated in the future
-function check_updated()
-{
-	global $db;
-	$checkzone = $db->query("select * from zones");
-	$zonetables = $checkzone->tableInfo();
-	//var_dump($zonetables[1]);
-	if(strcmp($zonetables[1]["name"], "name") == 0)
-	{
-		include_once("inc/header.inc.php");
-		error("You have to migrate your database first! 
-		
-		The reason for this migration is that PowerAdmin wasnt supporting the gmysql backend yet. Now it fully does we have to support it aswell. 
-		The gmysql users another table and other fields though, therefore we had to change the layout of the zones table. In this version thats fully done, but before this we have to migrate it. 
-		
-		Please be sure you have a working backup of your data! 
-		we assume it all works but can't guarantuee it for 100% because we dont have 
-		too many betatesters.<BR>
-		
-		Do the following to migrate: 
-		- rename the file migrator.php-pa in your webdir to migrator.php.
-	 	- Go <A HREF='migrator.php'>here</A> to migrate it.
-		
-		It is recommended to synchronize your database aswell after the update");
-		die();
-	}
-}
-
-// Call above function
-check_updated();
-*/
-
 if ($_POST["submit"])
 {
 	$domain = trim($_POST["domain"]);
@@ -109,7 +76,7 @@
 <?
 if (level(10))
 {
-	?><A HREF="users.php"><? echo _('User admin'); ?></A> <A HREF="seq_update.php"><? echo _('Synchronize database'); ?></A><?
+	?><A HREF="users.php"><? echo _('User admin'); ?></A> <?
 }
 ?>
  <A HREF="search.php"><? echo _('Search records'); ?></A>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/install.php	Sun Apr 22 07:20:09 2007 +0000
@@ -0,0 +1,213 @@
+<?php
+
+// +--------------------------------------------------------------------+
+// | PowerAdmin								|
+// +--------------------------------------------------------------------+
+// | Copyright (c) 1997-2002 The PowerAdmin Team			|
+// +--------------------------------------------------------------------+
+// | This source file is subject to the license carried by the overal	|
+// | program PowerAdmin as found on http://poweradmin.sf.net		|
+// | The PowerAdmin program falls under the QPL License:		|
+// | http://www.trolltech.com/developer/licensing/qpl.html		|
+// +--------------------------------------------------------------------+
+// | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>	|
+// |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>			|
+// | Add-ons: Wim Mostrey <wim <AT> mostrey <DOT> be>                   |
+// +--------------------------------------------------------------------+
+
+// Filename: install.php
+// Description: installs your PowerAdmin
+//
+// $Id: install.php,v 1.12 2003/01/07 23:29:24 lyon Exp $
+//
+
+// addslashes to vars if magic_quotes_gpc is off
+function slash_input_data(&$data)
+{
+	if ( is_array($data) )
+	{
+		foreach ( $data as $k => $v )
+		{
+			$data[$k] = ( is_array($v) ) ? slash_input_data($v) : addslashes($v);
+		}
+	}
+	return $data;
+}
+
+set_magic_quotes_runtime(0);
+
+// If magic quotes is off, addslashes
+if ( !get_magic_quotes_gpc() )
+{
+	$_GET = slash_input_data($_GET);
+	$_POST = slash_input_data($_POST);
+	$_COOKIE = slash_input_data($_COOKIE);
+}
+
+
+error_reporting(E_ALL);
+if(!@require_once("inc/config.inc.php"))
+{
+	error("You have to create a config.inc.php!");
+}
+include_once("inc/header.inc.php");
+
+$sup_types = array('mysql');
+
+function error($msg=false)
+{
+       	// General function for printing critical errors.
+        if ($msg)
+	    {
+		?>
+                <P><TABLE CLASS="error"><TR><TD CLASS="error"><H2><? echo _('Oops! An error occured!'); ?></H2>
+       	        <BR>
+               	<FONT STYLE="font-weight: Bold"><?= nl2br($msg) ?><BR><BR><a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT><BR></TABLE>
+                <?
+      	        die();
+        }
+	    else
+	    {
+       	        die("No error specified!");
+        }
+}
+
+if(isset($_POST["submit"]))
+{
+	//$dbtype = $_POST["dbtype"];
+	require_once("inc/database.inc.php");
+
+	if($dbdsntype == "mysql")
+	{
+		$sqlusers =	"CREATE TABLE users (
+				  id int(11) NOT NULL auto_increment,
+				  username varchar(16) NOT NULL default '',
+				  password varchar(34) NOT NULL default '',
+				  fullname varchar(255) NOT NULL default '',
+				  email varchar(255) NOT NULL default '',
+				  description text NOT NULL,
+				  level tinyint(3) NOT NULL default '0',
+				  active tinyint(1) NOT NULL default '0',
+				  PRIMARY KEY  (id)
+				) TYPE=InnoDB";
+		$sqlzones =	"CREATE TABLE zones (
+  				  id int(11) NOT NULL auto_increment,
+				  domain_id int(11) NOT NULL default '0',
+				  owner int(11) NOT NULL default '0',
+				  comment text,
+				  PRIMARY KEY  (id)
+				) TYPE=InnoDB";
+	}
+
+	// PGSQL Is trivial still, the relations are different.
+	if($dbdsntype == "pgsql")
+	{
+		$sqlusers =	"CREATE TABLE users (
+				id SERIAL PRIMARY KEY,
+				username varchar(16) NOT NULL,
+				password varchar(255) NOT NULL,
+				fullname varchar(255) NOT NULL,
+				email varchar(255) NOT NULL,
+				description text NOT NULL,
+				level smallint DEFAULT 0,
+				active smallint DEFAULT 0
+				)";
+		$sqlzones =	"CREATE TABLE zones (
+				id SERIAL PRIMARY KEY,
+				name varchar(255) NOT NULL,
+				owner smallint NOT NULL,
+				comment text NULL
+				)";
+	}
+
+	if(!empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['fullname']) && !empty($_POST['email']))
+	{
+		// Declare default tables.
+
+
+
+		// It just tries to rough create. If it flunks.. bad a user exists or the dbase exists.
+
+		$resusers = $db->query($sqlusers);
+
+		if($db->isError($resusers))
+		{
+			error("Can not create table users in $dbdatabase");
+		}
+
+		$reszones = $db->query($sqlzones);
+
+		if($db->isError($reszones))
+		{
+			error("Can not create zones table in $dbdatabase");
+		}
+
+		$id = $db->nextID('users');
+
+		/* TODO next version: fix the strip_slashes. might give trouble upgrading :/ -Lyon */
+		$sqlinsert =	"INSERT INTO 
+					users 
+				VALUES (
+					$id,
+					'". $_POST['login'] ."', 
+					'". md5(stripslashes($_POST['password'])) ."',
+					'". $_POST["fullname"] ."',
+					'". $_POST["email"] ."',
+					'". $_POST["description"] ."',
+					10,
+					1)";
+
+		$resadmin = $db->query($sqlinsert);
+
+		if($db->isError($resadmin))
+		{
+
+			error("Can not add the admin to database $dbdatabase.users");
+		}
+		else
+		{
+
+			?>
+<h2><? echo _('PowerAdmin has succesfully been installed.'); ?></h2>
+<br />
+<? echo _('Remove this file (install.php) from your webdir.'); ?><br />
+<b><? echo _('WARNING'); ?>:</b> <? echo _('PowerAdmin will not work until you delete install.php'); ?><br />
+<br />
+<? echo _('You can click'); ?> <a href="index.php">here</a> <? echo _('to start using PowerAdmin'); ?>
+</BODY></HTML>
+<?php
+			die();
+		}
+
+	}
+	else
+	{
+		echo "<DIV CLASS=\"warning\">" . _('You didnt fill in one of the required fields!') . "</DIV>";
+	}
+}
+
+else
+{
+?>
+
+<H2><? echo _('PowerAdmin for PowerDNS'); ?></H2>
+<BR>
+<B><? echo _('This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an
+administrator login.'); ?><BR>
+<? echo _('Fields marked with a'); ?> <FONT COLOR="#FF0000">*</FONT> <? echo _('are required.'); ?>
+</B><BR><BR>
+
+<FORM METHOD="post">
+<TABLE BORDER="0" CELLSPACING="4">
+<TR><TD CLASS="tdbg"><? echo _('Login Name'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="login" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
+<TR><TD CLASS="tdbg"><? echo _('Password'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="password" CLASS="input" NAME="password" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
+<TR><TD CLASS="tdbg"><? echo _('Full name'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="fullname" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
+<TR><TD CLASS="tdbg"><? echo _('Email'); ?>:</TD><TD CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="email" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
+<TR><TD CLASS="tdbg"><? echo _('Description'); ?>:</TD><TD CLASS="tdbg"><TEXTAREA ROWS="6" COLS="30" CLASS="inputarea" NAME="description"></TEXTAREA></TD></TR>
+<TR><TD CLASS="tdbg">&nbsp;</TD><TD CLASS="tdbg"><INPUT TYPE="submit" CLASS="button" NAME="submit" VALUE="<? echo _('Make Account'); ?>"></TD></TR>
+</TABLE>
+</FORM>
+
+<BR><BR>
+<FONT CLASS="footer"><B>PowerAdmin v1.0</B>&nbsp;Copyright &copy;2002 The
+PowerAdmin Team</FONT></BODY></HTML><? } ?>
--- a/install.php.orig	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-<?php
-
-// +--------------------------------------------------------------------+
-// | PowerAdmin								|
-// +--------------------------------------------------------------------+
-// | Copyright (c) 1997-2002 The PowerAdmin Team			|
-// +--------------------------------------------------------------------+
-// | This source file is subject to the license carried by the overal	|
-// | program PowerAdmin as found on http://poweradmin.sf.net		|
-// | The PowerAdmin program falls under the QPL License:		|
-// | http://www.trolltech.com/developer/licensing/qpl.html		|
-// +--------------------------------------------------------------------+
-// | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>	|
-// |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>			|
-// | Add-ons: Wim Mostrey <wim <AT> mostrey <DOT> be>                   |
-// +--------------------------------------------------------------------+
-
-// Filename: install.php
-// Description: installs your PowerAdmin
-//
-// $Id: install.php,v 1.12 2003/01/07 23:29:24 lyon Exp $
-//
-
-// addslashes to vars if magic_quotes_gpc is off
-function slash_input_data(&$data)
-{
-	if ( is_array($data) )
-	{
-		foreach ( $data as $k => $v )
-		{
-			$data[$k] = ( is_array($v) ) ? slash_input_data($v) : addslashes($v);
-		}
-	}
-	return $data;
-}
-
-set_magic_quotes_runtime(0);
-
-// If magic quotes is off, addslashes
-if ( !get_magic_quotes_gpc() )
-{
-	$_GET = slash_input_data($_GET);
-	$_POST = slash_input_data($_POST);
-	$_COOKIE = slash_input_data($_COOKIE);
-}
-
-
-error_reporting(E_ALL);
-if(!@require_once("inc/config.inc.php"))
-{
-	error("You have to create a config.inc.php!");
-}
-include_once("inc/header.inc.php");
-
-$sup_types = array('mysql');
-
-function error($msg=false)
-{
-       	// General function for printing critical errors.
-        if ($msg)
-	    {
-		?>
-                <P><TABLE CLASS="error"><TR><TD CLASS="error"><H2><? echo _('Oops! An error occured!'); ?></H2>
-       	        <BR>
-               	<FONT STYLE="font-weight: Bold"><?= nl2br($msg) ?><BR><BR><a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT><BR></TABLE>
-                <?
-      	        die();
-        }
-	    else
-	    {
-       	        die("No error specified!");
-        }
-}
-
-if(isset($_POST["submit"]))
-{
-	//$dbtype = $_POST["dbtype"];
-	require_once("inc/database.inc.php");
-
-	if($dbdsntype == "mysql")
-	{
-		$sqlusers =	"CREATE TABLE users (
-				  id int(11) NOT NULL auto_increment,
-				  username varchar(16) NOT NULL default '',
-				  password varchar(34) NOT NULL default '',
-				  fullname varchar(255) NOT NULL default '',
-				  email varchar(255) NOT NULL default '',
-				  description text NOT NULL,
-				  level tinyint(3) NOT NULL default '0',
-				  active tinyint(1) NOT NULL default '0',
-				  PRIMARY KEY  (id)
-				) TYPE=InnoDB";
-		$sqlzones =	"CREATE TABLE zones (
-  				  id int(11) NOT NULL auto_increment,
-				  domain_id int(11) NOT NULL default '0',
-				  owner int(11) NOT NULL default '0',
-				  comment text,
-				  PRIMARY KEY  (id)
-				) TYPE=InnoDB";
-	}
-
-	// PGSQL Is trivial still, the relations are different.
-	if($dbdsntype == "pgsql")
-	{
-		$sqlusers =	"CREATE TABLE users (
-				id SERIAL PRIMARY KEY,
-				username varchar(16) NOT NULL,
-				password varchar(255) NOT NULL,
-				fullname varchar(255) NOT NULL,
-				email varchar(255) NOT NULL,
-				description text NOT NULL,
-				level smallint DEFAULT 0,
-				active smallint DEFAULT 0
-				)";
-		$sqlzones =	"CREATE TABLE zones (
-				id SERIAL PRIMARY KEY,
-				name varchar(255) NOT NULL,
-				owner smallint NOT NULL,
-				comment text NULL
-				)";
-	}
-
-	if(!empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['fullname']) && !empty($_POST['email']))
-	{
-		// Declare default tables.
-
-
-
-		// It just tries to rough create. If it flunks.. bad a user exists or the dbase exists.
-
-		$resusers = $db->query($sqlusers);
-
-		if($db->isError($resusers))
-		{
-			error("Can not create table users in $dbdatabase");
-		}
-
-		$reszones = $db->query($sqlzones);
-
-		if($db->isError($reszones))
-		{
-			error("Can not create zones table in $dbdatabase");
-		}
-
-		$id = $db->nextID('users');
-
-		/* TODO next version: fix the strip_slashes. might give trouble upgrading :/ -Lyon */
-		$sqlinsert =	"INSERT INTO 
-					users 
-				VALUES (
-					$id,
-					'". $_POST['login'] ."', 
-					'". md5(stripslashes($_POST['password'])) ."',
-					'". $_POST["fullname"] ."',
-					'". $_POST["email"] ."',
-					'". $_POST["description"] ."',
-					10,
-					1)";
-
-		$resadmin = $db->query($sqlinsert);
-
-		if($db->isError($resadmin))
-		{
-
-			error("Can not add the admin to database $dbdatabase.users");
-		}
-		else
-		{
-
-			?>
-<h2><? echo _('PowerAdmin has succesfully been installed.'); ?></h2>
-<br />
-<? echo _('Remove this file (install.php) from your webdir.'); ?><br />
-<b><? echo _('WARNING'); ?>:</b> <? echo _('PowerAdmin will not work until you delete install.php'); ?><br />
-<br />
-<? echo _('You can click'); ?> <a href="index.php">here</a> <? echo _('to start using PowerAdmin'); ?>
-</BODY></HTML>
-<?php
-			die();
-		}
-
-	}
-	else
-	{
-		echo "<DIV CLASS=\"warning\">" . _('You didnt fill in one of the required fields!') . "</DIV>";
-	}
-}
-
-else
-{
-?>
-
-<H2><? echo _('PowerAdmin for PowerDNS'); ?></H2>
-<BR>
-<B><? echo _('This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an
-administrator login.'); ?><BR>
-<? echo _('Fields marked with a'); ?> <FONT COLOR="#FF0000">*</FONT> <? echo _('are required.'); ?>
-</B><BR><BR>
-
-<FORM METHOD="post">
-<TABLE BORDER="0" CELLSPACING="4">
-<TR><TD CLASS="tdbg"><? echo _('Login Name'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="login" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
-<TR><TD CLASS="tdbg"><? echo _('Password'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="password" CLASS="input" NAME="password" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
-<TR><TD CLASS="tdbg"><? echo _('Full name'); ?>:</TD><TD WIDTH="510" CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="fullname" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
-<TR><TD CLASS="tdbg"><? echo _('Email'); ?>:</TD><TD CLASS="tdbg"><INPUT TYPE="text" CLASS="input" NAME="email" VALUE=""> <FONT COLOR="#FF0000">*</FONT> </TD></TR>
-<TR><TD CLASS="tdbg"><? echo _('Description'); ?>:</TD><TD CLASS="tdbg"><TEXTAREA ROWS="6" COLS="30" CLASS="inputarea" NAME="description"></TEXTAREA></TD></TR>
-<TR><TD CLASS="tdbg">&nbsp;</TD><TD CLASS="tdbg"><INPUT TYPE="submit" CLASS="button" NAME="submit" VALUE="<? echo _('Make Account'); ?>"></TD></TR>
-</TABLE>
-</FORM>
-
-<BR><BR>
-<FONT CLASS="footer"><B>PowerAdmin v1.0</B>&nbsp;Copyright &copy;2002 The
-PowerAdmin Team</FONT></BODY></HTML><? } ?>
--- a/locale/en_EN/LC_MESSAGES/en.po	Wed Apr 18 22:48:49 2007 +0000
+++ b/locale/en_EN/LC_MESSAGES/en.po	Sun Apr 22 07:20:09 2007 +0000
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-04-18 22:44+0200\n"
+"POT-Creation-Date: 2007-04-21 19:20+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,7 @@
 msgid "Add record to zone"
 msgstr ""
 
-#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106
+#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73
 #: search.php:40 users.php:49
 msgid "DNS Admin"
 msgstr ""
@@ -29,8 +29,8 @@
 msgid "Add record"
 msgstr ""
 
-#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:152
-#: search.php:78 search.php:121 users.php:78
+#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119
+#: search.php:78 search.php:121 users.php:72
 msgid "Name"
 msgstr ""
 
@@ -50,11 +50,11 @@
 msgid "TTL"
 msgstr ""
 
-#: delete_domain.php:38 users.php:93
+#: delete_domain.php:38 users.php:87
 msgid "Delete domain"
 msgstr ""
 
-#: delete_domain.php:39 index.php:152 index.php:207 search.php:80
+#: delete_domain.php:39 index.php:119 index.php:174 search.php:80
 msgid "Owner"
 msgstr ""
 
@@ -78,7 +78,7 @@
 msgid "Delete record"
 msgstr ""
 
-#: delete_user.php:54 users.php:85
+#: delete_user.php:54 users.php:79
 msgid "Delete user"
 msgstr ""
 
@@ -154,7 +154,7 @@
 msgid "Assign to user"
 msgstr ""
 
-#: edit.php:276 index.php:176 search.php:91
+#: edit.php:276 index.php:143 search.php:91
 msgid "Delete zone"
 msgstr ""
 
@@ -182,134 +182,192 @@
 msgid "Edit user"
 msgstr ""
 
-#: edit_user.php:59 index.php:112 search.php:44 users.php:47
+#: edit_user.php:59 index.php:79 search.php:44 users.php:47
 msgid "User admin"
 msgstr ""
 
-#: edit_user.php:69 users.php:105
+#: edit_user.php:69 users.php:99
 msgid "User name"
 msgstr ""
 
-#: edit_user.php:70 users.php:106
+#: edit_user.php:70 install.php:204 users.php:100
 msgid "Full name"
 msgstr ""
 
-#: edit_user.php:71 users.php:107 inc/auth.inc.php:97
+#: edit_user.php:71 install.php:203 users.php:101 inc/auth.inc.php:97
 msgid "Password"
 msgstr ""
 
-#: edit_user.php:72 users.php:108
+#: edit_user.php:72 users.php:102
 msgid "E-mail"
 msgstr ""
 
-#: edit_user.php:73 users.php:109
+#: edit_user.php:73 users.php:103
 msgid "User level"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:84
+#: edit_user.php:73 inc/config-me.inc.php:84
 msgid "Normal user"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:85
+#: edit_user.php:73 inc/config-me.inc.php:85
 msgid "Administrator"
 msgstr ""
 
-#: edit_user.php:73 inc/config.inc.php:86
+#: edit_user.php:73 inc/config-me.inc.php:86
 msgid "Administrator w/ user admin rights"
 msgstr ""
 
-#: edit_user.php:74 users.php:110
+#: edit_user.php:74 install.php:206 users.php:104
 msgid "Description"
 msgstr ""
 
-#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270
+#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270
 msgid "Active"
 msgstr ""
 
-#: index.php:112 search.php:44 users.php:53
-msgid "Synchronize database"
-msgstr ""
-
-#: index.php:115 users.php:55
+#: index.php:82 users.php:49
 msgid "Search records"
 msgstr ""
 
-#: index.php:119
+#: index.php:86
 msgid "Welcome"
 msgstr ""
 
-#: index.php:122
+#: index.php:89
 msgid "Your userlevel is"
 msgstr ""
 
-#: index.php:128 users.php:65
+#: index.php:95 users.php:59
 msgid "Error"
 msgstr ""
 
-#: index.php:132
+#: index.php:99
 msgid "Current domains in DNS (click to view or edit)"
 msgstr ""
 
-#: index.php:138
+#: index.php:105
 msgid "Number of domains"
 msgstr ""
 
-#: index.php:152 search.php:79
+#: index.php:119 search.php:79
 msgid "Records"
 msgstr ""
 
-#: index.php:164
+#: index.php:131
 msgid "No domains in this listing, sorry."
 msgstr ""
 
-#: index.php:191
+#: index.php:158
 msgid "You only administer some records of domains marked with an (*)."
 msgstr ""
 
-#: index.php:202
+#: index.php:169
 msgid "Create new domain"
 msgstr ""
 
-#: index.php:204
+#: index.php:171
 msgid "Domain name"
 msgstr ""
 
-#: index.php:205
+#: index.php:172
 msgid "Web IP"
 msgstr ""
 
-#: index.php:206
+#: index.php:173
 msgid "Mail IP"
 msgstr ""
 
-#: index.php:221
+#: index.php:188
 msgid "Domain type"
 msgstr ""
 
-#: index.php:232
+#: index.php:199
 msgid "Create zone without"
 msgstr ""
 
-#: index.php:232
+#: index.php:199
 msgid "applying records-template"
 msgstr ""
 
-#: index.php:233
+#: index.php:200
 msgid "Add domain"
 msgstr ""
 
-#: index.php:242 index.php:247
+#: index.php:209 index.php:214
 msgid "Change password"
 msgstr ""
 
-#: index.php:244
+#: index.php:211
 msgid "Current password"
 msgstr ""
 
-#: index.php:245 index.php:246
+#: index.php:212 index.php:213
 msgid "New password"
 msgstr ""
 
+#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149
+msgid "Oops! An error occured!"
+msgstr ""
+
+#: install.php:171
+msgid "PowerAdmin has succesfully been installed."
+msgstr ""
+
+#: install.php:173
+msgid "Remove this file (install.php) from your webdir."
+msgstr ""
+
+#: install.php:174
+msgid "WARNING"
+msgstr ""
+
+#: install.php:174
+msgid "PowerAdmin will not work until you delete install.php"
+msgstr ""
+
+#: install.php:176
+msgid "You can click"
+msgstr ""
+
+#: install.php:176
+msgid "to start using PowerAdmin"
+msgstr ""
+
+#: install.php:185
+msgid "You didnt fill in one of the required fields!"
+msgstr ""
+
+#: install.php:193 inc/auth.inc.php:86
+msgid "PowerAdmin for PowerDNS"
+msgstr ""
+
+#: install.php:195
+msgid ""
+"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n"
+"administrator login."
+msgstr ""
+
+#: install.php:197
+msgid "Fields marked with a"
+msgstr ""
+
+#: install.php:197
+msgid "are required."
+msgstr ""
+
+#: install.php:202
+msgid "Login Name"
+msgstr ""
+
+#: install.php:205
+msgid "Email"
+msgstr ""
+
+#: install.php:207
+msgid "Make Account"
+msgstr ""
+
 #: search.php:38
 msgid "Search zones or records"
 msgstr ""
@@ -338,14 +396,6 @@
 msgid "Nothing found for query"
 msgstr ""
 
-#: seq_update.php:26
-msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)."
-msgstr ""
-
-#: seq_update.php:53
-msgid "All tables are successfully synchronized."
-msgstr ""
-
 #: test_setup.php:58
 msgid "Not all tables are ok!"
 msgstr ""
@@ -374,35 +424,35 @@
 msgid "Please fill in all fields"
 msgstr ""
 
-#: users.php:68
+#: users.php:62
 msgid "Current users (click to edit)"
 msgstr ""
 
+#: users.php:66
+msgid "Number of users"
+msgstr ""
+
 #: users.php:72
-msgid "Number of users"
-msgstr ""
-
-#: users.php:78
 msgid "Domains"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Domain list"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Level"
 msgstr ""
 
-#: users.php:78
+#: users.php:72
 msgid "Status"
 msgstr ""
 
-#: users.php:103
+#: users.php:97
 msgid "Create new user"
 msgstr ""
 
-#: users.php:112
+#: users.php:106
 msgid "Add user"
 msgstr ""
 
@@ -415,10 +465,6 @@
 msgstr ""
 
 #: inc/auth.inc.php:86
-msgid "PowerAdmin for PowerDNS"
-msgstr ""
-
-#: inc/auth.inc.php:86
 msgid "Please login"
 msgstr ""
 
@@ -430,10 +476,6 @@
 msgid "You have logged out."
 msgstr ""
 
-#: inc/database.inc.php:31 inc/toolkit.inc.php:149
-msgid "Oops! An error occured!"
-msgstr ""
-
 #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187
 msgid "back"
 msgstr ""
Binary file locale/en_EN/LC_MESSAGES/message.mo has changed
Binary file locale/nl_NL/LC_MESSAGES/message.mo has changed
--- a/locale/nl_NL/LC_MESSAGES/nl.po	Wed Apr 18 22:48:49 2007 +0000
+++ b/locale/nl_NL/LC_MESSAGES/nl.po	Sun Apr 22 07:20:09 2007 +0000
@@ -8,8 +8,8 @@
 msgstr ""
 "Project-Id-Version: poweradmin 1.2.7-patched\n"
 "Report-Msgid-Bugs-To: rejo@zenger.nl\n"
-"POT-Creation-Date: 2007-04-15 00:21+0200\n"
-"PO-Revision-Date: 2007-04-18 22:47+0200\n"
+"POT-Creation-Date: 2007-04-21 19:20+0200\n"
+"PO-Revision-Date: 2007-04-21 20:47+0200\n"
 "Last-Translator: Rejo Zenger <rejo@zenger.nl>\n"
 "Language-Team: Dutch\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
 msgid "Add record to zone"
 msgstr "Toevoegen record aan zone"
 
-#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:106
+#: add_record.php:32 edit.php:160 edit_record.php:61 index.php:73
 #: search.php:40 users.php:49
 msgid "DNS Admin"
 msgstr "DNS Admin"
@@ -29,8 +29,8 @@
 msgid "Add record"
 msgstr "Toevoegen record"
 
-#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:151
-#: search.php:78 search.php:121 users.php:78
+#: add_record.php:37 edit.php:186 edit_record.php:67 index.php:119
+#: search.php:78 search.php:121 users.php:72
 msgid "Name"
 msgstr "Label"
 
@@ -50,11 +50,11 @@
 msgid "TTL"
 msgstr "TTL"
 
-#: delete_domain.php:38 users.php:93
+#: delete_domain.php:38 users.php:87
 msgid "Delete domain"
 msgstr "Verwijderen zone"
 
-#: delete_domain.php:39 index.php:151 index.php:207 search.php:80
+#: delete_domain.php:39 index.php:119 index.php:174 search.php:80
 msgid "Owner"
 msgstr "Beheerder"
 
@@ -78,7 +78,7 @@
 msgid "Delete record"
 msgstr "Verwijderen record"
 
-#: delete_user.php:54 users.php:85
+#: delete_user.php:54 users.php:79
 msgid "Delete user"
 msgstr "Verwijderen gebruiker"
 
@@ -154,7 +154,7 @@
 msgid "Assign to user"
 msgstr "Selecteer beheerder"
 
-#: edit.php:276 index.php:176 search.php:91
+#: edit.php:276 index.php:143 search.php:91
 msgid "Delete zone"
 msgstr "Verwijderen zone"
 
@@ -182,27 +182,27 @@
 msgid "Edit user"
 msgstr "Wijzigen gebruiker"
 
-#: edit_user.php:59 index.php:112 search.php:44 users.php:47
+#: edit_user.php:59 index.php:79 search.php:44 users.php:47
 msgid "User admin"
 msgstr "Gebruikersbeheer"
 
-#: edit_user.php:69 users.php:105
+#: edit_user.php:69 users.php:99
 msgid "User name"
 msgstr "Gebruikersnaam"
 
-#: edit_user.php:70 users.php:106
+#: edit_user.php:70 install.php:204 users.php:100
 msgid "Full name"
 msgstr "Volledige naam"
 
-#: edit_user.php:71 users.php:107 inc/auth.inc.php:97
+#: edit_user.php:71 install.php:203 users.php:107 inc/auth.inc.php:97
 msgid "Password"
 msgstr "Wachtwoord"
 
-#: edit_user.php:72 users.php:108
+#: edit_user.php:72 users.php:102
 msgid "E-mail"
 msgstr "E-mailadres"
 
-#: edit_user.php:73 users.php:109
+#: edit_user.php:73 users.php:103
 msgid "User level"
 msgstr "Gebruikersnivo"
 
@@ -218,98 +218,158 @@
 msgid "Administrator w/ user admin rights"
 msgstr "Site beheerder met gebruikersbeheer rechten"
 
-#: edit_user.php:74 users.php:110
+#: edit_user.php:74  install.php:206 users.php:104
 msgid "Description"
 msgstr "Omschrijving"
 
-#: edit_user.php:75 users.php:111 inc/toolkit.inc.php:270
+#: edit_user.php:75 users.php:105 inc/toolkit.inc.php:270
 msgid "Active"
 msgstr "Actief"
 
-#: index.php:112 search.php:44 users.php:53
-msgid "Synchronize database"
-msgstr "Synchroniseer database"
-
-#: index.php:115 users.php:55
+#: index.php:82 users.php:49
 msgid "Search records"
 msgstr "Zoek records"
 
-#: index.php:119
+#: index.php:86
 msgid "Welcome"
 msgstr "Welkom"
 
-#: index.php:122
+#: index.php:89
 msgid "Your userlevel is"
 msgstr "Uw gebruikersnivo is"
 
-#: index.php:128 users.php:65
+#: index.php:95 users.php:59
 msgid "Error"
 msgstr "Fout"
 
-#: index.php:132
+#: index.php:99
 msgid "Current domains in DNS (click to view or edit)"
 msgstr "Huidige zones in DNS (aanklikken om in te zien of te wijzigen)"
 
-#: index.php:138
+#: index.php:105
 msgid "Number of domains"
 msgstr "Aantal zones"
 
-#: index.php:152 search.php:79
+#: index.php:119 search.php:79
 msgid "Records"
 msgstr "Records"
 
-#: index.php:164
+#: index.php:131
 msgid "No domains in this listing, sorry."
 msgstr "Er zijn geen zones om te tonen."
 
-#: index.php:199
+#: index.php:158
 msgid "You only administer some records of domains marked with an (*)."
 msgstr "U beheert enkel een deel van de records in zones gemarkeerd met een (*)."
 
-#: index.php:202
+#: index.php:169
 msgid "Create new domain"
 msgstr "Toevoegen nieuwe zone"
 
-#: index.php:204
+#: index.php:171
 msgid "Domain name"
 msgstr "Naam van de zone"
 
-#: index.php:205
+#: index.php:172
 msgid "Web IP"
 msgstr "IP adres webserver"
 
-#: index.php:205
+#: index.php:173
 msgid "Mail IP"
 msgstr "IP adres mailserver"
 
-#: index.php:221
+#: index.php:188
 msgid "Domain type"
 msgstr "Type zone"
 
-#: index.php:232
+#: index.php:199
 msgid "Create zone without"
 msgstr "Zone aanmaken zonder"
 
-#: index.php:232
+#: index.php:199
 msgid "applying records-template"
 msgstr "het record template te gebruiken"
 
-#: index.php:233
+#: index.php:200
 msgid "Add domain"
 msgstr "Toevoegen zone"
 
-#: index.php:242 index.php:247
+#: index.php:209 index.php:214
 msgid "Change password"
 msgstr "Wijzig wachtwoord"
 
-#: index.php:244
+#: index.php:211
 msgid "Current password"
 msgstr "Huidige wachtwoord"
 
-#: index.php:245 index.php:246
+#: index.php:212 index.php:213
 msgid "New password"
 msgstr "Nieuwe wachtwoord"
 
+#: install.php:63 inc/database.inc.php:31 inc/toolkit.inc.php:149
+msgid "Oops! An error occured!"
+msgstr "Oops! Er is iets fout gegaan!"
+
+#: install.php:171
+msgid "PowerAdmin has succesfully been installed."
+msgstr "Poweradmin is succesvol ge&iuml;nstalleerd"
+
+#: install.php:173
+msgid "Remove this file (install.php) from your webdir."
+msgstr "Verwijder deze file (install.php) uit de webdir."
+
+#: install.php:174
+msgid "WARNING"
+msgstr "LET OP"
+
+#: install.php:174
+msgid "PowerAdmin will not work until you delete install.php"
+msgstr "Zolang install.php niet verwijderd is, werkt Poweradmin niet."
+
+#: install.php:176
+msgid "You can click"
+msgstr "U kunt klikken"
+
+#: install.php:176
+msgid "to start using PowerAdmin"
+msgstr "om met Poweradmin te starten"
+
+#: install.php:185
+msgid "You didnt fill in one of the required fields!"
+msgstr "U heeft niet alle verplichte velden ingevuld!"
+
+#: install.php:193 inc/auth.inc.php:86
+msgid "PowerAdmin for PowerDNS"
+msgstr "Poweradmin voor PowerDNS"
+
+#: install.php:195
+msgid ""
+"This config file will setup your database to be ready for PowerAdmin. Please fill in the next fields which will create an\n"
+"administrator login."
+msgstr ""
+"Deze configuratie file zal uw database voorbereiden voor Poweradmin. Vult u alstublief alle onderstaande velden in om een\n"
+"beheerdersaccount aan te maken."
+
+#: install.php:197
+msgid "Fields marked with a"
+msgstr "De velden gemarkeerd met een"
+
+#: install.php:197
+msgid "are required."
+msgstr "zijn verplicht."
+
+#: install.php:202
+msgid "Login Name"
+msgstr "Gebruikersnaam"
+
+#: install.php:205
+msgid "Email"
+msgstr "E-mail"
+
+#: install.php:207
+msgid "Make Account"
+msgstr "Aanmaken account"
+
 #: search.php:38
 msgid "Search zones or records"
 msgstr "Zones of records zoeken"
@@ -338,14 +398,6 @@
 msgid "Nothing found for query"
 msgstr "Niets gevonden voor criterium"
 
-#: seq_update.php:26
-msgid "Synching databases. This is useful if you did manual insertions (in case you havent been here yet)."
-msgstr "Synchroniseren databases. Dit is noodzakelijk als er handmatige toevoegingen hebben plaatsgevonden."
-
-#: seq_update.php:53
-msgid "All tables are successfully synchronized."
-msgstr "Alle tabellen zijn succesvol gesynchroniseerd."
-
 #: test_setup.php:58
 msgid "Not all tables are ok!"
 msgstr "Niet alle tabellen zijn op orde!"
@@ -374,35 +426,35 @@
 msgid "Please fill in all fields"
 msgstr "u dient alle velden in te vullen"
 
-#: users.php:68
+#: users.php:62
 msgid "Current users (click to edit)"
 msgstr "Huidige gebruikers (aanklikken om te wijzigen)"
 
-#: users.php:72
+#: users.php:66
 msgid "Number of users"
 msgstr "Aantal gebruikers"
 
-#: users.php:78
+#: users.php:72
 msgid "Domains"
 msgstr "Zones"
 
-#: users.php:78
+#: users.php:72
 msgid "Domain list"
 msgstr "Zone overzicht"
 
-#: users.php:78
+#: users.php:72
 msgid "Level"
 msgstr "Gebruikersnivo"
 
-#: users.php:78
+#: users.php:72
 msgid "Status"
 msgstr "Status"
 
-#: users.php:103
+#: users.php:97
 msgid "Create new user"
 msgstr "Toevoegen nieuwe gebruiker"
 
-#: users.php:112
+#: users.php:106
 msgid "Add user"
 msgstr "Toevoegen gebruiker"
 
@@ -415,10 +467,6 @@
 msgstr "Authenticatie mislukt!"
 
 #: inc/auth.inc.php:86
-msgid "PowerAdmin for PowerDNS"
-msgstr "PowerAdmin voor PowerDNS"
-
-#: inc/auth.inc.php:86
 msgid "Please login"
 msgstr "Inloggen"
 
@@ -430,10 +478,6 @@
 msgid "Login"
 msgstr "Inloggen"
 
-#: inc/database.inc.php:31 inc/toolkit.inc.php:149
-msgid "Oops! An error occured!"
-msgstr "Oops! Er ging iets mis!"
-
 #: inc/database.inc.php:33 inc/toolkit.inc.php:151 inc/toolkit.inc.php:187
 msgid "back"
 msgstr "terug"
--- a/migrator.php-pa	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<?php
-// +--------------------------------------------------------------------+
-// | PowerAdmin								|
-// +--------------------------------------------------------------------+
-// | Copyright (c) 1997-2002 The PowerAdmin Team			|
-// +--------------------------------------------------------------------+
-// | This source file is subject to the license carried by the overal	|
-// | program PowerAdmin as found on http://poweradmin.sf.net		|
-// | The PowerAdmin program falls under the QPL License:		|
-// | http://www.trolltech.com/developer/licensing/qpl.html		|
-// +--------------------------------------------------------------------+
-// | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>	|
-// |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>			|
-// +--------------------------------------------------------------------+
-//
-// File: migrator.php
-// Description: Migrates PowerAdmin 1.1.2 to the new 1.2 format
-
-if(!@include_once("inc/config.inc.php"))
-{
-        error("You have to create a config.inc.php!");
-}
-require_once("inc/database.inc.php");
-
-PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'error');
-function error($msg)
-{
-        // General function for printing critical errors.
-        include_once("inc/header.inc.php");
-        ?>
-        <P><TABLE CLASS="error"><TR><TD CLASS="error"><H2>Oops! An error occured!</H2>
-        <BR>
-        <FONT STYLE="font-weight: Bold">
-	<?
-		if(is_object($msg))
-		{	
-			switch($msg->code)
-			{
-				case -19:
-					echo "<P>It seems you already have your PowerAdmin migrated because the tables cant be 
-						altered. Another problem can be that you dont ALTER right on your database, 
-						check this if you think your database doesnt have the proper format yet!</P>";
-					break;
-				case -18:
-					echo "<P>One of the tables required doesnt exist, please run 
-						test_setup.php.</P>PEAR::DB Error: " . $msg->getDebugInfo();
-					break;
-				default:
-					echo "Unknown error, sorry: PEAR::DB Returned: " . $msg->getDebugInfo();
-					break;
-			}
-		}
-		else
-		{
-			echo $msg;
-		}
-	?>
-
-	<BR><BR><a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT><BR></TD></TR></TABLE></P>
-        <?
-        include_once("inc/footer.inc.php");
-        die();
-}
-
-
-function message($msg)
-{
-    include_once("inc/header.inc.php");
-    ?>
-    <P><TABLE CLASS="messagetable"><TR><TD CLASS="message"><H2>Success!</H2>
-    <BR>
-	<FONT STYLE="font-weight: Bold">
-	<P>
-	<?
-    if($msg)
-    {
-        echo nl2br($msg);
-    }
-    else
-    {
-        echo "Successful!";
-    }
-    ?>
-    </P>
-    <BR>
-    <P>
-    <a href="javascript:history.go(-1)">&lt;&lt; back</a></FONT>
-    </P>
-    </TD></TR></TABLE></P>
-    <?
-    include_once("inc/footer.inc.php");
-}
-
-$zoneresult = $db->getCol("select id from zones");
-
-foreach($zoneresult as $zr)
-{
-	// Look up the domain_id
-	$zonename = $db->getOne("select name from zones where zones.id=" . $zr);
-        // do a count, if the record already exists in the domains table, dont insert it
-	$dom_count = $db->query("select id from domains where name='$zonename'");
-        if($dom_count->numRows() == 0)
-        {
-                $dom_id = $db->nextID("domains");
-        	$db->query("INSERT INTO domains(id, name, type) VALUES('$dom_id', '$zonename', 'NATIVE')");
-	        $db->query("UPDATE records SET domain_id=$dom_id where domain_id=$zr");
-        	$db->query("UPDATE zones SET name=$dom_id where id=$zr");
-        }
-        else
-        {
-		$row = $dom_count->fetchRow();
-		
-                $db->query('UPDATE records SET domain_id=' . $row["id"] . " where domain_id=$zr");
-                $db->query('UPDATE zones SET name=' . $row['id'] . " where id=$zr");
-        }
-}
-
-if(!DB::isError($zoneresult))
-{
-	$db->query("ALTER TABLE zones CHANGE name domain_id INT(11) NOT NULL");
-
-	message("Done updating your tables, enjoy your new PowerAdmin! 
-	Please remove this file from your webdirectory!");
-}
-else
-{
-	error("You seem to have no information in the table zones");
-}
-?>
--- a/search.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/search.php	Sun Apr 22 07:20:09 2007 +0000
@@ -41,7 +41,7 @@
 <?
 if (level(10))
 {
-	?><A HREF="users.php"><? echo _('User admin'); ?></A> <A HREF="seq_update.php"><? echo _('Synchronize database'); ?></A><?
+	?><A HREF="users.php"><? echo _('User admin'); ?></A> <?
 }
 ?>
 </P><BR>
--- a/seq_update.php	Wed Apr 18 22:48:49 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<?php
-// +--------------------------------------------------------------------+
-// | PowerAdmin								|
-// +--------------------------------------------------------------------+
-// | Copyright (c) 1997-2002 The PowerAdmin Team			|
-// +--------------------------------------------------------------------+
-// | This source file is subject to the license carried by the overal	|
-// | program PowerAdmin as found on http://poweradmin.sf.net		|
-// | The PowerAdmin program falls under the QPL License:		|
-// | http://www.trolltech.com/developer/licensing/qpl.html		|
-// +--------------------------------------------------------------------+
-// | Authors: Roeland Nieuwenhuis <trancer <AT> trancer <DOT> nl>	|
-// |          Sjeemz <sjeemz <AT> sjeemz <DOT> nl>			|
-// +--------------------------------------------------------------------+
-//
-// File: seq_update.php
-// Description: synches your database after manual insertions.
-// Doesnt do much, just searches the highest record_id and updates the seq table with this
-
-require_once("inc/toolkit.inc.php");
-require_once("inc/header.inc.php");
-
-// Ok we have to synch it all.
-// What to do? Find the MAX(id) on each table and set it to the _seq table.
-
-echo "<P><B>" . _('Synching databases. This is useful if you did manual insertions (in case you havent been here yet).') . "</B></P>";
-
-if(!level(10))
-{
-    error(ERR_LEVEL_10);
-}
-
-function seq_update(&$item)
-{
-	global $db;
-	$number_u = $db->getOne("SELECT MAX(id) FROM $item");
-	if($number_u > 1)
-	{
-		echo $number_u;
-		$number_u_seq = $db->getOne("SELECT id FROM " . $item . "_seq");
-		if($number_u_seq < $number_u)
-		{
-			$number_u += 1;
-			$db->query("UPDATE " . $item . "_seq SET id='$number_u'");
-		}
-	}
-}
-
-$tables = array('users', 'zones', 'records', 'domains');
-
-array_walk($tables, 'seq_update');
-
-message( _('All tables are successfully synchronized.') );
-
-php?>
--- a/users.php	Wed Apr 18 22:48:49 2007 +0000
+++ b/users.php	Sun Apr 22 07:20:09 2007 +0000
@@ -46,13 +46,7 @@
 ?>
 <H2><? echo _('User admin'); ?></H2>
 <P CLASS="nav">
-<A HREF="index.php"><? echo _('DNS Admin'); ?></A>
-<?
-if (level(10))
-{
-	?> <A HREF="seq_update.php"><? echo _('Synchronize database'); ?></A> <?
-}
-?><A HREF="search.php"><? echo _('Search records'); ?></A></P><BR><?
+<A HREF="index.php"><? echo _('DNS Admin'); ?></A> <A HREF="search.php"><? echo _('Search records'); ?></A></P><BR><?
 // End
 
 if (!level(10))