Ignore:
Timestamp:
Feb 19, 2011, 11:13:22 PM (13 years ago)
Author:
patdenice
Message:

Lot of optimization.
Add privacy level management.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • extensions/AdditionalPages/admin/upgrade.inc.php

    r9275 r9310  
    55global $prefixeTable, $conf;
    66
    7 load_conf_from_db('param = "additional_pages"');
    8 $old_conf = explode ("," , $conf['additional_pages']);
     7$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;';
     8$result = array_from_query($query, 'Collation');
     9if (strpos($result[4], 'utf8') === false)
     10{
     11  $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
     12MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL,
     13MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL,
     14MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL,
     15DEFAULT CHARACTER SET utf8;';
    916
    10 $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
     17  pwg_query($query);
     18}
     19
     20if ($conf['additional_pages'] === false)
     21{
     22  load_conf_from_db('param = "additional_pages"');
     23  $old_conf = explode ("," , $conf['additional_pages']);
     24
     25  $query = '
     26ALTER TABLE ' . $prefixeTable . 'additionalpages
    1127CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
    1228CHANGE `pos` `pos` SMALLINT( 5 ) NULL DEFAULT NULL ,
     
    1733ADD `permalink` VARCHAR( 64 ) NULL DEFAULT NULL ,
    1834ADD `standalone` ENUM( "true", "false" ) NOT NULL DEFAULT "false";';
    19 pwg_query($query);
     35  pwg_query($query);
    2036
    21 $query = '
     37  $query = '
    2238SELECT id, pos, title, lang
    2339FROM '.$prefixeTable.'additionalpages
    2440ORDER BY pos ASC
    2541;';
    26 $result = pwg_query($query);
    27 while ($row = mysql_fetch_assoc($result))
    28 {
    29   $title = $row['title'];
    30   $authorized_users = 'NULL';
    31   $authorized_groups = 'NULL';
     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';
    3248
    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   }
     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    }
    4561
    46   $position = $row['pos'];
    47   if ($row['pos'] === '0')
    48     $position = '-100';
    49   elseif (empty($row['pos']))
    50     $position = '0';
     62    $position = $row['pos'];
     63    if ($row['pos'] === '0')
     64      $position = '-100';
     65    elseif (empty($row['pos']))
     66      $position = '0';
    5167
    52   $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL';
     68    $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL';
    5369
    54   $query = '
     70    $query = '
    5571UPDATE '.$prefixeTable.'additionalpages
    5672SET title = "'.addslashes($title).'",
     
    6177WHERE id = '.$row['id'].'
    6278;';
    63   pwg_query($query);
     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)));
    64113}
    65114
    66 if ($old_conf[1] == 'off')
     115if (!isset($conf['additional_pages']['level_perm']))
    67116{
    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)));
     117  $query = '
     118ALTER TABLE ' . $prefixeTable . 'additionalpages
     119ADD `level` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT "0" AFTER `groups`
     120;';
     121  pwg_query($query);
     122
     123  $query = '
     124UPDATE ' . $prefixeTable . 'additionalpages
     125SET users = CONCAT( users, ",admin,webmaster" )
     126WHERE 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'])));
    76133}
    77134
    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();
    87 foreach($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 
    96 conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($new_conf)));
    97 
    98135?>
Note: See TracChangeset for help on using the changeset viewer.