<?php
class MasterBadge_Install extends Milano_Common_Install
{
/* Start auto-generated lines of code. */
protected static function _getTables()
{
return array(
'xf_badge' => array(
'badge_id' => 'INT(10) UNSIGNED AUTO_INCREMENT',
'display_order' => 'INT(10) UNSIGNED NOT NULL DEFAULT \'0\'',
'trophy_count' => 'INT(10) UNSIGNED NOT NULL DEFAULT \'0\'',
'type' => 'ENUM (\'visible\',\'step\',\'hidden\') DEFAULT \'visible\'',
'create_date' => 'INT(10) UNSIGNED NOT NULL',
'EXTRA' => 'PRIMARY KEY (`badge_id`), KEY badge_id_date (badge_id, create_date), INDEX `badge_id` (`badge_id`)',
),
);
}
protected static function _getTablePatches()
{
return array(
'xf_trophy' => array(
'trophy_key' => 'VARBINARY(35) NOT NULL DEFAULT \'\'',
'badge_id' => 'INT(10) UNSIGNED NOT NULL DEFAULT \'0\'',
'trophy_order' => 'INT(10) UNSIGNED NOT NULL DEFAULT \'0\'',
'icon_date' => 'INT(10) UNSIGNED NOT NULL DEFAULT \'0\'',
'callback_class' => 'VARCHAR(75) NOT NULL DEFAULT \'\'',
'callback_method' => 'VARCHAR(50) NOT NULL DEFAULT \'\'',
),
'xf_user' => array('favorite_badge' => 'MEDIUMBLOB NULL'),
);
}
/* End auto-generated lines of code. */
protected static function _postInstall()
{
if (!empty(static::$existingAddOn))
{
// Only run if current version < 1.5.2
if (static::$existingAddOn['version_id'] < 96)
{
static::_getDb()->query('UPDATE xf_user SET favorite_badge = \'\'');
}
// Only run if current version < 1.5.4
if (static::$existingAddOn['version_id'] < 104)
{
static::_getDb()->query('ALTER TABLE xf_user CHANGE `favorite_badge` `favorite_badge` MEDIUMBLOB NULL');
}
}
}
protected static function _postInstallAfterTransaction()
{
if (!empty(static::$existingAddOn))
{
// Only run if current version < 1.6.0
if (static::$existingAddOn['version_id'] < 110)
{
static::_getDb()->query('ALTER TABLE xf_user CHANGE `favorite_badge` `favorite_badge` MEDIUMBLOB NULL');
}
}
}
}