PageRenderTime 39ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/textpattern/update/_to_xp_1.0.0.php

https://bitbucket.org/Manfre/xpattern
PHP | 216 lines | 177 code | 31 blank | 8 comment | 28 complexity | c9ecd7d8766d02507242af9be5d395a7 MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. if (!defined('XPAT_UPDATE'))
  3. {
  4. exit("Nothing here. You can't access this file directly.");
  5. }
  6. $version = mysql_get_server_info();
  7. //Use "ENGINE" if version of MySQL > (4.0.18 or 4.1.2)
  8. $tabletype = ( intval($version[0]) >= 5 || preg_match('#^4\.(0\.[2-9]|(1[89]))|(1\.[2-9])#',$version))
  9. ? " ENGINE=MyISAM "
  10. : " TYPE=MyISAM ";
  11. global $txpcfg;
  12. $dbcharset = $txpcfg['dbcharset'];
  13. // On 4.1 or greater use utf8-tables
  14. if ( isset($dbcharset) && (intval($version[0]) >= 5 || preg_match('#^4\.[1-9]#',$version)))
  15. {
  16. $tabletype .= " CHARACTER SET = $dbcharset ";
  17. if ($dbcharset == 'utf8')
  18. $tabletype .= " COLLATE utf8_general_ci ";
  19. mysql_query("SET NAMES ".$dbcharset);
  20. }
  21. safe_alter( 'txp_lang' , ' CHANGE `data` `data` TEXT NULL DEFAULT NULL' );
  22. $table_blurb = @getThings('describe '.safe_pfx('blurb'));
  23. if (empty($table_blurb))
  24. {
  25. safe_query("CREATE TABLE ".safe_pfx("blurb")." (
  26. `id` INT NOT NULL AUTO_INCREMENT ,
  27. `name` VARCHAR( 64 ) NOT NULL ,
  28. `type` VARCHAR( 32 ) NOT NULL ,
  29. `theme` VARCHAR( 32 ) NOT NULL DEFAULT 'default',
  30. `content` TEXT NOT NULL ,
  31. `mime_type` VARCHAR( 64 ) NOT NULL DEFAULT '',
  32. PRIMARY KEY ( `id` ) ,
  33. UNIQUE `hash` ( `name` , `type` , `theme` )
  34. ) $tabletype PACK_KEYS=1");
  35. // migrate txp_page to blurb
  36. safe_query("INSERT INTO ".safe_pfx('blurb')." (`name`, `type`, `theme`, `content`, `mime_type`) SELECT `name`, 'page' as `type`, '' as `theme`, `user_html` as `content`, '' as mime_type FROM `txp_page` WHERE 1");
  37. // migrate txp_form to blurb
  38. safe_query("INSERT INTO ".safe_pfx('blurb')." (`name`, `type`, `theme`, `content`, `mime_type`) SELECT `name`, 'form' as `type`, '' as `theme`, `Form` as `content`, '' as `mime_type` FROM `txp_form` WHERE 1");
  39. // migrate txp_css to blurb
  40. safe_query("INSERT INTO ".safe_pfx('blurb')." (`name`, `type`, `theme`, `content`, `mime_type`) SELECT `name`, 'css' as `type`, '' as `theme`, `css` as `content`, 'text/css' as `mime_type` FROM `txp_css` WHERE 1");
  41. }
  42. $table_admin_log = @getThings('describe '.safe_pfx('admin_log'));
  43. if (empty($table_admin_log))
  44. {
  45. safe_query("CREATE TABLE ".safe_pfx("admin_log")." (
  46. `log_id` int( 12 ) NOT NULL auto_increment,
  47. `time` datetime NOT NULL default '0000-00-00 00:00:00',
  48. `event` varchar( 32 ) NOT NULL default '',
  49. `step` varchar( 32 ) NOT NULL default '',
  50. `ip` int( 12 ) NOT NULL default '0',
  51. `user` varchar( 64 ) NOT NULL default '',
  52. `message` varchar( 128 ) NOT NULL default '',
  53. PRIMARY KEY (`log_id`),
  54. KEY `time` (`time`)
  55. ) $tabletype AUTO_INCREMENT=1 ");
  56. }
  57. # Login updates...
  58. if (safe_field('val', 'txp_prefs', "name='hide_login_in_email'") === false)
  59. {
  60. safe_insert('txp_prefs', "prefs_id = 1, name = 'hide_login_in_email', val = 0, type = 1, event = 'admin', html = 'yesnoradio', position = 160");
  61. }
  62. if (safe_field('val', 'txp_prefs', "name='hash_alg'") === false)
  63. {
  64. safe_insert('txp_prefs', "prefs_id = 1, name = 'hash_alg', val = 'sha256', type = 1, event = 'admin', html = 'hash_picker', position = 160");
  65. }
  66. if (safe_field('val', 'txp_prefs', "name='adminstyle'") === false)
  67. {
  68. safe_insert('txp_prefs', "prefs_id = 1, name = 'adminstyle', val = 'chapman.css', type = 1, event = 'admin', html = 'get_admin_styles', position = 161");
  69. }
  70. if (safe_field('val', 'txp_prefs', "name='admin_email'") === false)
  71. {
  72. safe_insert('txp_prefs', "prefs_id = 1, name = 'admin_email', val = '', type = 1, event = 'admin', html = 'text_input', position = 160");
  73. }
  74. if (safe_field('val', 'txp_prefs', "name='plugin_dir_name'") === false)
  75. {
  76. safe_insert('txp_prefs', "prefs_id = 1, name = 'plugin_dir_name', val = 'plugin', type = 2, event = 'admin', html = 'text_input', position = 160");
  77. }
  78. if (safe_field('val', 'txp_prefs', "name='comments_sendmail_spam'") === false)
  79. {
  80. safe_update('txp_prefs', "position = 161", "name='comments_sendmail'");
  81. safe_insert('txp_prefs', "prefs_id = 1, name = 'comments_sendmail_spam', val = 0, type = 0, event = 'comments', html = 'yesnoradio', position = 161");
  82. }
  83. if (safe_field('val', 'txp_prefs', "name='lang_rpc_server'") === false)
  84. {
  85. safe_insert('txp_prefs', "prefs_id = 1, name = 'lang_rpc_server', val = '', type = 1, event = 'admin', html = 'text_input', position = 0");
  86. }
  87. $table_group = @getThings('describe '.safe_pfx('group'));
  88. if (empty($table_group))
  89. {
  90. safe_query("CREATE TABLE ".safe_pfx("group")." (
  91. `id` int(6) NOT NULL,
  92. `name` varchar(64) NOT NULL default '',
  93. PRIMARY KEY (`id`),
  94. UNIQUE KEY `name` (`name`)
  95. ) $tabletype PACK_KEYS=1");
  96. safe_query('INSERT INTO '.safe_pfx('group')." ( `id`, `name` )
  97. VALUES (0, 'none'), (1, 'publisher'), (2, 'managing_editor'), (3, 'copy_editor'), (4, 'staff_writer'), (5, 'freelancer'), (6, 'designer')");
  98. }
  99. $table_category_map = @getThings('describe '.safe_pfx('category_map'));
  100. if (empty($table_category_map))
  101. {
  102. safe_query("CREATE TABLE ".safe_pfx('category_map')." (
  103. `id` int(11) NOT NULL auto_increment,
  104. `category_id` int(11) NOT NULL,
  105. `type` varchar(25) NOT NULL,
  106. `type_id` int(11) NOT NULL,
  107. PRIMARY KEY (`id`),
  108. UNIQUE KEY `category_id` (`category_id`,`type`,`type_id`)
  109. ) $tabletype ");
  110. function get_category_lookup($type)
  111. {
  112. $c = safe_rows('*', 'txp_category', "type='". doSlash($type)."'");
  113. $cats = Array();
  114. foreach ($c as $cat)
  115. {
  116. $cats[$cat['name']] = $cat;
  117. }
  118. return $cats;
  119. }
  120. // migrate article categories
  121. $articles = safe_rows('ID, Category1, Category2', 'textpattern', '1=1');
  122. if ($articles)
  123. {
  124. $cats = get_category_lookup('article');
  125. foreach ($articles as $a)
  126. {
  127. $c_field = 'Category1';
  128. if (!empty($a[$c_field]) && array_key_exists($a[$c_field], $cats))
  129. {
  130. @safe_insert('category_map',
  131. "category_id = ". doSlash($cats[$a[$c_field]]['id']). ",
  132. type = 'article',
  133. type_id = " . doSlash($a['ID']));
  134. }
  135. $c_field = 'Category2';
  136. if (!empty($a[$c_field]) && array_key_exists($a[$c_field], $cats))
  137. {
  138. @safe_insert('category_map',
  139. "category_id = ". doSlash($cats[$a[$c_field]]['id']). ",
  140. type = 'article',
  141. type_id = " . doSlash($a['ID']));
  142. }
  143. }
  144. unset($cats);
  145. }
  146. unset($articles);
  147. // migrate file categories
  148. $files = safe_rows('id, category', 'txp_file', '1=1');
  149. if ($files)
  150. {
  151. $cats = get_category_lookup('file');
  152. foreach ($files as $f)
  153. {
  154. if (!empty($f['category']) && array_key_exists($f['category'], $cats))
  155. {
  156. @safe_insert('category_map',
  157. "category_id = ". doSlash($cats[$f['category']]['id']) .",
  158. type = 'file',
  159. type_id = " . doSlash($f['id']));
  160. }
  161. }
  162. unset($cats);
  163. }
  164. unset($files);
  165. // migrate image categories
  166. $images = safe_rows('id, category', 'txp_image', '1=1');
  167. if ($images)
  168. {
  169. $cats = get_category_lookup('image');
  170. foreach ($images as $img)
  171. {
  172. if (!empty($img['category']) && array_key_exists($img['category'], $cats))
  173. {
  174. @safe_insert('category_map',
  175. "category_id = ". doSlash($cats[$img['category']]['id']) .",
  176. type = 'image',
  177. type_id = " . doSlash($img['id']));
  178. }
  179. }
  180. unset($cats);
  181. }
  182. unset($images);
  183. }
  184. ?>