source: extensions/AdditionalPages/admin/upgrade_from_21.php @ 9275

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

Permalink accept special chars.
Bug correction.

File size: 2.8 KB
Line 
1<?php
2
3if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
4
5global $prefixeTable, $conf;
6
7load_conf_from_db('param = "additional_pages"');
8$old_conf = explode ("," , $conf['additional_pages']);
9
10$query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
11CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
12CHANGE `pos` `pos` SMALLINT( 5 ) NULL DEFAULT NULL ,
13CHANGE `lang` `lang` VARCHAR( 255 ) NULL DEFAULT NULL ,
14CHANGE `text` `content` LONGTEXT NOT NULL ,
15ADD `users` VARCHAR( 255 ) NULL DEFAULT NULL ,
16ADD `groups` VARCHAR( 255 ) NULL DEFAULT NULL ,
17ADD `permalink` VARCHAR( 64 ) NULL DEFAULT NULL ,
18ADD `standalone` ENUM( "true", "false" ) NOT NULL DEFAULT "false";';
19pwg_query($query);
20
21$query = '
22SELECT id, pos, title, lang
23FROM '.$prefixeTable.'additionalpages
24ORDER BY pos ASC
25;';
26$result = pwg_query($query);
27while ($row = mysql_fetch_assoc($result))
28{
29  $title = $row['title'];
30  $authorized_users = 'NULL';
31  $authorized_groups = 'NULL';
32
33  if ($old_conf[7] == 'on' and strpos($title , '/user_id='))
34  {
35    $array = explode('/user_id=' , $title);
36    $title = $array[0];
37    $authorized_users = !empty($array[1]) ? '"'.$array[1].'"' : '"admin"';
38  }
39  if ($old_conf[6] == 'on' and strpos($title , '/group_id='))
40  {
41    $array = explode('/group_id=' , $title);
42    $title = $array[0];
43    $authorized_groups = !empty($array[1]) ? '"'.$array[1].'"' : 'NULL';
44  }
45
46  $position = $row['pos'];
47  if ($row['pos'] === '0')
48    $position = '-100';
49  elseif (empty($row['pos']))
50    $position = '0';
51
52  $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL';
53
54  $query = '
55UPDATE '.$prefixeTable.'additionalpages
56SET title = "'.addslashes($title).'",
57    pos = '.$position.',
58    lang = '.$language.',
59    users = '.$authorized_users.',
60    groups = '.$authorized_groups.'
61WHERE id = '.$row['id'].'
62;';
63  pwg_query($query);
64}
65
66if ($old_conf[1] == 'off')
67{
68  $mb_conf = @unserialize($conf['blk_menubar']);
69  if (!isset($mb_conf['mbAdditionalPages']))
70  {
71    $last = @abs(end($mb_conf));
72    $mb_conf['mbAdditionalPages'] = $last + 50;
73  }
74  $mb_conf['mbAdditionalPages'] = -1 * abs($mb_conf['mbAdditionalPages']);
75  conf_update_param('blk_menubar', pwg_db_real_escape_string(serialize($mb_conf)));
76}
77
78$new_conf = array(
79  'show_home' => @($old_conf[2] == 'on'),
80  'group_perm' => @($old_conf[6] == 'on'),
81  'user_perm' => @($old_conf[7] == 'on'),
82  'homepage' => null,
83  );
84
85$languages = explode('/', $old_conf[0]);
86$new_conf['languages'] = array();
87foreach($languages as $language)
88{
89  $array = explode(':', $language);
90  if (!isset($array[1])) $new_conf['languages']['default'] = $array[0];
91  else $new_conf['languages'][$array[0]] = $array[1];
92}
93
94$conf['additional_pages'] = $new_conf;
95
96conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($new_conf)));
97
98?>
Note: See TracBrowser for help on using the repository browser.