فهرست منبع

added generate folders config, fixed convert variable to ini or inc file content

Piotr Labudda 8 سال پیش
والد
کامیت
d9180ace26
1فایلهای تغییر یافته به همراه378 افزوده شده و 60 حذف شده
  1. 378 60
      SE/se-lib/Config.php

+ 378 - 60
SE/se-lib/Config.php

@@ -100,38 +100,41 @@ class Config {
 		if (empty($params['password'])) throw new Exception("Missing password");
 		if (!in_array($outputFormat, ['ini', 'inc'])) throw new Exception("Not implemented outputFormat = '{$outputFormat}'");
 
-		if ('inc' == $outputFormat) {
-			return implode("\n", [
-				'<?php',
-				'return function ($secret = "") {',
-				'	if ("secret-p5-password" !== $secret) return null;',
-				'	$conf = [];',
-				'	$conf["type"] = "mysql";',
-				'	$conf["host"] = "127.0.0.1";',
-				'	$conf["port"] = "3306";',
-				'	$conf["user"] = "root";',
-				'	$conf["pass"] = "' . $params['password'] . '";',
-				'	$conf["database"] = "' . $params['database'] . '";',
-				'	$conf["zasob_id"] = "2";',
-				'	return $conf;',
-				'};',
-			]);
-		}
+		$conf = [
+			'type' => "mysql",
+			'host' => "127.0.0.1",
+			'port' => "3306",
+			'user' => "root",
+			'pass' => $params['password'],
+			'database' => $params['database'],
+			'zasob_id' => "2",
+		];
 
-	  return implode("\n", [
-			';<?php',
-			';die(); // For further security',
-			';// default DB',
-			'',
-			'type="mysql"',
-			'host="127.0.0.1"',
-			'port="3306"',
-			'user="root"',
-			'pass="' . $params['password'] . '"',
-			'database="' . $params['database'] . '"',
-			'zasob_id="2"',
-			'',
-		]);
+		return ('inc' == $outputFormat)
+		?	implode("\n", array_merge(
+				[
+					'<?php',
+					'return function ($secret = "") {',
+					"\t" . 'if ("secret-p5-password" !== $secret) return null;',
+					"\t" . '$conf = [];',
+				],
+				self::convertVariableToConfigIncContent($conf, $varName = '$conf'),
+				[
+					"\t" . 'return $conf;',
+					'};',
+				]
+			))
+		:	implode("\n", array_merge(
+				[
+					';<?php',
+					';die(); // For further security',
+					';// default DB',
+					'',
+				],
+				self::convertVariableToConfigIniContent($conf, $varName = '$conf'),
+				[ '' ]
+			))
+		;
 	}
 
 	public static function generateDefaultLdapConfigFile($params = [], $outputFormat = 'ini') {
@@ -140,36 +143,351 @@ class Config {
 		if (empty($params['base_dn'])) throw new Exception("Missing base_dn");
 		if (!in_array($outputFormat, ['ini', 'inc'])) throw new Exception("Not implemented outputFormat = '{$outputFormat}'");
 
-		if ('inc' == $outputFormat) {
-			return implode("\n", [
-				'<?php',
-				'return function ($secret = "") {',
-				'	if ("secret-p5-password" !== $secret) return null;',
-				'	$conf = [];',
-				'	$conf["version"] = "3";',
-				'	$conf["host"] = "127.0.0.1";',
-				'	// $conf["port"] = "3306";',
-				'	$conf["user"] = "' . $params['user'] . '";',
-				'	$conf["pass"] = "' . $params['pass'] . '";',
-				'	$conf["base_dn"] = "' . $params['base_dn'] . '";',
-				'	return $conf;',
-				'};',
-			]);
-		}
+		$conf = [
+			'version' => "3",
+			'host' => "127.0.0.1",
+			// 'port' => "3306",
+			'user' => $params['user'],
+			'pass' => $params['pass'],
+			'base_dn' => $params['base_dn'],
+		];
+
+		return ('inc' == $outputFormat)
+		?	implode("\n", array_merge(
+				[
+					'<?php',
+					'return function ($secret = "") {',
+					"\t" . 'if ("secret-p5-password" !== $secret) return null;',
+					"\t" . '$conf = [];',
+				],
+				self::convertVariableToConfigIncContent($conf, $varName = '$conf'),
+				[
+					"\t" . 'return $conf;',
+					'};',
+				]
+			))
+		:	implode("\n", array_merge(
+				[
+					';<?php',
+					';die(); // For further security',
+					';// default LDAP',
+					'',
+				],
+				self::convertVariableToConfigIniContent($conf, $varName = '$conf'),
+				[ '' ]
+			))
+		;
+	}
+
+	public static function generateDefaultFoldersConfigFile($params = [], $outputFormat = 'ini') {
+		if (empty($params['remote_folder_root'])) throw new Exception("Missing remote_folder_root");
+		if (empty($params['server_address'])) throw new Exception("Missing server_address");
+		if (!in_array($outputFormat, ['ini', 'inc'])) throw new Exception("Not implemented outputFormat = '{$outputFormat}'");
+
+		$conf = [
+			'root_points' => [
+				'mount_point' => "/Library/Server/Web/Data/Sites/Default/PLIKI/{$params['remote_folder_root']}",
+				'share_point' => "//{$params['server_address']}/{$params['remote_folder_root']}",
+				'www_share_point' => "https://{$params['server_address']}/PLIKI/{$params['remote_folder_root']}",
+			],
+			'm_dist_files_types' => [
+				'ARTYKUL' => "ARTYKUL",
+				'CERT_CE' => "CERT_CE",
+				'CERTYFIKAT' => "CERTYFIKAT",
+				'DEKLARACJA' => "DEKLARACJA",
+				'DOKUMENTACJA' => "DOKUMENTACJA",
+				'DOK_POWYK' => "DOK_POWYK",
+				'DRUK' => "DRUK",
+				// 'ETYKIETA' => "ETYKIETA",
+				'FAKTURA' => "FAKTURA",
+				'FIRMWARE' => "FIRMWARE",
+				// 'INSTRUKCJA' => "INSTRUKCJA",
+				// 'INSTRUKCJA_PL' => "INSTRUKCJA_PL",
+				// 'INSTRUKCJA_PL_DRUK' => "INSTRUKCJA_PL_DRUK",
+				// 'KARTA' => "KARTA",
+				'INNE' => "INNE",
+				'INSTRUKCJA' => "INSTRUKCJA",
+				'KARTA_GWARANCYJNA' => "KARTA_GWARANCYJNA",
+				// 'KOMPLETACJA' => "KOMPLETACJA",
+				'LIST_PRZEWOZ' => "LIST_PRZEWOZ",
+				'NOTATKA' => "NOTATKA",
+				'OFERTA' => "OFERTA",
+				// 'OVERLAY' => "OVERLAY",
+				'PISMO' => "PISMO",
+				'POLISA' => "POLISA",
+				'PREZENTACJA' => "PREZENTACJA",
+				'PROJEKT' => "PROJEKT",
+				'PROJEKT_BUD' => "PROJEKT_BUD",
+				'PROJEKT_GRAF' => "PROJEKT_GRAF",
+				'PROTOKOL' => "PROTOKOL",
+				'PROTOK_ODB_TOWAR' => "PROTOK_ODB_TOWAR",
+				'REKLAMACJA' => "REKLAMACJA",
+				'RYS_TECHNICZNY' => "RYS_TECHNICZNY",
+				'SPEC_WYROBU' => "SPEC_WYROBU",
+				'SOFT_CD' => "SOFT_CD",
+				'SWIAD_JAKOSCI' => "SWIAD_JAKOSCI",
+				'TODO' => "TODO",
+				'UMOWA' => "UMOWA",
+				'UCHWALA' => "UCHWALA",
+				'UCHWALA_WWW' => "UCHWALA_WWW",
+				'UZGODNIENIE' => "UZGODNIENIE",
+				'WEZW_DO_ZAPL' => "WEZW_DO_ZAPL",
+				'WWW_DOKUMENTY' => "WWW_DOKUMENTY",
+				'WWW_PRACA' => "WWW_PRACA",
+				'WZORZEC' => "WZORZEC",
+				'WNIOSEK' => "WNIOSEK",
+				'WNIOSEK_URLOP' => "WNIOSEK_URLOP",
+				'WYD_MAGAZYN' => "WYD_MAGAZYN",
+				'WYCENA' => "WYCENA",
+				'ZDJECIE' => "ZDJECIE",
+				'ZDJECIE_HI' => "ZDJECIE_HI",
+				'ZWOLNIENIE_LEK' => "ZWOLNIENIE_LEK",
+				'ZAMOWIENIE' => "ZAMOWIENIE",
+			],
+			'default_COLUMN' => [
+				'mount_point' => "default",
+				'share_point' => "default",
+				'www_share_point' => "default",
+				'LOOKAT_NEGFILE_LOOK_REGEX' => "/<VARNAME>./",
+				'LOOKAT_NEGFILE_VARNAME' => "ID",
+				'LOOKAT_FOLDER_LOOK_REGEX' => "/../",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_M_DIST_FILES_INDEXNAME' => "ID",
+			],
+			'ADMIN_USERS_COLUMN' => [
+				'mount_point' => "ADMIN_USERS",
+				'share_point' => "ADMIN_USERS",
+				'www_share_point' => "ADMIN_USERS",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "ADM_NAME",
+			],
+			'CRM_LISTA_ZASOBOW_COLUMN' => [
+				'mount_point' => "DRUKI",
+				'share_point' => "DRUKI",
+				'www_share_point' => "DRUKI",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "DESC",
+			],
+			'CRM_LISTA_ZASOBOW_COLUMN' => [
+				'mount_point' => "DRUKI",
+				'share_point' => "DRUKI",
+				'www_share_point' => "DRUKI",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "DESC",
+			],
+			'CRM_PROCES_COLUMN' => [
+				'mount_point' => "CRM_PROCES",
+				'share_point' => "CRM_PROCES",
+				'www_share_point' => "CRM_PROCES",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "DESC",
+			],
+			'QUALITY_NOTICES_COLUMN' => [
+				'mount_point' => "QUALITY_NOTICES",
+				'share_point' => "QUALITY_NOTICES",
+				'www_share_point' => "QUALITY_NOTICES",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "ID_PROCES",
+			],
+			'GRAFIK_PRACY_COLUMN' => [
+				'mount_point' => "GRAFIK_PRACY",
+				'share_point' => "GRAFIK_PRACY",
+				'www_share_point' => "GRAFIK_PRACY",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "DATE",
+				'DEST_FOLDER_VARNAME3' => "L_APPOITMENT_USER",
+			],
+			'PROBLEMS_COLUMN' => [
+				'mount_point' => "PROBLEMS",
+				'share_point' => "PROBLEMS",
+				'www_share_point' => "PROBLEMS",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "A_PROBLEM_DESC",
+			],
+			'BUILDINGS_COLUMN' => [
+				'mount_point' => "BUILDINGS",
+				'share_point' => "BUILDINGS",
+				'www_share_point' => "BUILDINGS",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "S_ADDRESS_STREET",
+			],
+			'IN7_MK_BAZA_DYSTRYBUCJI_COLUMN' => [
+				'mount_point' => "PROJEKTY",
+				'share_point' => "PROJEKTY",
+				'www_share_point' => "PROJEKTY",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "M_DIST_DESC",
+			],
+			'IN7_DZIENNIK_KORESP_COLUMN' => [
+				'mount_point' => "PISMA",
+				'share_point' => "PISMA",
+				'www_share_point' => "PISMA",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>-<VARNAME3>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "K_OD_KOGO",
+				'DEST_FOLDER_VARNAME3' => "K_ZAWARTOS",
+			],
+			'DEVICES_COLUMN' => [
+				'mount_point' => "DEVICES",
+				'share_point' => "DEVICES",
+				'www_share_point' => "DEVICES",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.<VARNAME2>_<VARNAME3>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "T_PRODUCER",
+				'DEST_FOLDER_VARNAME3' => "S_HW",
+			],
+			'WIZJE_LOKALNE_COLUMN' => [
+				'mount_point' => "WIZJE_LOKALNE",
+				'share_point' => "WIZJE_LOKALNE",
+				'www_share_point' => "WIZJE_LOKALNE",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.WIZJE_LOKALNE<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "A_RECORD_CREATE_DATE",
+			],
+			'SCANS_COLUMN' => [
+				'mount_point' => "SKANY",
+				'share_point' => "SKANY",
+				'www_share_point' => "SKANY",
+			],
+			'WMS_LAYERS_COLUMN' => [
+				'mount_point' => "WMS_LAYERS",
+				'share_point' => "WMS_LAYERS",
+				'www_share_point' => "WMS_LAYERS",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+			],
+			'MK_Rewiry_COLUMN' => [
+				'mount_point' => "MK_Rewiry",
+				'share_point' => "MK_Rewiry",
+				'www_share_point' => "MK_Rewiry",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "<VARNAME>.*",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "<VARNAME1>.MK_Rewiry_<VARNAME2>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+				'DEST_FOLDER_VARNAME2' => "NAZWA_REWI",
+			],
+			'BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_COLUMN' => [
+				'mount_point' => "BI_audit_POWIAZANIA",
+				'share_point' => "BI_audit_POWIAZANIA",
+				'www_share_point' => "BI_audit_POWIAZANIA",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "BI_audit_POWIAZANIA.<VARNAME>",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "BI_audit_POWIAZANIA.<VARNAME1>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+			],
+			'BI_audit_KW_requested_COLUMN' => [
+				'mount_point' => "BI_audit_KW_requested",
+				'share_point' => "BI_audit_KW_requested",
+				'www_share_point' => "BI_audit_KW_requested",
+				'LOOKAT_FOLDER_LOOK_GLOB' => "BI_audit_KW_requested.<VARNAME>",
+				'LOOKAT_FOLDER_VARNAME' => "ID",
+				'DEST_FOLDER_FORMAT' => "BI_audit_KW_requested.<VARNAME1>",
+				'DEST_FOLDER_VARNAME1' => "ID",
+			],
+		];
+
+		return ('inc' == $outputFormat)
+		?	implode("\n", array_merge(
+				[
+					'<?php',
+					'return function ($secret = "") {',
+					"\t" . 'if ("secret-p5-password" !== $secret) return null;',
+					"\t" . '$conf = [];',
+				],
+				self::convertVariableToConfigIncContent($conf, $varName = '$conf'),
+				[
+					"\t" . 'return $conf;',
+					'};',
+				]
+			))
+		:	implode("\n", array_merge(
+				[
+					';<?php',
+					';die(); // For further security',
+					'',
+				],
+				self::convertVariableToConfigIniContent($conf, $varName = '$conf'),
+				[ '' ]
+			))
+		;
+	}
 
-	  return implode("\n", [
-			';<?php',
-			';die(); // For further security',
-			';// default LDAP',
-			'',
-			'version="3"',
-			'host="127.0.0.1"',
-			';//port="3306"',
-			'user="' . $params['user'] . '"',
-			'pass="' . $params['pass'] . '"',
-			'base_dn="' . $params['base_dn'] . '"',
-			'',
-		]);
+	public static function convertVariableToConfigIniContent($conf = [], $varName = '$conf') {
+		$ini = [];
+		foreach ($conf as $key => $val) {
+			if (is_array($val)) {
+				$ini[] = "[\"{$key}\"]";
+				foreach ($val as $subKey => $subVal) {
+					if (is_scalar($subVal)) {
+						$ini[] = "{$subKey}=\"{$subVal}\"";
+					} else {
+						throw new Exception("Config ini bug ({$key}/{$subKey})");
+					}
+				}
+				$ini[] = "";
+			} else if (is_scalar($val)) {
+				$ini[] = "{$key}=\"{$val}\"";
+			} else {
+				throw new Exception("Config ini bug ({$key})");
+			}
+		}
+		return $ini;
+	}
+	public static function convertVariableToConfigIncContent($conf = [], $varName = '$conf') {
+		$inc = [];
+		foreach ($conf as $key => $val) {
+			if (is_array($val)) {
+				$inc[] = "\t{$varName}[\"{$key}\"] = [];";
+				foreach ($val as $subKey => $subVal) {
+					if (is_scalar($subVal)) {
+						$inc[] = "\t{$varName}[\"{$key}\"][\"{$subKey}\"] = \"{$subVal}\";";
+					} else {
+						throw new Exception("Config inc bug ({$key}/{$subKey})");
+					}
+				}
+				$ini[] = "";
+			} else if (is_scalar($val)) {
+				$inc[] = "\t{$varName}[\"{$key}\"] = \"{$val}\";";
+			} else {
+				throw new Exception("Config inc bug ({$key})");
+			}
+		}
+		return $inc;
 	}
 
 	/**