<?php

namespace ProcessWire;

// function adm_require_auth()
// {
// 	$AUTH_USER = 'natan';
// 	$AUTH_PASS = 'natan970';
// 	header('Cache-Control: no-cache, must-revalidate, max-age=0');
// 	$has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW']));
// 	$is_not_authenticated = (!$has_supplied_credentials ||
// 		$_SERVER['PHP_AUTH_USER'] != $AUTH_USER ||
// 		$_SERVER['PHP_AUTH_PW']   != $AUTH_PASS
// 	);
// 	if ($is_not_authenticated) {
// 		header('HTTP/1.1 401 Authorization Required');
// 		header('WWW-Authenticate: Basic realm="Access denied"');
// 		exit;
// 	}
// }
// // echo substr($_SERVER['REQUEST_URI'], 0, 11);
// if (substr($_SERVER['REQUEST_URI'], 0, 11) === '/zamowienia') {

// 	//  ok , bez basic auth
// } else {
// 	adm_require_auth();
// }


/**
 * ProcessWire Bootstrap
 *
 * This file may be used to bootstrap either the http web accessible
 * version, or the command line client version of ProcessWire. 
 *
 * Note: if you happen to change any directory references in here, please
 * do so after you have installed the site, as the installer is not informed
 * of any changes made in this file. 
 * 
 * ProcessWire 3.x, Copyright 2020 by Ryan Cramer
 * https://processwire.com
 *
 * @version 3.0
 *
 * Index Versions
 * ==============
 * 300 Moved much of this file to a ProcessWire::buildConfig() method.
 * 252 Extract all fuel to local API vars when in external or cli mode.
 * 251 Add $config->debugIf option.
 * 250 PW 2.5 support.
 *
 */

if (!defined("PROCESSWIRE")) define("PROCESSWIRE", 300); // index version
$rootPath = __DIR__;
if (DIRECTORY_SEPARATOR != '/') $rootPath = str_replace(DIRECTORY_SEPARATOR, '/', $rootPath);
$composerAutoloader = $rootPath . '/vendor/autoload.php'; // composer autoloader
if (file_exists($composerAutoloader)) require_once($composerAutoloader);
if (!class_exists("ProcessWire\\ProcessWire", false)) require_once("$rootPath/wire/core/ProcessWire.php");
$config = ProcessWire::buildConfig($rootPath);

if (!$config->dbName) {
	// If ProcessWire is not installed, go to the installer
	if (is_file("./install.php") && strtolower($_SERVER['REQUEST_URI']) == strtolower($config->urls->root)) {
		require("./install.php");
		exit(0);
	} else {
		header("HTTP/1.1 404 Page Not Found");
		echo "404 page not found (no site configuration or install.php available)";
		exit(0);
	}
}

$process = null;
$wire = null;

try {
	// Bootstrap ProcessWire's core and make the API available with $wire
	$wire = new ProcessWire($config);
	$process = $wire->modules->get('ProcessPageView');
	/** @var ProcessPageView $process */
	$wire->wire('process', $process);
	echo $process->execute($config->internal);
	$config->internal ? $process->finished() : extract($wire->wire('all')->getArray());
} catch (\Exception $e) {
	// Formulate error message and send to the error handler
	if ($process) $process->failed($e);
	$wire ? $wire->trackException($e) : $config->trackException($e);
	$errorMessage = "Exception: " . $e->getMessage() . " (in " . $e->getFile() . " line " . $e->getLine() . ")";
	if ($config->debug || ($wire && $wire->user && $wire->user->isSuperuser())) $errorMessage .= "\n\n" . $e->getTraceAsString();
	trigger_error($errorMessage, E_USER_ERROR);
}
