/home
/deploy
/EHungry-2-joel
/Web
/classes
/Bitmasks
/OrderTemplatePlatforms.php
<?php
namespace eHungry\classes\Bitmasks;
class OrderTemplatePlatforms extends \eHungry\classes\Util\BitmaskSet {
const DOT = 1; // Direct Order Template; everything except springroll
const MOT = 2; // Marketplace Order Template; springroll
public static function normalizeBitName(int $value, string $name): string {
switch ($value) {
case self::DOT:
$out = 'DOT - Direct Order Template';
break;
case self::MOT:
$out = 'MOT - Springroll';
break;
default:
$out = parent::normalizeBitName($value, $name);
}
return $out;
}
public static function currentOrderingPlatform(bool $isSpringRoll): int {
return ($isSpringRoll? self::MOT : self::DOT);
}
}
Arguments
"Class 'eHungry\classes\Util\BitmaskSet' not found"
/home
/deploy
/EHungry-2-joel
/PHP
/vendor
/composer
/ClassLoader.php
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*
* @param string $file
* @return void
* @private
*/
function includeFile($file)
{
include $file;
}
/home
/deploy
/EHungry-2-joel
/PHP
/vendor
/composer
/ClassLoader.php
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
return null;
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
/home
/deploy
/EHungry-2-joel
/Web
/classes
/Account.class.php
if ($isSingleRestaurant && !empty($_REQUEST['_SINGLE_MENU']) && end($psa) === 'menu') {
$path = 'menu';
} elseif (!empty($psa)) {
$path .= '/' . implode('/', $psa);
}
// Ensure query string starts with '?'
$qs = $qs !== '' && strpos($qs, '?') !== 0 ? '?'.$qs : $qs;
return $this->getBaseUrl($orderTemplatePlatform) . $path . $qs;
}
/**
* Format a customer link for the currently browsed ordering platform.
* @param $form
* @param $params
* @return string
*/
public function formatCustomerLinkForCurrentPlatform($form = '', $params = []) {
return $this->formatCustomerLink(OrderTemplatePlatforms::currentOrderingPlatform(isSpringroll()), $form, $params);
}
/**
* Format a customer link for a specific ordering platform.
* @param int $orderTemplatePlatform
* @param $form
* @param $params
* @return string
*/
public function formatCustomerLink(int $orderTemplatePlatform = OrderTemplatePlatforms::DOT, $form = '', $params = []) {
global $pageParameters;
$ps = '';
$psa = [];
$sess = '';
if (is_array($params) && is_array($pageParameters)) {
//for known parameters, we don't need their 'key' in the url, so add them in correct order here
if (array_key_exists($form, $pageParameters)) {
foreach ($pageParameters[$form] as $p) {
if (array_key_exists($p, $params)) {
/home
/deploy
/EHungry-2-joel
/Web
/classes
/Account.class.php
if ($isSingleRestaurant && !empty($_REQUEST['_SINGLE_MENU']) && end($psa) === 'menu') {
$path = 'menu';
} elseif (!empty($psa)) {
$path .= '/' . implode('/', $psa);
}
// Ensure query string starts with '?'
$qs = $qs !== '' && strpos($qs, '?') !== 0 ? '?'.$qs : $qs;
return $this->getBaseUrl($orderTemplatePlatform) . $path . $qs;
}
/**
* Format a customer link for the currently browsed ordering platform.
* @param $form
* @param $params
* @return string
*/
public function formatCustomerLinkForCurrentPlatform($form = '', $params = []) {
return $this->formatCustomerLink(OrderTemplatePlatforms::currentOrderingPlatform(isSpringroll()), $form, $params);
}
/**
* Format a customer link for a specific ordering platform.
* @param int $orderTemplatePlatform
* @param $form
* @param $params
* @return string
*/
public function formatCustomerLink(int $orderTemplatePlatform = OrderTemplatePlatforms::DOT, $form = '', $params = []) {
global $pageParameters;
$ps = '';
$psa = [];
$sess = '';
if (is_array($params) && is_array($pageParameters)) {
//for known parameters, we don't need their 'key' in the url, so add them in correct order here
if (array_key_exists($form, $pageParameters)) {
foreach ($pageParameters[$form] as $p) {
if (array_key_exists($p, $params)) {
/home
/deploy
/EHungry-2-joel
/Web
/lib
/global.php
function executeForm($form = null, $exitAfter = false) {
if ($form) {
$_REQUEST["form"] = $form;
include_once(CORE_PATH . "model/".$form.".php");
if ($exitAfter) {
exit(0);
}
}
}
/**
* @deprecated {@see Account::formatCustomerLinkForCurrentPlatform()}
* @param string $form
* @param array $params
* @return string
*/
function formatCustomerLink($form, $params = []) {
global $account;
return $account->formatCustomerLinkForCurrentPlatform($form, $params);
}
/**
* @deprecated {@see Account::formatCustomerOrderLinkForCurrentPlatform()}
* @param Restaurant[]|Menu[]|Category[]|MenuItemPrice[]|string[] $params An array with all the URL components, ideally objects (unless you _need_ to hardcode some parts)
* @param string $qs Anything else to append as query-string params
* @return string
*/
function formatCustomerOrderLink($params = [], $qs = '') {
global $account;
$restaurant = $params[0] ?? null;
$menu = $params[1] ?? null;
$category = $params[2] ?? null;
$item = $params[3] ?? null;
$price = $params[4] ?? null;
return $account->formatCustomerOrderLinkForCurrentPlatform($restaurant, $menu, $category, $item, $price, $qs);
}
/home
/deploy
/EHungry-2-joel
/Web
/controllers
/sitemap.php
$locs = $account->getActiveRestaurants('position');
if (count($locs) == 1) {
$singleLocation = true;
$_REQUEST['_SINGLE_RESTAURANT'] = true;
} else {
$singleLocation = false;
}
$basePages = [
'locationinfo',
'contact',
'reportbug',
'privacy',
'tos',
'accessibility'
];
foreach ($basePages as $bp) {
$sm->addUrl(formatCustomerLink($bp));
}
foreach ($locs as $restaurant) {
$sm->addUrl(formatCustomerLink('map', ['lid' => $restaurant->getId()]));
if ($restaurant->getHasNoOrdering()) {
if ($restaurant->getPdfMenuFile()) {
$sm->addUrl($restaurant->getUrl('pdfMenuFile'));
}
} else {
$sm->addUrl(formatCustomerOrderLink([$restaurant]));
$menus = $restaurant->getActiveMenus();
if (is_array($menus)) {
foreach ($menus as $menu) {
$sm->addUrl(formatCustomerOrderLink([$restaurant, $menu]));
$categories = $menu->getCategoriesForRestaurant($restaurant->getId(), true);
if (is_array($categories)) {
foreach ($categories as $category) {
$sm->addUrl(formatCustomerOrderLink([$restaurant, $menu, $category]));
/home
/deploy
/EHungry-2-joel
/Web
/index.php
App::startTime();
ErrorHandlers::register();
// Global.php is the core setup file for the application
App::debugbarTime('Global.php');
require(dirname(__DIR__) . '/PHP/Global.php');
App::debugbarTime('Global.php');
/** @var string $controller The main controller - defined at /PHP/Global.php */
App::debugbarTime('Sentry - controller');
ErrorHandlers::sentryInit($controller); //doesn't always do much - not every controller has a Sentry project
App::debugbarTime('Sentry - controller');
App::debugbarTime("controller: $controller");
apache_note('AppController', $controller);
if (file_exists(CORE_PATH."lib/helpers/$controller.php")) {
require CORE_PATH."lib/helpers/$controller.php";
}
require CORE_PATH."controllers/$controller.php";
App::debugbarTime("controller: $controller");
/home
/deploy
/EHungry-2-joel
/Web
/index.php
<? /** @noinspection PhpIncludeInspection - to avoid marking dynamic includes */
//TODO create a «root»/_bootstrap.php which can be used by .psysh.php, tests/bootstrap.php and Web/index.php
require(dirname(__DIR__).'/PHP/base_consts.php');
require(dirname(__DIR__).'/PHP/autoloader.php');
initializeAutoLoader();
//disabled for now since we already have our own Alerts infrastructure, and it's not worth it to append another cloud provider to the startup of every freaking request; it's also not possible to catch errors this early if we depend on database checks, but we'll leave it here in case we change our mind?
//ErrorHandlers::sentryInit(); //early catch of errors and failsafe for smaller controllers, not in Sentry
App::startTime();
ErrorHandlers::register();
// Global.php is the core setup file for the application
App::debugbarTime('Global.php');
require(dirname(__DIR__) . '/PHP/Global.php');
App::debugbarTime('Global.php');
/** @var string $controller The main controller - defined at /PHP/Global.php */
App::debugbarTime('Sentry - controller');
ErrorHandlers::sentryInit($controller); //doesn't always do much - not every controller has a Sentry project
App::debugbarTime('Sentry - controller');
App::debugbarTime("controller: $controller");
apache_note('AppController', $controller);
if (file_exists(CORE_PATH."lib/helpers/$controller.php")) {
require CORE_PATH."lib/helpers/$controller.php";
}
require CORE_PATH."controllers/$controller.php";
App::debugbarTime("controller: $controller");