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

Last change on this file since 9410 was 9410, checked in by patdenice, 13 years ago

Some optimizations.

File size: 4.0 KB
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 `level` TINYINT( 3 ) NOT NULL default "0" AFTER `groups`,
95ADD `on_root` enum(\'true\',\'false\') NOT NULL AFTER `on_home`
96;';
97  pwg_query($query);
98
99  $query = 'UPDATE ' . $prefixeTable . 'stuffs
100SET on_root = "false"
101WHERE on_cats = "false"
102;';
103  pwg_query($query);
104
105  $query = 'UPDATE ' . $prefixeTable . 'stuffs
106SET path = CONCAT("'.PHPWG_ROOT_PATH.'", "plugins/PWG_Stuffs/", path, "/")
107WHERE path <> "MainBlock"
108;';
109  pwg_query($query);
110
111  $query = 'UPDATE ' . $prefixeTable . 'stuffs
112SET path = NULL
113WHERE path = "MainBlock"
114;';
115  pwg_query($query);
116
117  $conf['Stuffs'] = array('level_perm' => false);
118
119  $query = 'SELECT id
120FROM '.$prefixeTable.'stuffs
121WHERE users <> "guest,generic,normal,admin,webmaster"
122;';
123  $ids = array_from_query($query, 'id');
124  $conf['Stuffs']['user_perm'] = !empty($ids);
125
126  $query = 'SELECT id
127FROM '.$prefixeTable.'stuffs
128WHERE groups IS NOT NULL
129;';
130  $ids = array_from_query($query, 'id');
131  $conf['Stuffs']['group_perm'] = !empty($ids);
132
133  $query = 'INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
134VALUES ("PWG_Stuffs" , "'.pwg_db_real_escape_string(serialize($conf['Stuffs'])).'" , "PWG Stuffs configuration");';
135  pwg_query($query); 
136}
137
138?>
Note: See TracBrowser for help on using the repository browser.