PHP Classes

File: admin/migrate.php

Recommend this page to a friend!
  Packages of Michael Beck   XOOPS Publisher Module   admin/migrate.php   Download  
File: admin/migrate.php
Role: Example script
Content type: text/plain
Description: Example script
Class: XOOPS Publisher Module
Publish static HTML content and article with XOOPS
Author: By
Last change: Scrutinizer
Merge branch 'master' of https://github.com/XoopsModules25x/publisher
adjust migrate.php
Merge branch 'master' of https://github.com/XoopsModules25x/publisher
streamline namespaces
Merge branch 'master' into master
Missing strict types declaration
PHP 7.1, updates
Merge branch 'master' of https://github.com/XoopsModules25x/publisher
Date: 7 months ago
Size: 4,471 bytes
 

Contents

Class file image Download
<?php

declare(strict_types=1);
//
// ------------------------------------------------------------------------ //
// XOOPS - PHP Content Management System //
// Copyright (c) 2000-2020 XOOPS.org //
// <https://xoops.org> //
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //
// Author: Kazumi Ono (AKA onokazu) //
// URL: http://www.myweb.ne.jp/, https://xoops.org/, http://jp.xoops.org/ //
// Project: XOOPS Project //
// ------------------------------------------------------------------------- //

use Xmf\Request;

use
Xmf\Module\Admin;
use
XoopsModules\Publisher\{
   
Common\Configurator,
   
Common\Migrate,
   
Helper
};

/** @var Admin $adminObject */
/** @var Configurator $configurator */
/** @var Migrate $migrator */

require_once __DIR__ . '/admin_header.php';
xoops_cp_header();

$adminObject->displayNavigation(basename(__FILE__));

echo <<<EOF
<form method="post" class="form-inline">
<div class="form-group">
<input name="show" class="btn btn-default" type="submit" value="Show SQL">
</div>
<div class="form-group">
<input name="migrate" class="btn btn-default" type="submit" value="Do Migration">
</div>
<div class="form-group">
<input name="schema" class="btn btn-default" type="submit" value="Write Schema">
</div>
</form>
EOF;

//XoopsLoad::load('migrate', 'newbb');

$configurator = new Configurator();

$migrator = new Migrate();

$op = Request::getCmd('op', 'show');
$opShow = Request::getCmd('show', null, 'POST');
$opMigrate = Request::getCmd('migrate', null, 'POST');
$opSchema = Request::getCmd('schema', null, 'POST');
$op = !empty($opShow) ? 'show' : $op;
$op = !empty($opMigrate) ? 'migrate' : $op;
$op = !empty($opSchema) ? 'schema' : $op;

$message = '';

switch (
$op) {
    case
'show':
    default:
       
$queue = $migrator->getSynchronizeDDL();
        if (!empty(
$queue)) {
            echo
"<pre>\n";
            foreach (
$queue as $line) {
                echo
$line . ";\n";
            }
            echo
"</pre>\n";
        }
        break;
    case
'migrate':
       
$migrator->synchronizeSchema();
       
$message = constant('CO_' . $moduleDirNameUpper . '_' . 'MIGRATE_OK');
        break;
    case
'schema':
       
xoops_confirm(['op' => 'confirmwrite'], 'migrate.php', constant('CO_' . $moduleDirNameUpper . '_' . 'MIGRATE_WARNING'), constant('CO_' . $moduleDirNameUpper . '_' . 'CONFIRM'));
        break;
    case
'confirmwrite':
        if (
$GLOBALS['xoopsSecurity']->check()) {
           
$migrator->saveCurrentSchema();

           
$message = constant('CO_' . $moduleDirNameUpper . '_' . 'MIGRATE_SCHEMA_OK');
        }
        break;
}

echo
"<div>$message</div>";

require_once
__DIR__ . '/admin_footer.php';