= 0)) { die('Organizr needs PHP Version: ' . $GLOBALS['minimumPHP'] . '
You have PHP Version: ' . PHP_VERSION); } // Set GLOBALS from config file $GLOBALS['userConfigPath'] = dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php'; $GLOBALS['defaultConfigPath'] = dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'default.php'; $GLOBALS['currentTime'] = gmdate("Y-m-d\TH:i:s\Z"); $GLOBALS['docker'] = (file_exists(dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'Docker.txt')) ? true : false; if ($GLOBALS['docker']) { $getCommit = file_get_contents(dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'Github.txt'); $getCommit = (empty($getCommit)) ? 'n/a' : $getCommit; $GLOBALS['quickCommit'] = $getCommit; } $GLOBALS['fileHash'] = (isset($GLOBALS['quickCommit'])) ? $GLOBALS['quickCommit'] : $GLOBALS['installedVersion']; $GLOBALS['quickConfig'] = (file_exists($GLOBALS['userConfigPath'])) ? loadConfigOnce($GLOBALS['userConfigPath']) : null; $GLOBALS['organizrIndexTitle'] = (isset($GLOBALS['quickConfig']['title'])) ? $GLOBALS['quickConfig']['title'] : 'Organizr v2'; $GLOBALS['organizrIndexDescription'] = (isset($GLOBALS['quickConfig']['description'])) ? $GLOBALS['quickConfig']['description'] : 'Organizr v2'; // Quick function for plugins function pluginFiles($type) { $files = ''; switch ($type) { case 'js': foreach (glob(dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . "*.js") as $filename) { $files .= ''; } break; case 'css': foreach (glob(dirname(__DIR__, 1) . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR . "*.css") as $filename) { $files .= ''; } break; default: break; } return $files; } function loadConfigOnce($path = null) { $path = ($path) ? $path : $GLOBALS['userConfigPath']; if (!is_file($path)) { return null; } else { return (array)call_user_func(function () use ($path) { return include($path); }); } } function formKey($script = true) { if (isset($GLOBALS['quickConfig']['organizrHash'])) { if ($GLOBALS['quickConfig']['organizrHash'] !== '') { $hash = password_hash(substr($GLOBALS['quickConfig']['organizrHash'], 2, 10), PASSWORD_BCRYPT); return ($script) ? '' : $hash; } } } function checkFormKey($formKey = '') { return password_verify(substr($GLOBALS['quickConfig']['organizrHash'], 2, 10), $formKey); } function favIcons() { $favicon = ' '; if (isset($GLOBALS['quickConfig']['favIcon'])) { if ($GLOBALS['quickConfig']['favIcon'] !== '') { $favicon = $GLOBALS['quickConfig']['favIcon']; } } return $favicon; } function languagePacks($encode = false) { $files = array(); foreach (glob(dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'js' . DIRECTORY_SEPARATOR . 'langpack' . DIRECTORY_SEPARATOR . "*.json") as $filename) { if (strpos(basename($filename), '[') !== false) { $explode = explode('[', basename($filename)); $files[] = array( 'filename' => basename($filename), 'code' => $explode[0], 'language' => matchBrackets(basename($filename)) ); } } usort($files, function ($a, $b) { return $a['language'] <=> $b['language']; }); return ($encode) ? json_encode($files) : $files; } function matchBrackets($text, $brackets = 's') { switch ($brackets) { case 's': case 'square': $pattern = '#\[(.*?)\]#'; break; case 'c': case 'curly': $pattern = '#\((.*?)\)#'; break; default: return null; } preg_match($pattern, $text, $match); return $match[1]; } function googleTracking() { if (isset($GLOBALS['quickConfig']['gaTrackingID'])) { if ($GLOBALS['quickConfig']['gaTrackingID'] !== '') { return ' '; } } return null; }