feedmanager.install 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. // $id:$
  3. function feedmanager_install() {
  4. switch ($GLOBALS['db_type']) {
  5. case 'mysql':
  6. case 'mysqli':
  7. db_query("CREATE TABLE IF NOT EXISTS {aggregator_category} (
  8. cid int NOT NULL auto_increment,
  9. title varchar(255) NOT NULL default '',
  10. description longtext NOT NULL,
  11. block tinyint NOT NULL default '0',
  12. PRIMARY KEY (cid),
  13. UNIQUE KEY title (title)
  14. ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
  15. db_query("CREATE TABLE IF NOT EXISTS {aggregator_category_feed} (
  16. fid int NOT NULL default '0',
  17. cid int NOT NULL default '0',
  18. PRIMARY KEY (fid,cid)
  19. ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
  20. db_query("CREATE TABLE IF NOT EXISTS {aggregator_category_item} (
  21. iid int NOT NULL default '0',
  22. cid int NOT NULL default '0',
  23. PRIMARY KEY (iid,cid)
  24. ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
  25. db_query("CREATE TABLE IF NOT EXISTS {aggregator_feed} (
  26. fid int NOT NULL auto_increment,
  27. title varchar(255) NOT NULL default '',
  28. url varchar(255) NOT NULL default '',
  29. refresh int NOT NULL default '0',
  30. checked int NOT NULL default '0',
  31. link varchar(255) NOT NULL default '',
  32. description longtext NOT NULL,
  33. image longtext,
  34. etag varchar(255) NOT NULL default '',
  35. modified int NOT NULL default '0',
  36. block tinyint NOT NULL default '0',
  37. PRIMARY KEY (fid),
  38. UNIQUE KEY link (url),
  39. UNIQUE KEY title (title)
  40. ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
  41. db_query("CREATE TABLE IF NOT EXISTS {aggregator_item} (
  42. iid int NOT NULL auto_increment,
  43. fid int NOT NULL default '0',
  44. title varchar(255) NOT NULL default '',
  45. link varchar(255) NOT NULL default '',
  46. author varchar(255) NOT NULL default '',
  47. description longtext NOT NULL,
  48. timestamp int default NULL,
  49. guid varchar(255),
  50. PRIMARY KEY (iid),
  51. KEY fid (fid)
  52. ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
  53. // Uninstall aggregator.module
  54. db_query("UPDATE {system} SET status = 0 WHERE name = 'aggregator'");
  55. // Update existing tables
  56. db_query('ALTER TABLE {aggregator_feed} DROP KEY link');
  57. db_query('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
  58. db_query('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
  59. db_query('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
  60. db_query('ALTER TABLE {aggregator_feed} DROP INDEX title');
  61. break;
  62. case 'pgsql':
  63. db_query("CREATE TABLE {aggregator_category} (
  64. cid serial,
  65. title varchar(255) NOT NULL default '',
  66. description text NOT NULL,
  67. block smallint NOT NULL default '0',
  68. PRIMARY KEY (cid),
  69. UNIQUE (title)
  70. )");
  71. db_query("CREATE TABLE {aggregator_category_feed} (
  72. fid int NOT NULL default '0',
  73. cid int NOT NULL default '0',
  74. PRIMARY KEY (fid,cid)
  75. )");
  76. db_query("CREATE TABLE {aggregator_category_item} (
  77. iid int NOT NULL default '0',
  78. cid int NOT NULL default '0',
  79. PRIMARY KEY (iid,cid)
  80. )");
  81. db_query("CREATE TABLE {aggregator_feed} (
  82. fid serial,
  83. title varchar(255) NOT NULL default '',
  84. url varchar(255) NOT NULL default '',
  85. refresh int NOT NULL default '0',
  86. checked int NOT NULL default '0',
  87. link varchar(255) NOT NULL default '',
  88. description text NOT NULL default '',
  89. image text NOT NULL default '',
  90. etag varchar(255) NOT NULL default '',
  91. modified int NOT NULL default '0',
  92. block smallint NOT NULL default '0',
  93. PRIMARY KEY (fid),
  94. UNIQUE (url),
  95. UNIQUE (title)
  96. )");
  97. db_query("CREATE TABLE {aggregator_item} (
  98. iid serial,
  99. fid int NOT NULL default '0',
  100. title varchar(255) NOT NULL default '',
  101. link varchar(255) NOT NULL default '',
  102. author varchar(255) NOT NULL default '',
  103. description text NOT NULL,
  104. timestamp int default NULL,
  105. guid varchar(255),
  106. PRIMARY KEY (iid)
  107. )");
  108. db_query("CREATE INDEX {aggregator_item}_fid_idx ON {aggregator_item} (fid)");
  109. // Uninstall aggregator.module
  110. db_query("UPDATE {system} SET status = 0 WHERE name = 'aggregator'");
  111. // Update existing tables
  112. db_query('ALTER TABLE {aggregator_feed} DROP KEY link');
  113. db_query('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
  114. db_query('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
  115. db_query('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
  116. db_query('ALTER TABLE {aggregator_feed} DROP INDEX title');
  117. break;
  118. }
  119. }
  120. /**
  121. * Implementation of hook_uninstall().
  122. */
  123. function feedmanager_uninstall() {
  124. db_query('DROP TABLE {aggregator_category}');
  125. db_query('DROP TABLE {aggregator_category_feed}');
  126. db_query('DROP TABLE {aggregator_category_item}');
  127. db_query('DROP TABLE {aggregator_feed}');
  128. db_query('DROP TABLE {aggregator_item}');
  129. }
  130. function feedmanager_update_1() {
  131. switch ($GLOBALS['db_type']) {
  132. case 'mysql':
  133. case 'mysqli':
  134. $ret[] = update_sql('ALTER TABLE {aggregator_feed} DROP KEY link');
  135. $ret[] = update_sql('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
  136. $ret[] = update_sql('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
  137. $ret[] = update_sql('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
  138. $ret[] = update_sql('ALTER TABLE {aggregator_feed} DROP INDEX title');
  139. break;
  140. case 'pgsql':
  141. break;
  142. }
  143. return $ret;
  144. }
  145. ?>