Subversion Repositories oidplus

Rev

Rev 511 | Rev 1130 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
<?php
2
 
3
/*
4
 * OIDplus 2.0
511 daniel-mar 5
 * Copyright 2019 - 2021 Daniel Marschall, ViaThinkSoft
2 daniel-mar 6
 *
7
 * Licensed under the Apache License, Version 2.0 (the "License");
8
 * you may not use this file except in compliance with the License.
9
 * You may obtain a copy of the License at
10
 *
11
 *     http://www.apache.org/licenses/LICENSE-2.0
12
 *
13
 * Unless required by applicable law or agreed to in writing, software
14
 * distributed under the License is distributed on an "AS IS" BASIS,
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
 * See the License for the specific language governing permissions and
17
 * limitations under the License.
18
 */
19
 
1050 daniel-mar 20
use ViaThinkSoft\OIDplus\OIDplus;
21
use ViaThinkSoft\OIDplus\OIDplusSqlSlangPlugin;
22
 
274 daniel-mar 23
include_once __DIR__ . '/../includes/oidplus.inc.php';
24
 
2 daniel-mar 25
$prefix = isset($_REQUEST['prefix']) ? $_REQUEST['prefix'] : '';
78 daniel-mar 26
$database = isset($_REQUEST['database']) ? $_REQUEST['database'] : '';
239 daniel-mar 27
$slang = isset($_REQUEST['slang']) ? $_REQUEST['slang'] : 'mysql';
2 daniel-mar 28
 
1050 daniel-mar 29
OIDplus::registerAllPlugins('sqlSlang', OIDplusSqlSlangPlugin::class, array(OIDplus::class,'registerSqlSlangPlugin'));
274 daniel-mar 30
$slang_plugin = null;
380 daniel-mar 31
foreach (OIDplus::getSqlSlangPlugins() as $plugin) {
32
        if ($plugin::id() === $slang) {
33
                $slang_plugin = $plugin;
34
                break;
274 daniel-mar 35
        }
36
}
37
if (is_null($slang_plugin)) {
360 daniel-mar 38
        die(_L('Unknown slang'));
274 daniel-mar 39
}
40
 
239 daniel-mar 41
$cont = trim(file_get_contents(__DIR__.'/sql/struct_'.$slang.'.sql'))."\n\n".
42
        trim(file_get_contents(__DIR__.'/sql/wellknown_country_'.$slang.'.sql'))."\n\n".
43
        trim(file_get_contents(__DIR__.'/sql/wellknown_other_'.$slang.'.sql'))."\n\n".
44
        trim(file_get_contents(__DIR__.'/sql/example_'.$slang.'.sql'))."\n\n";
2 daniel-mar 45
 
158 daniel-mar 46
$table_names = array('objects', 'asn1id', 'iri', 'ra', 'config', 'log', 'log_user', 'log_object');
2 daniel-mar 47
foreach ($table_names as $table) {
274 daniel-mar 48
        $cont = $slang_plugin->setupSetTablePrefix($cont, $table, $prefix);
2 daniel-mar 49
}
50
 
444 daniel-mar 51
if (PHP_SAPI != 'cli') {
50 daniel-mar 52
        header('Content-Type:text/sql');
111 daniel-mar 53
        header('Content-Disposition: inline; filename="struct_with_examples.sql"');
50 daniel-mar 54
}
78 daniel-mar 55
 
111 daniel-mar 56
if (!empty($database)) {
274 daniel-mar 57
        echo $slang_plugin->setupCreateDbIfNotExists($database);
58
        echo $slang_plugin->setupUseDatabase($database);
111 daniel-mar 59
}
1050 daniel-mar 60
echo $cont;