Subversion Repositories oidplus

Rev

Rev 1130 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /*
  4.  * OIDplus 2.0
  5.  * Copyright 2019 - 2021 Daniel Marschall, ViaThinkSoft
  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.  
  20. use ViaThinkSoft\OIDplus\OIDplus;
  21. use ViaThinkSoft\OIDplus\OIDplusSqlSlangPlugin;
  22.  
  23. include_once __DIR__ . '/../includes/oidplus.inc.php';
  24.  
  25. $prefix = $_REQUEST['prefix'] ?? '';
  26. $database = $_REQUEST['database'] ?? '';
  27. $slang = $_REQUEST['slang'] ?? 'mysql';
  28.  
  29. OIDplus::registerAllPlugins('sqlSlang', OIDplusSqlSlangPlugin::class, array(OIDplus::class,'registerSqlSlangPlugin'));
  30. $slang_plugin = null;
  31. $slang_dir = '';
  32. foreach (OIDplus::getSqlSlangPlugins() as $plugin) {
  33.         if ($plugin::id() === $slang) {
  34.                 $slang_plugin = $plugin;
  35.                 $slang_dir = $plugin->getPluginDirectory();
  36.                 break;
  37.         }
  38. }
  39. if (is_null($slang_plugin)) {
  40.         die(_L('Unknown SQL slang "%1"',$slang));
  41. }
  42.  
  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".
  46.         trim(file_get_contents($slang_dir.'/sql/example.sql'))."\n\n";
  47.  
  48. $table_names = array('objects', 'asn1id', 'iri', 'ra', 'config', 'log', 'log_user', 'log_object');
  49. foreach ($table_names as $table) {
  50.         $cont = $slang_plugin->setupSetTablePrefix($cont, $table, $prefix);
  51. }
  52.  
  53. if (PHP_SAPI != 'cli') {
  54.         header('Content-Type:text/sql');
  55.         header('Content-Disposition: inline; filename="struct_with_examples.sql"');
  56. }
  57.  
  58. if (!empty($database)) {
  59.         echo $slang_plugin->setupCreateDbIfNotExists($database);
  60.         echo $slang_plugin->setupUseDatabase($database);
  61. }
  62. echo $cont;
  63.