Skip to content

Commit

Permalink
Fix for core plugin upgrade when setting incorrect pi_gl_version in DB
Browse files Browse the repository at this point in the history
Also bumped xmlsitemap plugin to version 2.0.1
  • Loading branch information
eSilverStrike committed May 1, 2018
1 parent 1dc7ed1 commit a46bd44
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 19 deletions.
8 changes: 7 additions & 1 deletion plugins/calendar/functions.inc
Expand Up @@ -1499,6 +1499,9 @@ function plugin_upgrade_calendar()
if (!plugin_compatible_with_this_version_calendar('calendar')) {
return 3002;
}

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_calendar('calendar');

require_once $_CONF['path'] . 'plugins/calendar/sql/'
. $_DB_dbms . '_updates.php';
Expand Down Expand Up @@ -1619,7 +1622,10 @@ function plugin_upgrade_calendar()
}
}

DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$installed_version' WHERE pi_name = 'calendar'");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'calendar'");

COM_errorLog( "Updated calendar plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
10 changes: 8 additions & 2 deletions plugins/links/functions.inc
Expand Up @@ -698,6 +698,9 @@ function plugin_upgrade_links()
if (! plugin_compatible_with_this_version_links('links')) {
return 3002;
}

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_links('links');

require_once $_CONF['path'] . 'plugins/links/sql/'
. $_DB_dbms . '_updates.php';
Expand Down Expand Up @@ -811,15 +814,18 @@ function plugin_upgrade_links()
break;

case '2.1.5':
$current_version = '2.1.6'; // Shipped with Geeklog-2.1.4
$current_version = '2.1.6'; // Shipped with Geeklog-2.2.0
break;

default:
$done = true;
}
}

DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$installed_version' WHERE pi_name = 'links'");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'links'");

COM_errorLog( "Updated links plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
11 changes: 7 additions & 4 deletions plugins/polls/functions.inc
Expand Up @@ -1152,6 +1152,9 @@ function plugin_upgrade_polls()
if (!plugin_compatible_with_this_version_polls('polls')) {
return 3002;
}

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_polls('polls');

require_once $_CONF['path'] . 'plugins/polls/sql/' . $_DB_dbms . '_updates.php';
require_once $_CONF['path'] . 'plugins/polls/install_updates.php';
Expand Down Expand Up @@ -1311,10 +1314,10 @@ function plugin_upgrade_polls()
}
}

DB_query(
"UPDATE {$_TABLES['plugins']} SET pi_version = '" . DB_escapeString($code_version) . "', pi_gl_version = '" . DB_escapeString($installed_version) . "' "
. "WHERE pi_name = 'polls'"
);
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'polls'");

COM_errorLog( "Updated polls plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
12 changes: 7 additions & 5 deletions plugins/recaptcha/functions.inc
Expand Up @@ -137,6 +137,9 @@ function plugin_chkVersion_recaptcha()
function plugin_upgrade_recaptcha()
{
global $_TABLES, $_RECAPTCHA_CONF;

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_recaptcha('recaptcha');

$pluginVersionInDb = DB_getItem($_TABLES['plugins'], 'pi_version', "pi_name = 'recaptcha'");

Expand Down Expand Up @@ -168,11 +171,10 @@ function plugin_upgrade_recaptcha()
}
}

// Updates plugin info
$sql = "UPDATE {$_TABLES['plugins']} SET pi_version = '{$_RECAPTCHA_CONF['pi_version']}' "
. "WHERE (pi_name = 'recaptcha') ";
DB_query($sql);
COM_errorLog("reCAPTCHA plugin was successfully updated to version {$_RECAPTCHA_CONF['pi_version']}.");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '{$_RECAPTCHA_CONF['pi_version']}', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'recaptcha'");

COM_errorLog( "Updated recaptcha plugin from v$pluginVersionInDb to v{$_RECAPTCHA_CONF['pi_version']}", 1 );

return true;
}
Expand Down
6 changes: 4 additions & 2 deletions plugins/spamx/functions.inc
Expand Up @@ -221,7 +221,6 @@ function plugin_upgrade_spamx()
}

$inst_parms = plugin_autoinstall_spamx('spamx');
$pi_gl_version = $inst_parms['info']['pi_gl_version'];

