123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996 |
- /* ATTENTION: You don't need to run or use this file! The upgrade.php script does everything for you! */
- /******************************************************************************/
- --- Updating custom fields.
- /******************************************************************************/
- ---# Adding search ability to custom fields.
- ---{
- $smcFunc['db_alter_table']('{db_prefix}custom_fields', array(
- 'add' => array(
- 'can_search' => array(
- 'name' => 'can_search',
- 'null' => false,
- 'default' => 0,
- 'type' => 'smallint',
- 'size' => 255,
- 'auto' => false,
- ),
- ),
- ));
- if (isset($modSettings['smfVersion']) && $modSettings['smfVersion'] < '2.0 Beta 4')
- {
- upgrade_query("
- UPDATE {$db_prefix}custom_fields
- SET private = 3
- WHERE private = 2");
- }
- ---}
- ---#
- ---# Adding new custom fields columns.
- ---{
- $smcFunc['db_alter_table']('{db_prefix}custom_fields', array(
- 'add' => array(
- 'enclose' => array(
- 'name' => 'enclose',
- 'null' => false,
- 'default' => '',
- 'type' => 'text',
- 'auto' => false,
- ),
- )
- ));
- $smcFunc['db_alter_table']('{db_prefix}custom_fields', array(
- 'add' => array(
- 'placement' => array(
- 'name' => 'placement',
- 'null' => false,
- 'default' => '',
- 'type' => 'smallint',
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- ---# Fixing default value for the "show_profile" column
- ---{
- $smcFunc['db_alter_table']('{db_prefix}custom_fields', array(
- 'change' => array(
- 'show_profile' => array(
- 'name' => 'show_profile',
- 'null' => false,
- 'default' => 'forumprofile',
- 'type' => 'varchar(20)',
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- ALTER TABLE {$db_prefix}custom_fields
- ALTER COLUMN show_profile DEFAULT 'forumprofile';
- ---#
- /******************************************************************************/
- --- Adding search engine tracking.
- /******************************************************************************/
- ---# Creating spider table.
- CREATE TABLE {$db_prefix}spiders (
- id_spider integer primary key,
- spider_name varchar(255) NOT NULL,
- user_agent varchar(255) NOT NULL,
- ip_info varchar(255) NOT NULL
- );
- ---#
- ---# Inserting the search engines.
- ---{
- $smcFunc['db_insert']('ignore',
- '{db_prefix}spiders',
- array('id_spider' => 'int', 'spider_name' => 'string-255', 'user_agent' => 'string-255', 'ip_info' => 'string-255'),
- array(
- array(1, 'Google', 'googlebot', ''),
- array(2, 'Yahoo!', 'slurp', ''),
- array(3, 'MSN', 'msnbot', ''),
- array(4, 'Google (Mobile)', 'Googlebot-Mobile', ''),
- array(5, 'Google (Image)', 'Googlebot-Image', ''),
- array(6, 'Google (AdSense)', 'Mediapartners-Google', ''),
- array(7, 'Google (Adwords)', 'AdsBot-Google', ''),
- array(8, 'Yahoo! (Mobile)', 'YahooSeeker/M1A1-R2D2', ''),
- array(9, 'Yahoo! (Image)', 'Yahoo-MMCrawler', ''),
- array(10, 'MSN (Mobile)', 'MSNBOT_Mobile', ''),
- array(11, 'MSN (Media)', 'msnbot-media', ''),
- array(12, 'Cuil', 'twiceler', ''),
- array(13, 'Ask', 'Teoma', ''),
- array(14, 'Baidu', 'Baiduspider', ''),
- array(15, 'Gigablast', 'Gigabot', ''),
- array(16, 'InternetArchive', 'ia_archiver-web.archive.org', ''),
- array(17, 'Alexa', 'ia_archiver', ''),
- array(18, 'Omgili', 'omgilibot', ''),
- array(19, 'EntireWeb', 'Speedy Spider', '')
- ),
- array('user_agent')
- );
- ---}
- ---#
- ---# Removing a spider.
- ---{
- upgrade_query("
- DELETE FROM {$db_prefix}spiders
- WHERE user_agent = 'yahoo'
- AND spider_name = 'Yahoo! (Publisher)'
- ");
- ---}
- ---#
- ---# Creating spider hit tracking table.
- CREATE TABLE {$db_prefix}log_spider_hits (
- id_spider integer NOT NULL default '0',
- session varchar(32) NOT NULL default '',
- log_time int NOT NULL,
- url varchar(255) NOT NULL,
- processed smallint NOT NULL default '0'
- );
- CREATE INDEX {$db_prefix}log_spider_hits_id_spider ON {$db_prefix}log_spider_hits (id_spider);
- CREATE INDEX {$db_prefix}log_spider_hits_log_time ON {$db_prefix}log_spider_hits (log_time);
- CREATE INDEX {$db_prefix}log_spider_hits_processed ON {$db_prefix}log_spider_hits (processed);
- ---#
- ---# Creating spider statistic table.
- CREATE TABLE {$db_prefix}log_spider_stats (
- id_spider integer NOT NULL default '0',
- unique_visits smallint NOT NULL default '0',
- page_hits smallint NOT NULL default '0',
- last_seen int NOT NULL default '0',
- stat_date date NOT NULL default '0001-01-01',
- PRIMARY KEY (stat_date, id_spider)
- );
- ---#
- /******************************************************************************/
- --- Adding new forum settings.
- /******************************************************************************/
- ---# Enable cache if upgrading from 2.0 beta 1 and lower.
- ---{
- if (isset($modSettings['smfVersion']) && $modSettings['smfVersion'] <= '2.0 Beta 1')
- {
- $request = upgrade_query("
- SELECT value
- FROM {$db_prefix}settings
- WHERE variable = 'cache_enable'");
- list ($cache_enable) = $smcFunc['db_fetch_row']($request);
- // No cache before
- if ($smcFunc['db_num_rows']($request) == 0)
- upgrade_query("
- INSERT INTO {$db_prefix}settings
- (variable, value)
- VALUES ('cache_enable', '1')");
- elseif (empty($cache_enable))
- upgrade_query("
- UPDATE {$db_prefix}settings
- SET value = '1'
- WHERE variable = 'cache_enable'");
- }
- ---}
- ---#
- ---# Adding advanced password brute force protection to "members" table...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}members', array(
- 'add' => array(
- 'passwd_flood' => array(
- 'name' => 'passwd_flood',
- 'null' => false,
- 'default' => '',
- 'type' => 'varchar',
- 'size' => 12,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- ---# Ensuring forum width setting present...
- ---{
- // Don't do this twice!
- $smcFunc['db_insert']('ignore',
- '{db_prefix}themes',
- array('id_theme' => 'int', 'variable' => 'string-255', 'value' => 'string-255'),
- array(1, 'forum_width', '90%'),
- array('id_theme', 'variable', 'value')
- );
- ---}
- ---#
- /******************************************************************************/
- --- Adding weekly maintenance task.
- /******************************************************************************/
- ---# Adding weekly maintenance task...
- ---{
- $smcFunc['db_insert']('ignore',
- '{db_prefix}scheduled_tasks',
- array(
- 'next_time' => 'int', 'time_offset' => 'int', 'time_regularity' => 'int',
- 'time_unit' => 'string', 'disabled' => 'int', 'task' => 'string',
- ),
- array(
- 0, 0, 1, 'w', 0, 'weekly_maintenance',
- ),
- array('task')
- );
- ---}
- ---#
- ---# Setting the birthday email template if not set...
- ---{
- if (!isset($modSettings['birthday_email']))
- {
- upgrade_query("
- INSERT INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('birthday_email', 'happy_birthday')");
- }
- ---}
- ---#
- /******************************************************************************/
- --- Adding log pruning.
- /******************************************************************************/
- ---# Adding pruning option...
- ---{
- $smcFunc['db_insert']('ignore',
- '{db_prefix}settings',
- array('variable' => 'string-255', 'value' => 'string-65534'),
- array('pruningOptions', '30,180,180,180,30'),
- array('variable')
- );
- ---}
- ---#
- /******************************************************************************/
- --- Updating mail queue functionality.
- /******************************************************************************/
- ---# Adding type to mail queue...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}mail_queue', array(
- 'add' => array(
- 'private' => array(
- 'name' => 'private',
- 'null' => false,
- 'default' => 0,
- 'type' => 'smallint',
- 'size' => 1,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Updating attachments.
- /******************************************************************************/
- ---# Adding multiple attachment path functionality.
- ---{
- $smcFunc['db_alter_table']('{db_prefix}attachments', array(
- 'add' => array(
- 'id_folder' => array(
- 'name' => 'id_folder',
- 'null' => false,
- 'default' => 1,
- 'type' => 'smallint',
- 'size' => 255,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- ---# Adding file hash.
- ---{
- $smcFunc['db_alter_table']('{db_prefix}attachments', array(
- 'add' => array(
- 'file_hash' => array(
- 'name' => 'file_hash',
- 'null' => false,
- 'default' => '',
- 'type' => 'varchar',
- 'size' => 40,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Providing more room for apf options.
- /******************************************************************************/
- ---# Changing field_options column to a larger field type...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}custom_fields', array(
- 'change' => array(
- 'aim' => array(
- 'name' => 'field_options',
- 'null' => false,
- 'type' => 'text',
- 'default' => ''
- )
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Adding extra columns to polls.
- /******************************************************************************/
- ---# Adding reset poll timestamp and guest voters counter...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}polls', array(
- 'add' => array(
- 'reset_poll' => array(
- 'name' => 'reset_poll',
- 'null' => false,
- 'default' => 0,
- 'type' => 'int',
- 'size' => 10,
- 'auto' => false,
- ),
- 'num_guest_voters' => array(
- 'name' => 'num_guest_voters',
- 'null' => false,
- 'default' => 0,
- 'type' => 'int',
- 'size' => 10,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- ---# Fixing guest voter tallys on existing polls...
- ---{
- $request = upgrade_query("
- SELECT p.id_poll, count(lp.id_member) as guest_voters
- FROM {$db_prefix}polls AS p
- LEFT JOIN {$db_prefix}log_polls AS lp ON (lp.id_poll = p.id_poll AND lp.id_member = 0)
- WHERE lp.id_member = 0
- AND p.num_guest_voters = 0
- GROUP BY p.id_poll");
- while ($request && $row = $smcFunc['db_fetch_assoc']($request))
- upgrade_query("
- UPDATE {$db_prefix}polls
- SET num_guest_voters = ". $row['guest_voters']. "
- WHERE id_poll = " . $row['id_poll'] . "
- AND num_guest_voters = 0");
- ---}
- ---#
- /******************************************************************************/
- --- Adding restore topic from recycle.
- /******************************************************************************/
- ---# Adding restore from recycle feature...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}topics', array(
- 'add' => array(
- 'id_previous_board' => array(
- 'name' => 'id_previous_board',
- 'null' => false,
- 'default' => 0,
- 'type' => 'smallint',
- 'auto' => false,
- ),
- 'id_previous_topic' => array(
- 'name' => 'id_previous_topic',
- 'null' => false,
- 'default' => 0,
- 'type' => 'int',
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Fixing aim on members for longer nicks.
- /******************************************************************************/
- ---# Changing 'aim' to varchar to allow using email...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}members', array(
- 'change' => array(
- 'aim' => array(
- 'name' => 'aim',
- 'null' => false,
- 'type' => 'varchar',
- 'size' => 255,
- 'default' => ''
- )
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Allow for longer calendar event/holiday titles.
- /******************************************************************************/
- ---# Changing event title column to a larger field type...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}calendar', array(
- 'change' => array(
- 'title' => array(
- 'name' => 'title',
- 'null' => false,
- 'type' => 'varchar',
- 'size' => 255,
- 'default' => ''
- )
- )
- ));
- ---}
- ---#
- ---# Changing holiday title column to a larger field type...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}calendar_holidays', array(
- 'change' => array(
- 'title' => array(
- 'name' => 'title',
- 'null' => false,
- 'type' => 'varchar',
- 'size' => 255,
- 'default' => ''
- )
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Making changes to the package manager.
- /******************************************************************************/
- ---# Changing URL to SMF package server...
- UPDATE {$db_prefix}package_servers
- SET url = 'http://custom.simplemachines.org/packages/mods'
- WHERE url = 'http://mods.simplemachines.org';
- ---#
- /******************************************************************************/
- --- Adding new indexes to the topics table.
- /******************************************************************************/
- ---# Adding index member_started...
- CREATE INDEX {$db_prefix}topics_member_started ON {$db_prefix}topics (id_member_started, id_board);
- ---#
- ---# Adding index last_message_sticky...
- CREATE INDEX {$db_prefix}topics_last_message_sticky ON {$db_prefix}topics (id_board, is_sticky, id_last_msg);
- ---#
- ---# Adding index board_news...
- CREATE INDEX {$db_prefix}topics_board_news ON {$db_prefix}topics (id_board, id_first_msg);
- ---#
- /******************************************************************************/
- --- Adding new indexes to members table.
- /******************************************************************************/
- ---# Adding index on total_time_logged_in...
- CREATE INDEX {$db_prefix}members_total_time_logged_in ON {$db_prefix}members (total_time_logged_in);
- ---#
- ---# Adding index on id_theme...
- CREATE INDEX {$db_prefix}members_id_theme ON {$db_prefix}members (id_theme);
- ---#
- ---# Adding index on real_name...
- CREATE INDEX {$db_prefix}members_real_name ON {$db_prefix}members (real_name);
- ---#
- /******************************************************************************/
- --- Adding new indexes to messages table.
- /******************************************************************************/
- ---# Adding index id_member_msg...
- CREATE INDEX {$db_prefix}messages_id_member_msg ON {$db_prefix}messages (id_member, approved, id_msg);
- ---#
- ---# Adding index current_topic...
- CREATE INDEX {$db_prefix}messages_current_topic ON {$db_prefix}messages (id_topic, id_msg, id_member, approved);
- ---#
- ---# Adding index related_ip...
- CREATE INDEX {$db_prefix}messages_related_ip ON {$db_prefix}messages (id_member, poster_ip, id_msg);
- ---#
- /******************************************************************************/
- --- Adding new indexes to attachments table.
- /******************************************************************************/
- ---# Adding index on attachment_type...
- CREATE INDEX {$db_prefix}attachments_attachment_type ON {$db_prefix}attachments (attachment_type);
- ---#
- /******************************************************************************/
- --- Dropping unnecessary indexes...
- /******************************************************************************/
- ---# Removing index on hits...
- ---{
- $smcFunc['db_remove_index']($db_prefix . 'log_activity', $db_prefix . 'log_activity_hits');
- ---}
- ---#
- /******************************************************************************/
- --- Adding new personal message setting.
- /******************************************************************************/
- ---# Adding column that stores the PM receiving setting...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}members', array(
- 'add' => array(
- 'pm_receive_from' => array(
- 'name' => 'pm_receive_from',
- 'null' => false,
- 'type' => 'tinyint',
- 'size' => 4,
- 'default' => '1'
- )
- )
- ));
- ---}
- ---#
- ---# Enable the buddy and ignore lists if we have not done so thus far...
- ---{
- // Don't do this if we've done this already.
- if (empty($modSettings['dont_repeat_buddylists']))
- {
- // Make sure the pm_receive_from column has the right default value - early adoptors might have a '0' set here.
- $smcFunc['db_alter_table']('{db_prefix}members', array(
- 'change' => array(
- 'pm_receive_from' => array(
- 'name' => 'pm_receive_from',
- 'null' => false,
- 'type' => 'tinyint',
- 'size' => 4,
- 'default' => '1'
- )
- )
- ));
- // Update previous ignore lists if they're set to ignore all.
- upgrade_query("
- UPDATE {$db_prefix}members
- SET pm_receive_from = 3, pm_ignore_list = ''
- WHERE pm_ignore_list = '*'");
- // Enable buddy and ignore lists.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('enable_buddylist', '1')");
- // Ignore posts made by ignored users by default, too.
- upgrade_query("
- REPLACE INTO {$db_prefix}themes
- (id_member, id_theme, variable, value)
- VALUES
- (-1, 1, 'posts_apply_ignore_list', '1')");
- // Make sure not to skip this step next time we run this.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('dont_repeat_buddylists', '1')");
- }
- // And yet, and yet... We might have a small hiccup here...
- if (!empty($modSettings['dont_repeat_buddylists']) && !isset($modSettings['enable_buddylist']))
- {
- // Correct RC3 adopters setting here...
- if (isset($modSettings['enable_buddylists']))
- {
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('enable_buddylist', '". $modSettings['enable_buddylists']. "')");
- }
- else
- {
- // This should never happen :)
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('enable_buddylist', '1')");
- }
- }
- ---}
- ---#
- /******************************************************************************/
- --- Adding settings for attachments and avatars.
- /******************************************************************************/
- ---# Add new security settings for attachments and avatars...
- ---{
- // Don't do this if we've done this already.
- if (!isset($modSettings['attachment_image_reencode']))
- {
- // Enable image re-encoding by default.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('attachment_image_reencode', '1')");
- }
- if (!isset($modSettings['attachment_image_paranoid']))
- {
- // Disable draconic checks by default.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('attachment_image_paranoid', '0')");
- }
- if (!isset($modSettings['avatar_reencode']))
- {
- // Enable image re-encoding by default.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('avatar_reencode', '1')");
- }
- if (!isset($modSettings['avatar_paranoid']))
- {
- // Disable draconic checks by default.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('avatar_paranoid', '0')");
- }
- ---}
- ---#
- ---# Add other attachment settings...
- ---{
- if (!isset($modSettings['attachment_thumb_png']))
- {
- // Make image attachment thumbnail as PNG by default.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('attachment_thumb_png', '1')");
- }
- ---}
- ---#
- /******************************************************************************/
- --- Installing new default theme...
- /******************************************************************************/
- ---# Installing theme settings...
- ---{
- // This is Grudge's secret "I'm not a developer" theme install code - keep this quiet ;)
- // Firstly, I'm going out of my way to not do this twice!
- if ((!isset($modSettings['smfVersion']) || $modSettings['smfVersion'] <= '2.0 RC2') && empty($modSettings['dont_repeat_theme_core']))
- {
- // Check it's not already here, just in case.
- $theme_request = upgrade_query("
- SELECT id_theme
- FROM {$db_prefix}themes
- WHERE variable = 'theme_dir'
- AND value LIKE '%core'");
- // Only do the upgrade if it doesn't find the theme already.
- if ($smcFunc['db_num_rows']($theme_request) == 0)
- {
- // Try to get some settings from the current default theme.
- $request = upgrade_query("
- SELECT t1.value AS theme_dir, t2.value AS theme_url, t3.value AS images_url
- FROM {$db_prefix}themes AS t1, {$db_prefix}themes AS t2, {$db_prefix}themes AS t3
- WHERE t1.id_theme = 1
- AND t1.id_member = 0
- AND t1.variable = 'theme_dir'
- AND t2.id_theme = 1
- AND t2.id_member = 0
- AND t2.variable = 'theme_url'
- AND t3.id_theme = 1
- AND t3.id_member = 0
- AND t3.variable = 'images_url'
- LIMIT 1");
- if ($smcFunc['db_num_rows']($request) != 0)
- {
- $curve = $smcFunc['db_fetch_assoc']($request);
- if (substr_count($curve['theme_dir'], 'default') === 1)
- $core['theme_dir'] = strtr($curve['theme_dir'], array('default' => 'core'));
- if (substr_count($curve['theme_url'], 'default') === 1)
- $core['theme_url'] = strtr($curve['theme_url'], array('default' => 'core'));
- if (substr_count($curve['images_url'], 'default') === 1)
- $core['images_url'] = strtr($curve['images_url'], array('default' => 'core'));
- }
- $smcFunc['db_free_result']($request);
- if (!isset($core['theme_dir']))
- $core['theme_dir'] = addslashes($GLOBALS['boarddir']) . '/Themes/core';
- if (!isset($core['theme_url']))
- $core['theme_url'] = $GLOBALS['boardurl'] . '/Themes/core';
- if (!isset($core['images_url']))
- $core['images_url'] = $GLOBALS['boardurl'] . '/Themes/core/images';
- // Get an available id_theme first...
- $request = upgrade_query("
- SELECT MAX(id_theme) + 1
- FROM {$db_prefix}themes");
- list ($id_core_theme) = $smcFunc['db_fetch_row']($request);
- $smcFunc['db_free_result']($request);
- // Insert the core theme into the tables.
- $smcFunc['db_insert']('ignore',
- '{db_prefix}themes',
- array('id_member' => 'int', 'id_theme' => 'int', 'variable' => 'string-255', 'value' => 'string-255'),
- array(
- array(0, $id_core_theme, 'name', 'Core Theme'),
- array(0, $id_core_theme, 'theme_url', $core['theme_url']),
- array(0, $id_core_theme, 'images_url', $core['images_url']),
- array(0, $id_core_theme, 'theme_dir', $core['theme_dir'])
- ),
- array()
- );
- // Update the name of the default theme in the database.
- upgrade_query("
- UPDATE {$db_prefix}themes
- SET value = 'SMF Default Theme - Curve'
- WHERE id_theme = 1
- AND variable = 'name'");
- $newSettings = array();
- // Now that we have the old theme details - switch anyone who used the default to it (Make sense?!)
- if (!empty($modSettings['theme_default']) && $modSettings['theme_default'] == 1)
- $newSettings[] = "('theme_default', $id_core_theme)";
- // Did guests use to use the default?
- if (!empty($modSettings['theme_guests']) && $modSettings['theme_guests'] == 1)
- $newSettings[] = "('theme_guests', $id_core_theme)";
- // If known themes aren't set, let's just pick all themes available.
- if (empty($modSettings['knownThemes']))
- {
- $request = upgrade_query("
- SELECT DISTINCT id_theme
- FROM {$db_prefix}themes");
- $themes = array();
- while ($row = $smcFunc['db_fetch_assoc']($request))
- $themes[] = $row['id_theme'];
- $modSettings['knownThemes'] = implode(',', $themes);
- upgrade_query("
- UPDATE {$db_prefix}settings
- SET value = '$modSettings[knownThemes]'
- WHERE variable = 'knownThemes'");
- }
- // Known themes.
- $allThemes = explode(',', $modSettings['knownThemes']);
- $allThemes[] = $id_core_theme;
- $newSettings[] = "('knownThemes', '" . implode(',', $allThemes) . "')";
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- " . implode(', ', $newSettings));
- // What about members?
- upgrade_query("
- UPDATE {$db_prefix}members
- SET id_theme = $id_core_theme
- WHERE id_theme = 1");
- // Boards?
- upgrade_query("
- UPDATE {$db_prefix}boards
- SET id_theme = $id_core_theme
- WHERE id_theme = 1");
- // The other themes used to use core as their base theme.
- if (isset($core['theme_dir']) && isset($core['theme_url']))
- {
- $coreBasedThemes = array_diff($allThemes, array(1));
- // Exclude the themes that already have a base_theme_dir.
- $request = upgrade_query("
- SELECT DISTINCT id_theme
- FROM {$db_prefix}themes
- WHERE variable = 'base_theme_dir'");
- while ($row = $smcFunc['db_fetch_assoc']($request))
- $coreBasedThemes = array_diff($coreBasedThemes, array($row['id_theme']));
- $smcFunc['db_free_result']($request);
- // Only base themes if there are templates that need a fall-back.
- $insertRows = array();
- $request = upgrade_query("
- SELECT id_theme, value AS theme_dir
- FROM {$db_prefix}themes
- WHERE id_theme IN (" . implode(', ', $coreBasedThemes) . ")
- AND id_member = 0
- AND variable = 'theme_dir'");
- while ($row = $smcFunc['db_fetch_assoc']($request))
- {
- if (!file_exists($row['theme_dir'] . '/BoardIndex.template.php') || !file_exists($row['theme_dir'] . '/Display.template.php') || !file_exists($row['theme_dir'] . '/index.template.php') || !file_exists($row['theme_dir'] . '/MessageIndex.template.php') || !file_exists($row['theme_dir'] . '/Settings.template.php'))
- {
- $insertRows[] = "(0, $row[id_theme], 'base_theme_dir', '" . addslashes($core['theme_dir']) . "')";
- $insertRows[] = "(0, $row[id_theme], 'base_theme_url', '" . addslashes($core['theme_url']) . "')";
- }
- }
- $smcFunc['db_free_result']($request);
- if (!empty($insertRows))
- foreach ($insertRows as $insertRow)
- upgrade_query("
- INSERT IGNORE INTO {$db_prefix}themes
- (id_member, id_theme, variable, value)
- VALUES
- " . implode(',
- ', $insertRow));
- }
- }
- $smcFunc['db_free_result']($theme_request);
- // This ain't running twice either - not with the risk of log_tables timing us all out!
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('dont_repeat_theme_core', '1')");
- }
- ---}
- ---#
- /******************************************************************************/
- --- Installing new smileys sets...
- /******************************************************************************/
- ---# Installing new smiley sets...
- ---{
- // Don't do this twice!
- if (empty($modSettings['installed_new_smiley_sets_20']))
- {
- // First, the entries.
- upgrade_query("
- UPDATE {$db_prefix}settings
- SET value = CONCAT(value, ',aaron,akyhne')
- WHERE variable = 'smiley_sets_known'");
- // Second, the names.
- upgrade_query("
- UPDATE {$db_prefix}settings
- SET value = CONCAT(value, '\nAaron\nAkyhne')
- WHERE variable = 'smiley_sets_names'");
- // This ain't running twice either.
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('installed_new_smiley_sets_20', '1')");
- }
- ---}
- ---#
- /******************************************************************************/
- --- Adding extra columns to reported post comments
- /******************************************************************************/
- ---# Adding email address and member ip columns...
- ---{
- $smcFunc['db_alter_table']('{db_prefix}log_reported_comments', array(
- 'add' => array(
- 'email_address' => array(
- 'name' => 'email_address',
- 'null' => false,
- 'default' => '',
- 'type' => 'varchar',
- 'size' => 255,
- 'auto' => false,
- ),
- 'member_ip' => array(
- 'name' => 'member_ip',
- 'null' => false,
- 'default' => '',
- 'type' => 'varchar',
- 'size' => 255,
- 'auto' => false,
- ),
- )
- ));
- ---}
- ---#
- /******************************************************************************/
- --- Adjusting group types.
- /******************************************************************************/
- ---# Fixing the group types.
- ---{
- // Get the admin group type.
- $request = upgrade_query("
- SELECT group_type
- FROM {$db_prefix}membergroups
- WHERE id_group = 1
- LIMIT 1");
- list ($admin_group_type) = $smcFunc['db_fetch_row']($request);
- $smcFunc['db_free_result']($request);
- // Not protected means we haven't updated yet!
- if ($admin_group_type != 1)
- {
- // Increase by one.
- upgrade_query("
- UPDATE {$db_prefix}membergroups
- SET group_type = group_type + 1
- WHERE group_type > 0");
- }
- ---}
- ---#
- ---# Changing the group type for Administrator group.
- UPDATE {$db_prefix}membergroups
- SET group_type = 1
- WHERE id_group = 1;
- ---#
- /******************************************************************************/
- --- Adjusting calendar maximum year.
- /******************************************************************************/
- ---# Adjusting calendar maximum year.
- ---{
- if (!isset($modSettings['cal_maxyear']) || $modSettings['cal_maxyear'] == '2010')
- {
- upgrade_query("
- REPLACE INTO {$db_prefix}settings
- (variable, value)
- VALUES
- ('cal_maxyear', '2020')");
- }
- ---}
- ---#
|