73 lines
2.8 KiB
PHP
73 lines
2.8 KiB
PHP
<?php
|
|
|
|
class AddressDB {
|
|
private $db;
|
|
private $log;
|
|
public static $wohneinheit_query = "select `Netzgebiet`.`id` AS `netzgebiet_id`,
|
|
`Netzgebiet`.`name` AS `netzgebiet`,
|
|
`Netzgebiet`.`extref` AS `netzgebiet_extref`,
|
|
`Gemeinde`.`id` AS `gemeinde_id`,
|
|
`Gemeinde`.`kennziffer` AS `gemeinde_kennziffer`,
|
|
`Gemeinde`.`code` AS `gemeinde_code`,
|
|
`Gemeinde`.`name` AS `gemeinde`,
|
|
`Ortschaft`.`id` AS `ortschaft_id`,
|
|
`Ortschaft`.`kennziffer` AS `ortschaft_kennziffer`,
|
|
`Ortschaft`.`name` AS `ortschaft`,
|
|
`Plz`.`plz` AS `plz`,
|
|
`Strasse`.`id` AS `strasse_id`,
|
|
`Strasse`.`kennziffer` AS `strasse_kennziffer`,
|
|
`Strasse`.`name` AS `strasse`,
|
|
`Hausnummer`.`id` AS `hausnummer_id`,
|
|
`Hausnummer`.`oaid` AS `hausnummer_oaid`,
|
|
`Hausnummer`.`hausnummer` AS `hausnummer`,
|
|
`Hausnummer`.`extref` AS `hausnummer_extref`,
|
|
`Hausnummer`.`grund_nr` AS `grund_nr`,
|
|
`Hausnummer`.`gps_lat` AS `gps_lat`,
|
|
`Hausnummer`.`gps_long` AS `gps_long`,
|
|
`Hausnummer`.`rollout` AS `rollout`,
|
|
`Hausnummer`.`rollout_info` AS `rollout_info`,
|
|
`Hausnummer`.`freigabe` AS `freigabe`,
|
|
`Wohneinheit`.`id` AS `wohneinheit_id`,
|
|
`Wohneinheit`.`oaid` AS `wohneinheit_oaid`,
|
|
`Wohneinheit`.`extref` AS `wohneinheit_extref`,
|
|
`Wohneinheit`.`num` AS `num`,
|
|
`Wohneinheit`.`block` AS `block`,
|
|
`Wohneinheit`.`stiege` AS `stiege`,
|
|
`Wohneinheit`.`stock` AS `stock`,
|
|
`Wohneinheit`.`tuer` AS `tuer`,
|
|
`Wohneinheit`.`bezeichner` AS `bezeichner`,
|
|
`Wohneinheit`.`zusatz` AS `zusatz` from `Hausnummer`
|
|
left join `Netzgebiet` on (`Hausnummer`.`netzgebiet_id` = `Netzgebiet`.`id`)
|
|
left join `Plz` on (`Plz`.`id` = `Hausnummer`.`plz_id`)
|
|
left join `Strasse` on (`Strasse`.`id` = `Hausnummer`.`strasse_id`)
|
|
left join `Ortschaft` on (`Ortschaft`.`id` = `Hausnummer`.`ortschaft_id`)
|
|
left join `Gemeinde` on (`Gemeinde`.`id` = `Strasse`.`gemeinde_id`)
|
|
left join `Wohneinheit` on (`Wohneinheit`.`hausnummer_id` = `Hausnummer`.`id`)";
|
|
|
|
public function __construct() {
|
|
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
|
$this->log = mfLoghandler::singleton();
|
|
}
|
|
|
|
|
|
public function import($input) {
|
|
$path = __DIR__."/Importer/";
|
|
$dir = opendir($path);
|
|
|
|
while(($file = readdir($dir)) !== false) {
|
|
if(substr($file, 0, 1) == ".") continue;
|
|
if(substr($file, -4) != ".php") continue;
|
|
if(!is_file($path.$file)) continue;
|
|
|
|
require_once $path.$file;
|
|
$classname = "AddressDB_Importer_".ucfirst(substr($file, 0, strlen($file)-4));
|
|
if(class_exists($classname)) {
|
|
$importer = new $classname();
|
|
if($importer->isValid($input)) {
|
|
return $importer->import();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
} |