/class/class.install.php

http://freshdns.googlecode.com/ · PHP · 112 lines · 97 code · 15 blank · 0 comment · 1 complexity · d5b95fbb038ca723d3a3958f3903dd8b MD5 · raw file

  1. <?
  2. class install
  3. {
  4. private $database;
  5. function __construct($database)
  6. {
  7. $this->database = $database;
  8. }
  9. function pdns_sql ()
  10. {
  11. $query = array();
  12. $query[] = "CREATE TABLE IF NOT EXISTS domains (
  13. id INT auto_increment,
  14. name VARCHAR(255) NOT NULL,
  15. master VARCHAR(20) DEFAULT NULL,
  16. last_check INT DEFAULT NULL,
  17. type VARCHAR(6) NOT NULL,
  18. notified_serial INT DEFAULT NULL,
  19. account VARCHAR(40) DEFAULT NULL,
  20. primary key (id)
  21. )type=InnoDB;";
  22. $query[] = "CREATE UNIQUE INDEX name_index ON domains(name);";
  23. $query[] = "CREATE TABLE IF NOT EXISTS records (
  24. id INT auto_increment,
  25. domain_id INT DEFAULT NULL,
  26. name VARCHAR(255) DEFAULT NULL,
  27. type VARCHAR(6) DEFAULT NULL,
  28. content VARCHAR(255) DEFAULT NULL,
  29. ttl INT DEFAULT NULL,
  30. prio INT DEFAULT NULL,
  31. change_date INT DEFAULT NULL,
  32. primary key(id)
  33. )type=InnoDB;";
  34. $query[] = "CREATE INDEX rec_name_index ON records(name);";
  35. $query[] = "CREATE INDEX nametype_index ON records(name,type);";
  36. $query[] = "CREATE INDEX domain_id ON records(domain_id);";
  37. $query[] = "CREATE TABLE IF NOT EXISTS supermasters (
  38. ip VARCHAR(25) NOT NULL,
  39. nameserver VARCHAR(255) NOT NULL,
  40. account VARCHAR(40) DEFAULT NULL
  41. );";
  42. foreach($query AS $Q)
  43. {
  44. @$this->database->query_master($Q);
  45. }
  46. }
  47. function padmin_sql ()
  48. {
  49. $query = array();
  50. $query[] = "CREATE TABLE IF NOT EXISTS `record_owners` (
  51. `id` int(11) NOT NULL auto_increment,
  52. `user_id` int(11) NOT NULL default '0',
  53. `record_id` int(11) NOT NULL default '0',
  54. PRIMARY KEY (`id`)
  55. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  56. $query[] = "CREATE TABLE IF NOT EXISTS `users` (
  57. `id` int(11) NOT NULL auto_increment,
  58. `username` varchar(16) NOT NULL default '',
  59. `password` varchar(34) NOT NULL default '',
  60. `fullname` varchar(255) NOT NULL default '',
  61. `email` varchar(255) NOT NULL default '',
  62. `description` text NOT NULL,
  63. `level` tinyint(3) NOT NULL default '0',
  64. `active` tinyint(1) NOT NULL default '0',
  65. PRIMARY KEY (`id`)
  66. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  67. $query[] = "CREATE TABLE IF NOT EXISTS `zones` (
  68. `id` int(11) NOT NULL auto_increment,
  69. `domain_id` int(11) NOT NULL default '0',
  70. `owner` int(11) NOT NULL default '0',
  71. `comment` text,
  72. PRIMARY KEY (`id`)
  73. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  74. foreach($query AS $Q)
  75. {
  76. $this->database->query_master($Q) or die ($this->database->error());
  77. }
  78. }
  79. function zonelessdomains ()
  80. {
  81. $query = "SELECT d.id FROM domains d
  82. LEFT OUTER JOIN zones z ON z.domain_id=d.id;";
  83. $query = $this->database->query_master($query) or die ($this->database->error());
  84. if($this->database->num_rows($query)==0)
  85. {
  86. return '';
  87. }else
  88. {
  89. while($record=$this->database->fetch_array($query))
  90. {
  91. $return[] = $record;
  92. }
  93. return $return;
  94. }
  95. }
  96. }
  97. ?>