| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589 |
- <?php
- /**
- * require define(APP_PATH_CONFIG)
- *
- * Config file name format:
- ** po "-" zawsze $host ($_SERVER['SERVER_NAME']), inne "--"
- ** main config file
- * .cnf.ini.php
- * .cnf-{$host}.ini.php
- ** special $config_file
- * .cnf--{$config_file}.ini.php
- * .cnf--{$config_file}-{$host}.ini.php
- **** eg. "external_ids":
- * .cnf--external_ids.ini.php
- * .cnf--external_ids-{$host}.ini.php
- **** eg. $config_file = zasob_{$ID}
- * .cnf--zasob_{$ID}.ini.php - config file for zasob $ZASOB_ID
- * .cnf--zasob_{$ID}-{$host}.ini.php - config file for zasob $ZASOB_ID on host
- **** eg. $config_file = column_init_{$ID}
- * .cnf--column_init_{$table}.ini.php - config file for column
- * .cnf--column_init_{$table}-{$host}.ini.php - config file for column on host
- *
- * TODO: dziedziczenie plikow na podstawie hosta - kropki? dla hosta www2.biall.com.pl i www.biall.com.pl dziedziczy po: biall.com.pl
- *
- * If conf file not found '.cnf*.ini.php' then try to find file '.cnf*.inc.php'
- *
- * Struktura pliku .cnf*.ini.php
- ;<?php
- ;die(); // For further security
- ;// @COMMENT
- foo="bar"
- [section1]
- foo1="bar1"
- * parse_ini_file( file, true ) # true - process_sections
- Array
- (
- [foo] => bar
- [section1] => Array
- (
- [foo1] => bar1
- )
- )
- *
- * Struktura pliku .cnf*.inc.php
- <?php
- return function ($secret = '') {
- if ('secret-p5-password' !== $secret) return null;
- $conf = [
- 'host' => "",
- // ...
- ];
- return $conf;
- };
- */
- class Config {
- public static function get($key, $section = null) {
- static $_main_config;
- if ($_main_config === null) {
- $_main_config = self::getConfFile();
- }
- if ($key == 'get-all-data') {
- return $_main_config;
- }
- $cur_conf = $_main_config;
- if ($section !== null) {
- $cur_conf = V::get($section, null, $_main_config);
- }
- return V::get($key, null, $cur_conf);
- }
- public static function getData() {
- return self::get('get-all-data');
- }
- /**
- * Search for zasob config ini file.
- * Config file name must contain zasob_{$ID} for example:
- * .cnf--zasob_{$ID}.ini.php - config file for zasob $ZASOB_ID
- * .cnf--zasob_{$ID}-{$host}.ini.php - config file for zasob $ZASOB_ID on host
- */
- public static function getZasobConf($zasob_id) {
- return self::getConfFile("zasob_{$zasob_id}");
- }
- /**
- * Search for zasob config ini file.
- */
- public static function getColumnConf($col) {
- return self::getConfFile("column_init_{$col}");
- }
- public static function generateDefaultDbConfigFile($params = [], $outputFormat = 'ini') {
- if (empty($params['database'])) throw new Exception("Missing database name");
- if (empty($params['password'])) throw new Exception("Missing password");
- if (!in_array($outputFormat, ['ini', 'inc'])) throw new Exception("Not implemented outputFormat = '{$outputFormat}'");
- $conf = [
- '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') {
- if (empty($params['user'])) throw new Exception("Missing user");
- if (empty($params['pass'])) throw new Exception("Missing pass");
- if (empty($params['base_dn'])) throw new Exception("Missing base_dn");
- if (!in_array($outputFormat, ['ini', 'inc'])) throw new Exception("Not implemented outputFormat = '{$outputFormat}'");
- $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'),
- [ '' ]
- ))
- ;
- }
- 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;
- }
- /**
- * Search for config ini file.
- * TODO: $conf_file == '' - main config file
- */
- public static function getConfFile($conf_file = '') {
- static $_cnf;
- if (!is_array($_cnf)) $_cnf = array();
- if (array_key_exists($conf_file, $_cnf)) {
- return $_cnf[$conf_file];
- }
- $_cnf[$conf_file] = null;
- $cnf = null;
- $file_prefix = '.cnf';
- if ($conf_file != '') $file_prefix .= '--'.$conf_file;
- $file_suffix = '.ini.php';
- $search_for_files = array();// kolejka includowania plikow
- $host = $_SERVER['SERVER_NAME'];
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . '-' . $host . $file_suffix;
- // dziedziczenie - subdomain np. www.biall.com.pl i www2.biall.com.pl -> biall.com.pl
- $host_subdomain_exp = explode('.', $host);
- $host_subdomain = reset($host_subdomain_exp);
- $host_parent = substr($host, strlen($host_subdomain . '.'));
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . '-' . $host_parent . $file_suffix;
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . $file_suffix;
- foreach ($search_for_files as $f) {
- if (1 == V::get('DBG_CNF', '', $_GET)) { echo "f(" . end(explode('/',$f)) . ")=(" . file_exists($f) . ")"; }
- if (file_exists($f)) {
- Lib::loadClass('Core_Config_INI');
- $cnf = new Core_Config_INI($f);
- $_cnf[$conf_file] = $cnf->getData();
- break;
- }
- }
- try {
- if (empty($_cnf[$conf_file])) {
- $file_suffix = '.inc.php';
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . '-' . $host . $file_suffix;
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . '-' . $host_parent . $file_suffix;
- $search_for_files[] = APP_PATH_CONFIG . DS . $file_prefix . $file_suffix;
- foreach ($search_for_files as $f) {
- if (1 == V::get('DBG_CNF', '', $_GET)) { echo "f(" . end(explode('/',$f)) . ")=(" . file_exists($f) . ")"; }
- if (file_exists($f)) {
- $fun = include $f;
- if (!is_callable($fun)) throw new Exception("Config func is not callable");
- $_cnf[$conf_file] = $fun('secret-p5-password');
- if (null === $_cnf[$conf_file]) throw new Exception("Config error");
- break;
- }
- }
- }
- } catch (Exception $e) {
- DBG::log($e);
- }
- return $_cnf[$conf_file];
- }
- /**
- * activeProject - SE/projects/{activeProject}/
- * may be set by ENV or in CRM_CONFIG
- */
- public static function getProjectName() {
- static $_activeProject = null;
- if (null !== $_activeProject) return $_activeProject;
- $activeProject = V::get('P5_ACTIVE_PROJECT', '', $_SERVER);
- DBG::log("\$activeProject = '{$activeProject}' (ENV)");
- if ($activeProject) {
- $path = APP_PATH_ROOT . DS . "projects" . DS . "{$activeProject}";
- if (!file_exists($path)) throw new Exception("Missing project folder '{$activeProject}' (env)");
- }
- if (!$activeProject) {
- $activeProject = DB::getPDO()->fetchValue(" select c.CONF_VAL from CRM_CONFIG c where c.CONF_KEY = 'activeProject' ");
- if ($activeProject) {
- $path = APP_PATH_ROOT . DS . "projects" . DS . "{$activeProject}";
- if (!file_exists($path)) throw new Exception("Missing project folder '{$activeProject}' (db)");
- }
- }
- DBG::log("\$activeProject = '{$activeProject}' (ENV, DB)");
- $_activeProject = (string)$activeProject;
- return $_activeProject;
- }
- public static function getProjectPath() {
- $activeProject = self::getProjectName();
- if (!$activeProject) return null;
- return APP_PATH_ROOT . DS . "projects" . DS . "{$activeProject}";
- }
- }
|