require_once $_CONF['path'] . 'plugins/spamx/sql/' . $_DB_dbms . '_updates.php';
require_once $_CONF['path'] . 'plugins/spamx/install_updates.php';
Expand Down Expand Up @@ -402,7 +401,10 @@ function plugin_upgrade_spamx()
}
}

DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$pi_gl_version' WHERE pi_name = 'spamx'");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'spamx'");

COM_errorLog( "Updated spamx plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
11 changes: 8 additions & 3 deletions plugins/staticpages/functions.inc
Expand Up @@ -1404,8 +1404,7 @@ function plugin_upgrade_staticpages()
{
global $_CONF, $_TABLES, $_DB_dbms;

$installed_version = DB_getItem($_TABLES['plugins'], 'pi_version',
"pi_name = 'staticpages'");
$installed_version = DB_getItem($_TABLES['plugins'], 'pi_version', "pi_name = 'staticpages'");
$code_version = plugin_chkVersion_staticpages();
if ($installed_version == $code_version) {
// nothing to do
Expand All @@ -1417,6 +1416,9 @@ function plugin_upgrade_staticpages()
if (!plugin_compatible_with_this_version_staticpages('staticpages')) {
return 3002;
}

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_staticpages('staticpages');

require_once $_CONF['path'] . 'plugins/staticpages/sql/'
. $_DB_dbms . '_updates.php';
Expand Down Expand Up @@ -1610,7 +1612,10 @@ function plugin_upgrade_staticpages()
}
}

DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$installed_version' WHERE pi_name = 'staticpages'");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'staticpages'");

COM_errorLog( "Updated staticpages plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/xmlsitemap/autoinstall.php
Expand Up @@ -52,7 +52,7 @@ function plugin_autoinstall_xmlsitemap($pi_name)
$info = array(
'pi_name' => $pi_name,
'pi_display_name' => $pi_display_name,
'pi_version' => '2.0.0',
'pi_version' => '2.0.1',
'pi_gl_version' => '1.8.0',
'pi_homepage' => 'https://www.geeklog.net/',
);
Expand Down
14 changes: 13 additions & 1 deletion plugins/xmlsitemap/functions.inc
Expand Up @@ -102,6 +102,9 @@ function plugin_upgrade_xmlsitemap()
if (! plugin_compatible_with_this_version_xmlsitemap('xmlsitemap')) {
return 3002;
}

// Retrieve other plugin info like min geeklog version and homepage
$inst_parms = plugin_autoinstall_xmlsitemap('xmlsitemap');

require_once $_CONF['path'] . 'plugins/xmlsitemap/sql/' . $_DB_dbms . '_updates.php';
require_once $_CONF['path'] . 'plugins/xmlsitemap/install_updates.php';
Expand Down Expand Up @@ -137,14 +140,23 @@ function plugin_upgrade_xmlsitemap()

$current_version = '2.0.0';
break;

case '2.0.0':
// Only code changes

$current_version = '2.0.1';
break;

default:
$done = true;
break;
}
}

DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$installed_version' WHERE pi_name = 'xmlsitemap'");
// update plugin version number and other info
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '{$inst_parms['info']['pi_gl_version']}', pi_homepage = '{$inst_parms['info']['pi_homepage']}' WHERE pi_name = 'xmlsitemap'");

COM_errorLog( "Updated xmlsitemap plugin from v$installed_version to v$code_version", 1 );

return true;
}
Expand Down
6 changes: 6 additions & 0 deletions public_html/admin/install/devel-db-update.php
Expand Up @@ -196,6 +196,11 @@ function update_DatabaseFor220()
// Polls
$_SQL[] = "UPDATE {$_TABLES['plugins']} SET pi_version='2.1.9' WHERE pi_name='polls'";

// XMLSiteMap
$_SQL[] = "UPDATE {$_TABLES['plugins']} SET pi_version='2.0.1', pi_gl_version='". VERSION ."', pi_homepage='https://www.geeklog.net' WHERE pi_name='xmlsitemap'";

// Calendar
$_SQL[] = "UPDATE {$_TABLES['plugins']} SET pi_version='1.1.6', pi_gl_version='". VERSION ."', pi_homepage='https://www.geeklog.net' WHERE pi_name='calendar'";



Expand Down Expand Up @@ -473,6 +478,7 @@ function update_DatabaseFor212()
break;
case 'xmlsitemap':
$plugin_version = '2.0.0';
$new_plugin_version = true;
break;
}

Expand Down

0 comments on commit a46bd44

Please sign in to comment.