1 | <?php |
---|
2 | |
---|
3 | if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); |
---|
4 | |
---|
5 | global $prefixeTable, $conf; |
---|
6 | |
---|
7 | $query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;'; |
---|
8 | $result = array_from_query($query, 'Collation'); |
---|
9 | if (strpos($result[4], 'utf8') === false) |
---|
10 | { |
---|
11 | $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages |
---|
12 | MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL, |
---|
13 | MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL, |
---|
14 | MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL, |
---|
15 | DEFAULT CHARACTER SET utf8;'; |
---|
16 | |
---|
17 | pwg_query($query); |
---|
18 | } |
---|
19 | |
---|
20 | if ($conf['additional_pages'] === false) |
---|
21 | { |
---|
22 | load_conf_from_db('param = "additional_pages"'); |
---|
23 | $old_conf = explode ("," , $conf['additional_pages']); |
---|
24 | |
---|
25 | $query = ' |
---|
26 | ALTER TABLE ' . $prefixeTable . 'additionalpages |
---|
27 | CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT , |
---|
28 | CHANGE `pos` `pos` SMALLINT( 5 ) NULL DEFAULT NULL , |
---|
29 | CHANGE `lang` `lang` VARCHAR( 255 ) NULL DEFAULT NULL , |
---|
30 | CHANGE `text` `content` LONGTEXT NOT NULL , |
---|
31 | ADD `users` VARCHAR( 255 ) NULL DEFAULT NULL , |
---|
32 | ADD `groups` VARCHAR( 255 ) NULL DEFAULT NULL , |
---|
33 | ADD `permalink` VARCHAR( 64 ) NULL DEFAULT NULL , |
---|
34 | ADD `standalone` ENUM( "true", "false" ) NOT NULL DEFAULT "false";'; |
---|
35 | pwg_query($query); |
---|
36 | |
---|
37 | $query = ' |
---|
38 | SELECT id, pos, title, lang |
---|
39 | FROM '.$prefixeTable.'additionalpages |
---|
40 | ORDER BY pos ASC |
---|
41 | ;'; |
---|
42 | $result = pwg_query($query); |
---|
43 | while ($row = pwg_db_fetch_assoc($result)) |
---|
44 | { |
---|
45 | $title = $row['title']; |
---|
46 | $authorized_users = 'NULL'; |
---|
47 | $authorized_groups = 'NULL'; |
---|
48 | |
---|
49 | if ($old_conf[7] == 'on' and strpos($title , '/user_id=')) |
---|
50 | { |
---|
51 | $array = explode('/user_id=' , $title); |
---|
52 | $title = $array[0]; |
---|
53 | $authorized_users = !empty($array[1]) ? '"'.$array[1].'"' : '"admin"'; |
---|
54 | } |
---|
55 | if ($old_conf[6] == 'on' and strpos($title , '/group_id=')) |
---|
56 | { |
---|
57 | $array = explode('/group_id=' , $title); |
---|
58 | $title = $array[0]; |
---|
59 | $authorized_groups = !empty($array[1]) ? '"'.$array[1].'"' : 'NULL'; |
---|
60 | } |
---|
61 | |
---|
62 | $position = $row['pos']; |
---|
63 | if ($row['pos'] === '0') |
---|
64 | $position = '-100'; |
---|
65 | elseif (empty($row['pos'])) |
---|
66 | $position = '0'; |
---|
67 | |
---|
68 | $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL'; |
---|
69 | |
---|
70 | $query = ' |
---|
71 | UPDATE '.$prefixeTable.'additionalpages |
---|
72 | SET title = "'.addslashes($title).'", |
---|
73 | pos = '.$position.', |
---|
74 | lang = '.$language.', |
---|
75 | users = '.$authorized_users.', |
---|
76 | groups = '.$authorized_groups.' |
---|
77 | WHERE id = '.$row['id'].' |
---|
78 | ;'; |
---|
79 | pwg_query($query); |
---|
80 | } |
---|
81 | |
---|
82 | if ($old_conf[1] == 'off') |
---|
83 | { |
---|
84 | $mb_conf = @unserialize($conf['blk_menubar']); |
---|
85 | if (!isset($mb_conf['mbAdditionalPages'])) |
---|
86 | { |
---|
87 | $last = @abs(end($mb_conf)); |
---|
88 | $mb_conf['mbAdditionalPages'] = $last + 50; |
---|
89 | } |
---|
90 | $mb_conf['mbAdditionalPages'] = -1 * abs($mb_conf['mbAdditionalPages']); |
---|
91 | conf_update_param('blk_menubar', pwg_db_real_escape_string(serialize($mb_conf))); |
---|
92 | } |
---|
93 | |
---|
94 | $new_conf = array( |
---|
95 | 'show_home' => @($old_conf[2] == 'on'), |
---|
96 | 'group_perm' => @($old_conf[6] == 'on'), |
---|
97 | 'user_perm' => @($old_conf[7] == 'on'), |
---|
98 | 'homepage' => null, |
---|
99 | ); |
---|
100 | |
---|
101 | $languages = explode('/', $old_conf[0]); |
---|
102 | $new_conf['languages'] = array(); |
---|
103 | foreach($languages as $language) |
---|
104 | { |
---|
105 | $array = explode(':', $language); |
---|
106 | if (!isset($array[1])) $new_conf['languages']['default'] = $array[0]; |
---|
107 | else $new_conf['languages'][$array[0]] = $array[1]; |
---|
108 | } |
---|
109 | |
---|
110 | $conf['additional_pages'] = $new_conf; |
---|
111 | |
---|
112 | conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($new_conf))); |
---|
113 | } |
---|
114 | |
---|
115 | if (!isset($conf['additional_pages']['level_perm'])) |
---|
116 | { |
---|
117 | $query = ' |
---|
118 | ALTER TABLE ' . $prefixeTable . 'additionalpages |
---|
119 | ADD `level` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT "0" AFTER `groups` |
---|
120 | ;'; |
---|
121 | pwg_query($query); |
---|
122 | |
---|
123 | $query = ' |
---|
124 | UPDATE ' . $prefixeTable . 'additionalpages |
---|
125 | SET users = CONCAT( users, ",admin,webmaster" ) |
---|
126 | WHERE users IS NOT NULL |
---|
127 | ;'; |
---|
128 | pwg_query($query); |
---|
129 | |
---|
130 | $conf['additional_pages']['level_perm'] = false; |
---|
131 | |
---|
132 | conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($conf['additional_pages']))); |
---|
133 | } |
---|
134 | |
---|
135 | ?> |
---|