Subversion Repositories oidplus

Rev

Rev 294 | Rev 380 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /*
  4.  * OIDplus 2.0
  5.  * Copyright 2019 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. include_once __DIR__ . '/../includes/oidplus.inc.php';
  21.  
  22. $prefix = isset($_REQUEST['prefix']) ? $_REQUEST['prefix'] : '';
  23. $database = isset($_REQUEST['database']) ? $_REQUEST['database'] : '';
  24. $slang = isset($_REQUEST['slang']) ? $_REQUEST['slang'] : 'mysql';
  25.  
  26. OIDplus::registerAllPlugins('sqlSlang', 'OIDplusSqlSlangPlugin', null);
  27. $slang_plugin = null;
  28. foreach (get_declared_classes() as $c) {
  29.         if (is_subclass_of($c, 'OIDplusSqlSlangPlugin')) {
  30.                 $obj = new $c();
  31.                 if ($obj::id() === $slang) {
  32.                         $slang_plugin = $obj;
  33.                         break;
  34.                 }
  35.         }
  36. }
  37. if (is_null($slang_plugin)) {
  38.         die(_L('Unknown slang'));
  39. }
  40.  
  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";
  45.  
  46. $table_names = array('objects', 'asn1id', 'iri', 'ra', 'config', 'log', 'log_user', 'log_object');
  47. foreach ($table_names as $table) {
  48.         $cont = $slang_plugin->setupSetTablePrefix($cont, $table, $prefix);
  49. }
  50.  
  51. if (php_sapi_name() != 'cli') {
  52.         header('Content-Type:text/sql');
  53.         header('Content-Disposition: inline; filename="struct_with_examples.sql"');
  54. }
  55.  
  56. if (!empty($database)) {
  57.         echo $slang_plugin->setupCreateDbIfNotExists($database);
  58.         echo $slang_plugin->setupUseDatabase($database);
  59. }
  60. echo $cont;