<?php

if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');

global $prefixeTable, $conf;

$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'stuffs;';
$result = array_from_query($query, 'Field');
if ($result[5] == 'params')
{
  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs
MODIFY COLUMN name TEXT CHARACTER SET utf8 NOT NULL,
MODIFY COLUMN descr VARCHAR(255) CHARACTER SET utf8 default NULL,
MODIFY COLUMN type VARCHAR(255) CHARACTER SET utf8 NOT NULL,
MODIFY COLUMN params VARCHAR(255) CHARACTER SET utf8 default NULL,
MODIFY COLUMN datas LONGTEXT CHARACTER SET utf8 default NULL,
MODIFY COLUMN users VARCHAR(255) CHARACTER SET utf8 default NULL,
MODIFY COLUMN groups VARCHAR(255) CHARACTER SET utf8 default NULL,
DEFAULT CHARACTER SET utf8,
ADD show_title ENUM(\'true\',\'false\') NOT NULL,
ADD on_home ENUM(\'true\',\'false\') NOT NULL,
ADD on_cats ENUM(\'true\',\'false\') NOT NULL,
ADD on_picture ENUM(\'true\',\'false\') NOT NULL,
ADD id_line VARCHAR(1) default NULL,
ADD width SMALLINT(9) default NULL,
ADD INDEX (on_home),
ADD INDEX (on_cats),
ADD INDEX (on_picture);';

  pwg_query($query);
  
  $query = 'SELECT id, name, type, params, datas FROM ' . $prefixeTable . 'stuffs;';
  $result = pwg_query($query);
  
  $modules = array();
  while ($row = mysql_fetch_assoc($result))
  {
    if ($row['name'] != 'MainBlock')
    {
      $array = array();
      foreach (explode('///', $row['name']) as $name)
      {
        $a = explode(':', $name);
        array_push($array, '[lang='.substr($a[0],0,2).']'.$a[1].'[/lang]');
      }
      $new_name = implode("\r\n", $array);
    }
    else
    {
      $new_name = 'MainBlock';
    }

    if ($row['type'] == 'LastComs')
    {
      $datas = unserialize($row['datas']);
      $row['datas'] = serialize(array($datas[0], $datas[1], $datas[6], $datas[2], $datas[3]));
    }
  
    $params = explode(',', $row['params']);
    $params[4] = !empty($params[4]) ? '"'.$params[4].'"' : 'NULL';
    $params[5] = !empty($params[5]) ? $params[5] : 'NULL';

    $query = 'UPDATE ' . $prefixeTable . 'stuffs
SET
  name = "'. $new_name . '",
  datas = "' . addslashes($row['datas']) . '",
  show_title = "'. ($params[0] ? 'true' : 'false') .'",
  on_home = "'. ($params[1] ? 'true' : 'false') .'",
  on_cats = "'. ($params[2] ? 'true' : 'false') .'",
  on_picture = "'. ($params[3] ? 'true' : 'false') .'",
  id_line = '. $params[4] .',
  width = '. $params[5] .'
WHERE id = '.$row['id'].';';

    pwg_query($query);
  }

  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs DROP params;';
  pwg_query($query);

  if (isset($conf['Stuffs']))
  {
    $q = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="Stuffs" LIMIT 1;';
    pwg_query($q);
  }
}

$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'stuffs;';
$result = array_from_query($query, 'Field');
if ($result[4] != 'path')
{
  $query = 'ALTER TABLE ' . $prefixeTable . 'stuffs
CHANGE `type` `path` VARCHAR( 255 ) NULL DEFAULT NULL,
ADD `parent` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `path`
;';
  pwg_query($query);

  $query = 'UPDATE ' . $prefixeTable . 'stuffs
SET path = CONCAT("'.PHPWG_ROOT_PATH.'", "plugins/PWG_Stuffs/", path, "/")
WHERE path <> "MainBlock"
;';
  pwg_query($query);

  $query = 'UPDATE ' . $prefixeTable . 'stuffs
SET path = NULL
WHERE path = "MainBlock"
;';
  pwg_query($query);
}

$query = '
UPDATE ' . PLUGINS_TABLE . '
SET version=\''.STUFFS_VERSION.'\'
WHERE id=\'PWG_Stuffs\'';
pwg_query($query);

?>