Beispiel #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $autoRegister = $input->getOption('auto-register');
     $installer = new \Installer();
     $installed = $installer->tableExists('users_users');
     if ($installed) {
         $installer->update();
         $output->writeln('Update completed.');
         if (count($installer->installed)) {
             foreach ($installer->installed as $patch) {
                 $output->writeln("<info>Installed: {$patch}</info>");
             }
         }
         if (count($installer->executed)) {
             foreach ($installer->executed as $script) {
                 $output->writeln("<info>Executed: {$script}</info>");
             }
         }
         $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>');
         if (count($installer->failures)) {
             foreach ($installer->failures as $key => $error) {
                 list($query, $message, $patch) = $error;
                 $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>");
                 if ($autoRegister) {
                     $installer->recordPatch($patch);
                 }
             }
         }
         $cachelib = \TikiLib::lib('cache');
         $cachelib->empty_cache();
     } else {
         $output->writeln('<error>Database not found.</error>');
     }
 }
Beispiel #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $force = $input->getOption('force');
     $installer = new \Installer();
     $installed = $installer->tableExists('users_users');
     if (!$installed || $force) {
         $installer->cleanInstall();
         $output->writeln('Installation completed.');
         $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>');
         if (count($installer->failures)) {
             foreach ($installer->failures as $key => $error) {
                 list($query, $message, $patch) = $error;
                 $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>");
             }
         }
         global $cachelib;
         require_once 'lib/cache/cachelib.php';
         $cachelib->empty_cache();
     } else {
         $output->writeln('<error>Database already exists.</error>');
     }
 }
Beispiel #3
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $force = $input->getOption('force');
     $installer = new \Installer();
     $installed = $installer->tableExists('users_users');
     if (!$installed || $force) {
         $installer->cleanInstall();
         $output->writeln('Installation completed.');
         $output->writeln('<info>Queries executed successfully: ' . count($installer->success) . '</info>');
         if (count($installer->failures)) {
             foreach ($installer->failures as $key => $error) {
                 list($query, $message, $patch) = $error;
                 $output->writeln("<error>Error {$key} in {$patch}\n\t{$query}\n\t{$message}</error>");
             }
         }
         include_once 'tiki-setup.php';
         \TikiLib::lib('cache')->empty_cache();
         initialize_prefs(true);
         \TikiLib::lib('unifiedsearch')->rebuild();
     } else {
         $output->writeln('<error>Database already exists.</error>');
     }
 }
