source: extensions/PWG_Stuffs/admin/upgrade.inc.php @ 9369

Revision 9369, 3.4 KB checked in by patdenice, 9 years ago (diff)

Plugins can add their own modules.

Line 
1<?php
2
3if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
4
5global $prefixeTable, $conf;
6
7$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'stuffs;';
8$result = array_from_query($query, 'Field');
9if ($result[5] == 'params')
10{
11  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs
12MODIFY COLUMN name TEXT CHARACTER SET utf8 NOT NULL,
13MODIFY COLUMN descr VARCHAR(255) CHARACTER SET utf8 default NULL,
14MODIFY COLUMN type VARCHAR(255) CHARACTER SET utf8 NOT NULL,
15MODIFY COLUMN params VARCHAR(255) CHARACTER SET utf8 default NULL,
16MODIFY COLUMN datas LONGTEXT CHARACTER SET utf8 default NULL,
17MODIFY COLUMN users VARCHAR(255) CHARACTER SET utf8 default NULL,
18MODIFY COLUMN groups VARCHAR(255) CHARACTER SET utf8 default NULL,
19DEFAULT CHARACTER SET utf8,
20ADD show_title ENUM(\'true\',\'false\') NOT NULL,
21ADD on_home ENUM(\'true\',\'false\') NOT NULL,
22ADD on_cats ENUM(\'true\',\'false\') NOT NULL,
23ADD on_picture ENUM(\'true\',\'false\') NOT NULL,
24ADD id_line VARCHAR(1) default NULL,
25ADD width SMALLINT(9) default NULL,
26ADD INDEX (on_home),
27ADD INDEX (on_cats),
28ADD INDEX (on_picture);';
29
30  pwg_query($query);
31 
32  $query = 'SELECT id, name, type, params, datas FROM ' . $prefixeTable . 'stuffs;';
33  $result = pwg_query($query);
34 
35  $modules = array();
36  while ($row = mysql_fetch_assoc($result))
37  {
38    if ($row['name'] != 'MainBlock')
39    {
40      $array = array();
41      foreach (explode('///', $row['name']) as $name)
42      {
43        $a = explode(':', $name);
44        array_push($array, '[lang='.substr($a[0],0,2).']'.$a[1].'[/lang]');
45      }
46      $new_name = implode("\r\n", $array);
47    }
48    else
49    {
50      $new_name = 'MainBlock';
51    }
52
53    if ($row['type'] == 'LastComs')
54    {
55      $datas = unserialize($row['datas']);
56      $row['datas'] = serialize(array($datas[0], $datas[1], $datas[6], $datas[2], $datas[3]));
57    }
58 
59    $params = explode(',', $row['params']);
60    $params[4] = !empty($params[4]) ? '"'.$params[4].'"' : 'NULL';
61    $params[5] = !empty($params[5]) ? $params[5] : 'NULL';
62
63    $query = 'UPDATE ' . $prefixeTable . 'stuffs
64SET
65  name = "'. $new_name . '",
66  datas = "' . addslashes($row['datas']) . '",
67  show_title = "'. ($params[0] ? 'true' : 'false') .'",
68  on_home = "'. ($params[1] ? 'true' : 'false') .'",
69  on_cats = "'. ($params[2] ? 'true' : 'false') .'",
70  on_picture = "'. ($params[3] ? 'true' : 'false') .'",
71  id_line = '. $params[4] .',
72  width = '. $params[5] .'
73WHERE id = '.$row['id'].';';
74
75    pwg_query($query);
76  }
77
78  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs DROP params;';
79  pwg_query($query);
80
81  if (isset($conf['Stuffs']))
82  {
83    $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="Stuffs" LIMIT 1;';
84    pwg_query($q);
85  }
86}
87
88$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'stuffs;';
89$result = array_from_query($query, 'Field');
90if ($result[4] != 'path')
91{
92  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs
93CHANGE `type` `path` VARCHAR( 255 ) NULL DEFAULT NULL,
94ADD `parent` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `path`
95;';
96  pwg_query($query);
97
98  $query = 'UPDATE ' . $prefixeTable . 'stuffs
99SET path = CONCAT("'.PHPWG_ROOT_PATH.'", "plugins/PWG_Stuffs/", path, "/")
100WHERE path <> "MainBlock"
101;';
102  pwg_query($query);
103
104  $query = 'UPDATE ' . $prefixeTable . 'stuffs
105SET path = NULL
106WHERE path = "MainBlock"
107;';
108  pwg_query($query);
109}
110
111$query = '
112UPDATE ' . PLUGINS_TABLE . '
113SET version=\''.STUFFS_VERSION.'\'
114WHERE id=\'PWG_Stuffs\'';
115pwg_query($query);
116
117?>
Note: See TracBrowser for help on using the repository browser.