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 | |||
1130 | daniel-mar | 25 | $prefix = $_REQUEST['prefix'] ?? ''; |
26 | $database = $_REQUEST['database'] ?? ''; |
||
27 | $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; |
1244 | daniel-mar | 31 | $slang_dir = ''; |
380 | daniel-mar | 32 | foreach (OIDplus::getSqlSlangPlugins() as $plugin) { |
33 | if ($plugin::id() === $slang) { |
||
34 | $slang_plugin = $plugin; |
||
1244 | daniel-mar | 35 | $slang_dir = $plugin->getPluginDirectory(); |
380 | daniel-mar | 36 | break; |
274 | daniel-mar | 37 | } |
38 | } |
||
39 | if (is_null($slang_plugin)) { |
||
1244 | daniel-mar | 40 | die(_L('Unknown SQL slang "%1"',$slang)); |
274 | daniel-mar | 41 | } |
42 | |||
1244 | daniel-mar | 43 | $cont = trim(file_get_contents($slang_dir.'/sql/struct.sql'))."\n\n". |
44 | trim(file_get_contents($slang_dir.'/sql/wellknown_country.sql'))."\n\n". |
||
45 | trim(file_get_contents($slang_dir.'/sql/wellknown_other.sql'))."\n\n"; |
||
2 | daniel-mar | 46 | |
158 | daniel-mar | 47 | $table_names = array('objects', 'asn1id', 'iri', 'ra', 'config', 'log', 'log_user', 'log_object'); |
2 | daniel-mar | 48 | foreach ($table_names as $table) { |
274 | daniel-mar | 49 | $cont = $slang_plugin->setupSetTablePrefix($cont, $table, $prefix); |
2 | daniel-mar | 50 | } |
51 | |||
444 | daniel-mar | 52 | if (PHP_SAPI != 'cli') { |
50 | daniel-mar | 53 | header('Content-Type:text/sql'); |
111 | daniel-mar | 54 | header('Content-Disposition: inline; filename="struct_empty.sql"'); |
50 | daniel-mar | 55 | } |
78 | daniel-mar | 56 | |
111 | daniel-mar | 57 | if (!empty($database)) { |
274 | daniel-mar | 58 | echo $slang_plugin->setupCreateDbIfNotExists($database); |
59 | echo $slang_plugin->setupUseDatabase($database); |
||
111 | daniel-mar | 60 | } |
1050 | daniel-mar | 61 | echo $cont; |