Beispiel #4
0
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$initializer = new TikiDb_Initializer();
$initializer->setPreferredConnector($api_tiki);
$db = $initializer->getConnection(array('host' => $host_tiki, 'user' => $user_tiki, 'pass' => $pass_tiki, 'dbs' => $dbs_tiki, 'charset' => $client_charset));
if (!$db) {
    die("\nUnable to connect to the database\n\n");
}
TikiDb::set($db);
global $tikilib;
require_once 'lib/tikilib.php';
$tikilib = new TikiLib();
// update db if needed
require_once 'lib/init/initlib.php';
include_once 'installer/installlib.php';
$installer = new Installer();
if (!$installer->tableExists('tiki_preferences')) {
    echo "Installing Tiki database...\n";
    $installer->cleanInstall();
} else {
    if ($installer->requiresUpdate()) {
        echo "Updating Tiki database...\n";
        $installer->update();
    }
}
$pwd = getcwd();
chdir(dirname(__FILE__) . '/../..');
$smarty = TikiLib::lib('smarty');
require_once 'lib/init/smarty.php';
$smarty->addPluginsDir('../smarty_tiki/');
$cachelib = TikiLib::lib('cache');
$wikilib = TikiLib::lib('wiki');
Beispiel #5
0
    /**
     * For 2.4 upgrade: migrate OJS default statistics to the metrics table.
     */
    function migrateDefaultUsageStatistics()
    {
        $loadId = '2.4.2-upgrade-ojsViews';
        $metricsDao =& DAORegistry::getDAO('MetricsDAO');
        $insertIntoClause = 'INSERT INTO metrics (file_type, load_id, metric_type, assoc_type, assoc_id, submission_id, metric, context_id, issue_id)';
        // Galleys.
        $galleyUpdateCases = array(array('fileType' => STATISTICS_FILE_TYPE_PDF, 'isHtml' => false, 'assocType' => ASSOC_TYPE_GALLEY), array('fileType' => STATISTICS_FILE_TYPE_HTML, 'isHtml' => true, 'assocType' => ASSOC_TYPE_GALLEY), array('fileType' => STATISTICS_FILE_TYPE_OTHER, 'isHtml' => false, 'assocType' => ASSOC_TYPE_GALLEY));
        if (Installer::tableExists('issue_galleys_stats_migration')) {
            $galleyUpdateCases[] = array('fileType' => STATISTICS_FILE_TYPE_PDF, 'assocType' => ASSOC_TYPE_ISSUE_GALLEY);
            $galleyUpdateCases[] = array('fileType' => STATISTICS_FILE_TYPE_OTHER, 'assocType' => ASSOC_TYPE_ISSUE_GALLEY);
        }
        foreach ($galleyUpdateCases as $case) {
            $params = array();
            if ($case['fileType'] == STATISTICS_FILE_TYPE_PDF) {
                $pdfFileTypeWhereCheck = 'IN';
            } else {
                $pdfFileTypeWhereCheck = 'NOT IN';
            }
            $params = array($case['fileType'], $loadId, OJS_METRIC_TYPE_LEGACY_DEFAULT, $case['assocType']);
            if ($case['assocType'] == ASSOC_TYPE_GALLEY) {
                array_push($params, (int) $case['isHtml']);
                $selectClause = ' SELECT ?, ?, ?, ?, ag.galley_id, ag.article_id, ag.views, a.journal_id, pa.issue_id
						FROM article_galleys_stats_migration as ag
						LEFT JOIN articles AS a ON ag.article_id = a.article_id
						LEFT JOIN published_articles as pa on ag.article_id = pa.article_id
						LEFT JOIN article_files as af on ag.file_id = af.file_id
						WHERE a.article_id is not null AND ag.views > 0 AND ag.html_galley = ?
							AND af.file_type ';
            } else {
                $selectClause = ' SELECT ?, ?, ?, ?, ig.galley_id, 0, ig.views, i.journal_id, ig.issue_id
						FROM issue_galleys_stats_migration AS ig
						LEFT JOIN issues AS i ON ig.issue_id = i.issue_id
						LEFT JOIN issue_files AS ifi ON ig.file_id = ifi.file_id
						WHERE ig.views > 0 AND i.issue_id is not null AND ifi.file_type ';
            }
            array_push($params, 'application/pdf', 'application/x-pdf', 'text/pdf', 'text/x-pdf');
            $metricsDao->update($insertIntoClause . $selectClause . $pdfFileTypeWhereCheck . ' (?, ?, ?, ?)', $params, false);
        }
        // Published articles.
        $params = array(null, $loadId, OJS_METRIC_TYPE_LEGACY_DEFAULT, ASSOC_TYPE_ARTICLE);
        $metricsDao->update($insertIntoClause . ' SELECT ?, ?, ?, ?, pa.article_id, pa.article_id, pa.views, i.journal_id, pa.issue_id
				FROM published_articles_stats_migration as pa
				LEFT JOIN issues AS i ON pa.issue_id = i.issue_id
				WHERE pa.views > 0 AND i.issue_id is not null;', $params, false);
        // Set the site default metric type.
        $siteSettingsDao =& DAORegistry::getDAO('SiteSettingsDAO');
        /* @var $siteSettingsDao SiteSettingsDAO */
        $siteSettingsDao->updateSetting('defaultMetricType', OJS_METRIC_TYPE_COUNTER);
        return true;
    }