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

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

Add display option. Optimizations.

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