diff options
author | mattab <matthieu.aubry@gmail.com> | 2013-10-07 09:15:44 +0400 |
---|---|---|
committer | mattab <matthieu.aubry@gmail.com> | 2013-10-07 09:15:44 +0400 |
commit | 4d3527c3dd2aaf5fa388b670120eb48f439fd9e2 (patch) | |
tree | be5a2fa4da6f25c89b26efdee07440fe3a3135f1 | |
parent | 18740112ada74a4580bc7ec526cb4bedeeff7b27 (diff) |
Refs #4125 commit SQL Update file2.0-a13
-rw-r--r-- | core/Updates/2.0-a13.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/core/Updates/2.0-a13.php b/core/Updates/2.0-a13.php new file mode 100644 index 0000000000..346cb88be0 --- /dev/null +++ b/core/Updates/2.0-a13.php @@ -0,0 +1,77 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + * @category Piwik + * @package Piwik + */ +use Piwik\Common; +use Piwik\Updater; +use Piwik\Updates; +use Piwik\Db; + +/** + * @package Updates + */ +class Piwik_Updates_2_0_a13 extends Updates +{ + public static function getSql($schema = 'Myisam') + { + // Renaming old archived records now that the plugin is called Referrers + $sql = array(); + $tables = \Piwik\DbHelper::getTablesInstalled(); + foreach ($tables as $tableName) { + if (strpos($tableName, 'archive_') !== false) { + $sql['UPDATE ' . $tableName . ' SET `name`=REPLACE(`name`, \'Referers_\', \'Referrers_\') WHERE `name` LIKE \'Referers_%\''] = false; + } + } + $errorCodeTableNotFound = '1146'; + + // Rename custom segments containing Referers segments + $sql['UPDATE ' . Common::prefixTable('segment') . ' SET `definition`=REPLACE(`definition`, \'referer\', \'referrer\') WHERE `definition` LIKE \'%referer%\''] = $errorCodeTableNotFound; + + // Rename Referrers reports within scheduled reports + $sql['UPDATE ' . Common::prefixTable('report') . ' SET `reports`=REPLACE(`reports`, \'Referer\', \'Referrer\') WHERE `reports` LIKE \'%Referer%\''] = $errorCodeTableNotFound; + + // Rename Referrers widgets in custom dashboards + $sql['UPDATE ' . Common::prefixTable('user_dashboard') . ' SET `layout`=REPLACE(`layout`, \'Referer\', \'Referrer\') WHERE `layout` LIKE \'%Referer%\''] = $errorCodeTableNotFound; + + $sql['UPDATE ' . Common::prefixTable('option') . ' SET `option_name` = \'version_ScheduledReports\' WHERE `option_name` = \'version_PDFReports\' '] = false; + + return $sql; + } + + public static function update() + { + // delete schema version_ + \Piwik\Option::getInstance()->delete('version_Referers'); + + Updater::updateDatabase(__FILE__, self::getSql()); + \Piwik\PluginsManager::getInstance()->deactivatePlugin('Referers'); + \Piwik\PluginsManager::getInstance()->deactivatePlugin('PDFReports'); + + // Deleting old plugins + $obsoleteDirectories = array( + PIWIK_INCLUDE_PATH . '/plugins/Referers', + PIWIK_INCLUDE_PATH . '/plugins/PDFReports', + ); + foreach ($obsoleteDirectories as $dir) { + if (file_exists($dir)) { + Filesystem::unlinkRecursive($dir, true); + } + } + + try { + \Piwik\PluginsManager::getInstance()->activatePlugin('Referrers'); + } catch(Exception $e) { + } + try { + \Piwik\PluginsManager::getInstance()->activatePlugin('ScheduledReports'); + } catch(Exception $e) { + } + + } +}
\ No newline at end of file |