}
else
{
$iReturn = filter_var($sValidValue, FILTER_VALIDATE_INT, array('options' => array('default' => $sDefault, 'min_range' => $iMin, 'max_range' => $iMax)));
}
return $iReturn;
}
// Integer ID: sanitize and validate
public static function validID(string $sValue) : int
{
return self::validInt($sValue, -1, -1);
}
// Float: sanitize and validate
public static function validFloat(string $sValue, int $nDecimals=2, float $fDefault=0) : float
{
$sReturn = filter_var($sValue, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);
return round(filter_var($sReturn, FILTER_VALIDATE_FLOAT, array('options' => array('default' => $fDefault))), $nDecimals);
}
"Argument 1 passed to application\src\CValidate::validID() must be of the type string, null given, called in /home/spoonandwhisk/public_html/application/blocks/product_catalog/elements/product_list.php on line 350"
// --------------------------------------------------------
// URLs and Breadcrumbs
// --------------------------------------------------------
$sBreadcrumbs = '';
$sQVWrapperID = 'qv_product'; // quick view wrapper <div> ID
if ($bSearch)
{
$sTitle = '<h2 class="title">Search Results</h2>';
}
elseif ($bRegistry)
{
if ($bRegistrySelected) $sTitle = '<h2 class="title">Gift Registry</h2>';
}
else
{
$aFields = $aProductRows[0];
$sTitle = "<h1>{$aFields['Category_Title']} - {$aFields['SubCategory_Title']}</h1>";
$sCategoriesURL = $this->url('/shop');
$sSubCatagoriesURL = $oCatalog->urlCategory($aFields['Category_Title'], CValidate::validID($aFields['Category_CategoryID']));
$sRegistryURL = CRegistry::registryIsSelected() ?
"<br />Registry: <a href=\"{$oCatalog->urlRegistry()}\">" . CRegistry::registryName() . '</a>' : '';
$sBreadcrumbs = <<<EOT
<div class="breadcrumbs">
View: <a href="{$sCategoriesURL}">Product Catalog Categories</a>
>
<a href="{$sSubCatagoriesURL}">{$aFields['Category_Title']} Category</a>
{$sRegistryURL}
</div>
EOT;
}
// --------------------------------------------------------
// Display Products with hidden Quick View <div>
// --------------------------------------------------------
$sHTML .= <<<EOT
{$sTitle}
{$sSearchMsg}
{$sControllerMsg}
null
$sPage = '/admin_product_edit.php';
}
else
{
$sPage = '/admin_home.php';
}
break;
// Admin Catalog Sidebar: categories or vendors
case 'admin-sidebar':
$sPage = '/admin_sidebar.php';
break;
default:
echo '<p class="error">Unrecognized page type: ' . $pageType . '</p>';
return;
} // end switch
require(dirname(__FILE__) . '/elements' . $sPage);
"/home/spoonandwhisk/public_html/application/blocks/product_catalog/elements/product_list.php"
$app = Application::getFacadeApplication();
// If you hook into this event and use `preventRendering()`,
// you can prevent the block from being displayed.
$event = new BlockBeforeRender($this->block);
$app->make('director')->dispatch('on_block_before_render', $event);
return $event->proceed();
};
if (!$shouldRender()) {
return;
}
unset($shouldRender);
extract($scopeItems);
if (!$this->outputContent) {
ob_start();
include $this->template;
$this->outputContent = ob_get_contents();
ob_end_clean();
}
// In case the view changes any scope items, the block header/footer
// could break without extracting the scope items again. This can happen
// if the block view changes any local variables such as the `$b`
// variable which is possible as they can be user defined.
extract($scopeItems);
// The translatable texts in the block header/footer need to be printed
// out in the system language.
$loc = Localization::getInstance();
$loc->pushActiveContext(Localization::CONTEXT_UI);
if ($this->blockViewHeaderFile) {
include $this->blockViewHeaderFile;
}
$this->controller->registerViewAssets($this->outputContent);
"/home/spoonandwhisk/public_html/application/blocks/product_catalog/view.php"
$helpers = $this->controller->getHelperObjects();
$return = array_merge($this->scopeItems, $sets, $helpers);
} else {
$return = $this->scopeItems;
}
$return['view'] = $this;
$return['controller'] = $this->controller;
return $return;
}
public function render($state = false)
{
if ($this instanceof View) {
$this->setRequestInstance($this);
}
$this->start($state);
$this->setupRender();
$this->startRender();
$scopeItems = $this->getScopeItems();
$contents = $this->renderViewContents($scopeItems);
$contents = $this->postProcessViewContents($contents);
$response = $this->finishRender($contents);
if ($this instanceof View) {
$this->revertRequestInstance();
}
return $response;
}
public function renderViewContents($scopeItems)
{
if (file_exists($this->template)) {
extract($scopeItems);
ob_start();
$this->onBeforeGetContents();
include $this->template;
$this->onAfterGetContents();
$contents = ob_get_contents();
ob_end_clean();
array:11 [ "bID" => "49" "pageType" => "product-catalog" "featuredProductRow" => null "controller" => Application\Block\ProductCatalog\Controller {#2620} "catalogPage" => "SUB-CATEGORY" "subcategoryID" => "223" "form" => Concrete\Core\Form\Service\Form {#2912} "view" => Concrete\Core\Block\View\BlockView {#2902} "b" => Concrete\Core\Block\Block {#1644} "bt" => Concrete\Core\Entity\Block\BlockType\BlockType {#2618} "a" => Concrete\Core\Area\Area {#2891} ]
$loc = Localization::getInstance();
// now, we iterate through these block groups (which are actually arrays of block objects), and display them on the page
$loc->pushActiveContext(Localization::CONTEXT_UI);
if ($this->showControls && $c->isEditMode() && $ap->canViewAreaControls()) {
View::element('block_area_header', array('a' => $this));
} else {
View::element('block_area_header_view', array('a' => $this));
}
$loc->popActiveContext();
foreach ($blocksToDisplay as $b) {
$bv = new BlockView($b);
$bv->setAreaObject($this);
$p = new Permissions($b);
if ($p->canViewBlock()) {
if (!$c->isEditMode()) {
echo $this->enclosingStart;
}
$bv->render('view');
if (!$c->isEditMode()) {
echo $this->enclosingEnd;
}
}
}
$loc->pushActiveContext(Localization::CONTEXT_UI);
if ($this->showControls && $c->isEditMode() && $ap->canViewAreaControls()) {
View::element('block_area_footer', array('a' => $this));
} else {
View::element('block_area_footer_view', array('a' => $this));
}
$loc->popActiveContext();
}
/**
* Exports the area to content format.
*
* @param \SimpleXMLElement $p
* @param Page $page
"view"
<?php
defined('C5_EXECUTE') or die("Access Denied.");
$this->inc('elements/header.php');
?>
<main id="catalog_template">
<?php
$a = new Area('Product Catalog');
$a->display($c);
?>
</main>
<?php
$this->inc('elements/footer.php');
Concrete\Core\Page\Page {#1551}
ob_end_clean();
return $innerContent;
}
/**
* Render the file set to $this->template
* @param $scopeItems
* @return string
*/
protected function renderTemplate($scopeItems, $innerContent)
{
// Extract the items into the current scope
extract($scopeItems);
ob_start();
// Fire a `before` event
$this->onBeforeGetContents();
include $this->template;
// Fire an `after` event
$this->onAfterGetContents();
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
public function finishRender($contents)
{
$event = new \Symfony\Component\EventDispatcher\GenericEvent();
$event->setArgument('view', $this);
Events::dispatch('on_render_complete', $event);
return $contents;
}
/**
* Function responsible for outputting header items.
"/home/spoonandwhisk/public_html/application/themes/spoon/catalog_template.php"
protected function onBeforeGetContents()
{
$this->themeObject->registerAssets();
$event = new \Symfony\Component\EventDispatcher\GenericEvent();
$event->setArgument('view', $this);
Events::dispatch('on_before_render', $event);
}
public function renderViewContents($scopeItems)
{
$contents = '';
// Render the main view file
if ($this->innerContentFile) {
$contents = $this->renderInnerContents($scopeItems);
}
// Render the template around it
if (file_exists($this->template)) {
$contents = $this->renderTemplate($scopeItems, $contents);
}
return $contents;
}
/**
* Render the file set to $this->innerContentFile
* @param $scopeItems
* @return string
*/
protected function renderInnerContents($scopeItems)
{
// Extract the items into the current scope
extract($scopeItems);
ob_start();
include $this->innerContentFile;
$innerContent = ob_get_contents();
ob_end_clean();
$helpers = $this->controller->getHelperObjects();
$return = array_merge($this->scopeItems, $sets, $helpers);
} else {
$return = $this->scopeItems;
}
$return['view'] = $this;
$return['controller'] = $this->controller;
return $return;
}
public function render($state = false)
{
if ($this instanceof View) {
$this->setRequestInstance($this);
}
$this->start($state);
$this->setupRender();
$this->startRender();
$scopeItems = $this->getScopeItems();
$contents = $this->renderViewContents($scopeItems);
$contents = $this->postProcessViewContents($contents);
$response = $this->finishRender($contents);
if ($this instanceof View) {
$this->revertRequestInstance();
}
return $response;
}
public function renderViewContents($scopeItems)
{
if (file_exists($this->template)) {
extract($scopeItems);
ob_start();
$this->onBeforeGetContents();
include $this->template;
$this->onAfterGetContents();
$contents = ob_get_contents();
ob_end_clean();
$cnt = $this->app->make(PageForbidden::class);
$this->controller($cnt, $code, $headers);
}
/**
* {@inheritdoc}
*/
public function redirect($to, $code = Response::HTTP_MOVED_PERMANENTLY, $headers = [])
{
return RedirectResponse::create($to, $code, $headers);
}
/**
* {@inheritdoc}
*/
public function view(View $view, $code = Response::HTTP_OK, $headers = [])
{
$this->localization->pushActiveContext(Localization::CONTEXT_SITE);
try {
$contents = $view->render();
return $this->create($contents, $code, $headers);
} finally {
$this->localization->popActiveContext();
}
}
/**
* {@inheritdoc}
*/
public function controller(Controller $controller, $code = Response::HTTP_OK, $headers = [])
{
$this->localization->pushActiveContext(Localization::CONTEXT_SITE);
try {
$request = $this->request;
if ($response = $controller->on_start()) {
return $response;
}
if ($response = $controller->runAction('view')) {
return $response;
}
}
$view = $controller->getViewObject();
// Mobile theme
if ($this->config->get('concrete.misc.mobile_theme_id') > 0) {
$md = $this->app->make(MobileDetect::class);
if ($md->isMobile()) {
$mobileTheme = Theme::getByID($this->app->config->get('concrete.misc.mobile_theme_id'));
if ($mobileTheme instanceof Theme) {
$view->setViewTheme($mobileTheme);
$controller->setTheme($mobileTheme);
}
}
}
return $this->view($view, $code, $headers);
} finally {
$this->localization->popActiveContext();
}
}
/**
* {@inheritdoc}
*/
public function collection(Collection $collection, $code = Response::HTTP_OK, $headers = [])
{
if (!$this->app) {
throw new \RuntimeException('Cannot resolve collections without a reference to the application');
}
$dl = $this->app->make('multilingual/detector');
$request = $this->request;
if ($collection->isError() && $collection->getError() == COLLECTION_NOT_FOUND) {
if ($response = $this->collectionNotFound($collection, $request, $headers)) {
return $response;
Concrete\Core\Page\View\PageView {#1625}
200
[]
$this->app['director']->dispatch('on_page_view', $pe);
// Core menu items
$item = new RelationListItem();
$menu = $this->app->make('helper/concrete/ui/menu');
$menu->addMenuItem($item);
// Running processes item
$item = new RunningProcessesItem();
$menu->addMenuItem($item);
// Multisite item
$item = new SiteListItem();
$menu->addMenuItem($item);
$controller = $collection->getPageController();
// we update the current page with the one bound to this controller.
$collection->setController($controller);
return $this->controller($controller);
}
private function collectionNotFound(Collection $collection, Request $request, array $headers)
{
// if we don't have a path and we're doing cID, then this automatically fires a 404.
if (!$request->getPath() && $request->get('cID')) {
return $this->notFound('', Response::HTTP_NOT_FOUND, $headers);
}
// let's test to see if this is, in fact, the home page,
// and we're routing arguments onto it (which is screwing up the path.)
$home = Page::getByID(Page::getHomePageID());
$request->setCurrentPage($home);
$homeController = $home->getPageController();
$homeController->setupRequestActionAndParameters($request);
$response = $homeController->validateRequest();
if ($response instanceof \Symfony\Component\HttpFoundation\Response) {
return $response;
} elseif ($response === true) {
Concrete\Core\Page\Controller\PageController {#1620}
new DispatcherDelegate($dispatcher)
);
$stack->setApplication($this->app);
foreach($route->getMiddlewares() as $middleware) {
if (is_string($middleware->getMiddleware())) {
$inflatedMiddleware = $this->app->make($middleware->getMiddleware());
} else {
$inflatedMiddleware = $middleware->getMiddleware();
}
$stack = $stack->withMiddleware(
$inflatedMiddleware,
$middleware->getPriority()
);
}
return $stack->process($request);
} catch (ResourceNotFoundException $e) {
} catch (MethodNotAllowedException $e) {
}
$c = \Page::getFromRequest($request);
$response = $this->app->make(ResponseFactoryInterface::class)->collection($c);
return $response;
}
/**
* @param \Symfony\Component\Routing\RouteCollection $routes
* @param string $path
*
* @return \Symfony\Component\Routing\RouteCollection
*/
private function filterRouteCollectionForPath(RouteCollection $routes, $path)
{
$result = new RouteCollection();
foreach ($routes->getResources() as $resource) {
$result->addResource($resource);
}
foreach ($routes->all() as $name => $route) {
$routePath = $route->getPath();
$p = strpos($routePath, '{');
$skip = false;
Concrete\Core\Page\Page {#1551}
/**
* @param \Symfony\Component\HttpFoundation\Request $request
*
* @return SymfonyResponse
*/
public function dispatch(SymfonyRequest $request)
{
$path = rawurldecode($request->getPathInfo());
if (substr($path, 0, 3) == '../' || substr($path, -3) == '/..' || strpos($path, '/../') ||
substr($path, 0, 3) == '..\\' || substr($path, -3) == '\\..' || strpos($path, '\\..\\')) {
throw new UserMessageException(t('Invalid path traversal. Please make this request with a valid HTTP client.'));
}
$response = null;
if ($this->app->isInstalled()) {
$response = $this->getEarlyDispatchResponse();
}
if ($response === null) {
$response = $this->handleDispatch($request);
}
return $response;
}
private function getEarlyDispatchResponse()
{
$validator = $this->app->make(SessionValidator::class);
if ($validator->hasActiveSession()) {
$session = $this->app['session'];
if (!$session->has('uID')) {
User::verifyAuthTypeCookie();
}
// User may have been logged in, so lets check status again.
if ($session->has('uID') && $session->get('uID') > 0 && $response = $this->validateUser()) {
return $response;
}
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
private $dispatcher;
/**
* DispatcherFrame constructor.
* @param \Concrete\Core\Http\DispatcherInterface $dispatcher
*/
public function __construct(DispatcherInterface $dispatcher)
{
$this->dispatcher = $dispatcher;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
return $this->dispatcher->dispatch($request);
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
private $config;
/**
* @var \Concrete\Core\Utility\Service\Validation\Strings
*/
private $stringValidator;
public function __construct(Repository $config, Strings $stringValidator)
{
$this->config = $config;
$this->stringValidator = $stringValidator;
}
/**
* @param \Concrete\Core\Http\Middleware\DelegateInterface $frame
* @return Response
*/
public function process(Request $request, DelegateInterface $frame)
{
$response = $frame->next($request);
if ($response->headers->has('X-Frame-Options') === false) {
$x_frame_options = $this->config->get('concrete.security.misc.x_frame_options');
if ($this->stringValidator->notempty($x_frame_options)) {
$response->headers->set('X-Frame-Options', $x_frame_options);
}
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
public function __construct(
MiddlewareInterface $middleware,
DelegateInterface $nextDelegate,
HttpFoundationFactory $foundationFactory
) {
$this->middleware = $middleware;
$this->nextDelegate = $nextDelegate;
$this->foundationFactory = $foundationFactory;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
$response = $this->middleware->process($request, $this->nextDelegate);
// Negotiate PSR7 responses
if ($response instanceof ResponseInterface) {
return $this->foundationFactory->createResponse($response);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
Concrete\Core\Http\Middleware\DispatcherDelegate {#1526}
/**
* @var Strings
*/
private $stringValidator;
public function __construct(Repository $config, Strings $stringValidator)
{
$this->config = $config;
$this->stringValidator = $stringValidator;
}
/**
* @param Request $request
* @param DelegateInterface $frame
*
* @return Response
*/
public function process(Request $request, DelegateInterface $frame)
{
$response = $frame->next($request);
if ($response->headers->has('Strict-Transport-Security') === false) {
$x_frame_options = $this->config->get('concrete.security.misc.strict_transport_security');
if ($this->stringValidator->notempty($x_frame_options)) {
$response->headers->set('Strict-Transport-Security', $x_frame_options);
}
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
public function __construct(
MiddlewareInterface $middleware,
DelegateInterface $nextDelegate,
HttpFoundationFactory $foundationFactory
) {
$this->middleware = $middleware;
$this->nextDelegate = $nextDelegate;
$this->foundationFactory = $foundationFactory;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
$response = $this->middleware->process($request, $this->nextDelegate);
// Negotiate PSR7 responses
if ($response instanceof ResponseInterface) {
return $this->foundationFactory->createResponse($response);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
Concrete\Core\Http\Middleware\MiddlewareDelegate {#1533}
/**
* @var Strings
*/
private $stringValidator;
public function __construct(Repository $config, Strings $stringValidator)
{
$this->config = $config;
$this->stringValidator = $stringValidator;
}
/**
* @param Request $request
* @param DelegateInterface $frame
*
* @return Response
*/
public function process(Request $request, DelegateInterface $frame)
{
$response = $frame->next($request);
if ($response->headers->has('Content-Security-Policy') === false) {
$csp = $this->config->get('concrete.security.misc.content_security_policy');
if ((is_array($csp) && count($csp) > 0) || $this->stringValidator->notempty($csp)) {
$response->headers->set('Content-Security-Policy', $csp);
}
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
public function __construct(
MiddlewareInterface $middleware,
DelegateInterface $nextDelegate,
HttpFoundationFactory $foundationFactory
) {
$this->middleware = $middleware;
$this->nextDelegate = $nextDelegate;
$this->foundationFactory = $foundationFactory;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
$response = $this->middleware->process($request, $this->nextDelegate);
// Negotiate PSR7 responses
if ($response instanceof ResponseInterface) {
return $this->foundationFactory->createResponse($response);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
Concrete\Core\Http\Middleware\MiddlewareDelegate {#1535}
* @var \Concrete\Core\Cookie\ResponseCookieJar
*/
private $responseCookieJar;
/**
* @param \Concrete\Core\Cookie\ResponseCookieJar $responseCookieJar
*/
public function __construct(ResponseCookieJar $responseCookieJar)
{
$this->responseCookieJar = $responseCookieJar;
}
/**
* {@inheritdoc}
*
* @see \Concrete\Core\Http\Middleware\MiddlewareInterface::process()
*/
public function process(Request $request, DelegateInterface $frame)
{
$response = $frame->next($request);
$cleared = $this->responseCookieJar->getClearedCookies();
foreach ($cleared as $cookie) {
$response->headers->clearCookie($cookie, DIR_REL . '/');
}
$cookies = $this->responseCookieJar->getCookies();
foreach ($cookies as $cookie) {
$response->headers->setCookie($cookie);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
public function __construct(
MiddlewareInterface $middleware,
DelegateInterface $nextDelegate,
HttpFoundationFactory $foundationFactory
) {
$this->middleware = $middleware;
$this->nextDelegate = $nextDelegate;
$this->foundationFactory = $foundationFactory;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
$response = $this->middleware->process($request, $this->nextDelegate);
// Negotiate PSR7 responses
if ($response instanceof ResponseInterface) {
return $this->foundationFactory->createResponse($response);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
Concrete\Core\Http\Middleware\MiddlewareDelegate {#1537}
* Middleware for applying state changes to the application
* @package Concrete\Core\Http\Middleware
*/
class ApplicationMiddleware implements MiddlewareInterface, ApplicationAwareInterface
{
use ApplicationAwareTrait;
/**
* Apply the request instance to the request singleton
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \Concrete\Core\Http\Middleware\DelegateInterface $frame
* @return \Symfony\Component\HttpFoundation\Response
*/
public function process(Request $request, DelegateInterface $frame)
{
\Concrete\Core\Http\Request::setInstance($request);
$this->app->instance('Concrete\Core\Http\Request', $request);
return $frame->next($request);
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
public function __construct(
MiddlewareInterface $middleware,
DelegateInterface $nextDelegate,
HttpFoundationFactory $foundationFactory
) {
$this->middleware = $middleware;
$this->nextDelegate = $nextDelegate;
$this->foundationFactory = $foundationFactory;
}
/**
* Dispatch the next available middleware and return the response.
*
* @param Request $request
* @return Response
*/
public function next(Request $request)
{
$response = $this->middleware->process($request, $this->nextDelegate);
// Negotiate PSR7 responses
if ($response instanceof ResponseInterface) {
return $this->foundationFactory->createResponse($response);
}
return $response;
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
Concrete\Core\Http\Middleware\MiddlewareDelegate {#1539}
public function withoutMiddleware(MiddlewareInterface $middleware)
{
$stack = clone $this;
$stack->middleware = array_map(function($priorityGroup) use ($middleware) {
return array_map(function($stackMiddleware) use ($middleware) {
return $middleware === $stackMiddleware ? null : $stackMiddleware;
}, $priorityGroup);
}, $stack->middleware);
return $stack;
}
/**
* @inheritdoc
*/
public function process(Request $request)
{
$stack = $this->getStack();
return $stack->next($request);
}
/**
* Reduce middleware into a stack of functions that each call the next
* @return callable
*/
private function getStack()
{
$processed = [];
foreach ($this->middlewareGenerator() as $middleware) {
$processed[] = $middleware;
}
$middleware = array_reverse($processed);
$stack = array_reduce($middleware, $this->getZipper(), $this->dispatcher);
return $stack;
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
*/
public function removeMiddleware(MiddlewareInterface $middleware)
{
$this->stack = $this->stack->withoutMiddleware($middleware);
return $this;
}
/**
* Take a request and pass it through middleware, then return the response
* @param SymfonyRequest $request
* @return SymfonyResponse
*/
public function handleRequest(SymfonyRequest $request)
{
$stack = $this->stack;
if ($stack instanceof MiddlewareStack) {
$stack = $stack->withDispatcher($this->app->make(DispatcherDelegate::class, ['dispatcher' => $this->dispatcher]));
}
return $stack->process($request);
}
}
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
// Register legacy config values
'registerLegacyConfigValues',
// Handle loading permission keys
'handlePermissionKeys',
// Handle eventing
'handleEventing',
]);
} else {
$this->initializeSystemTimezone();
$this->preloadClassAliases();
}
// Create the request to use
$request = $this->createRequest();
if (!$response) {
$response = $this->server->handleRequest($request);
}
// Prepare and return the response
return $response->prepare($request);
}
/**
* Define the base url if not defined
* This will define `BASE_URL` to whatever is resolved from the resolver.
*
* @deprecated In a future major version this will be part of HTTP middleware
*
* @return Response|void Returns a response if an error occurs
*/
protected function initializeLegacyURLDefinitions()
{
if (!defined('BASE_URL')) {
$resolver = $this->getUrlResolver();
try {
Concrete\Core\Http\Request {#1364 #hasCustomRequestUser: null #customRequestUser: null #customRequestDateTime: null #c: Concrete\Core\Page\Page {#1551} +attributes: Symfony\Component\HttpFoundation\ParameterBag {#1518} +request: Symfony\Component\HttpFoundation\InputBag {#1281} +query: Symfony\Component\HttpFoundation\InputBag {#1365} +server: Symfony\Component\HttpFoundation\ServerBag {#1521} +files: Symfony\Component\HttpFoundation\FileBag {#1520} +cookies: Symfony\Component\HttpFoundation\InputBag {#1519} +headers: Symfony\Component\HttpFoundation\HeaderBag {#1522} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/shop/catalog/Tools/Spices/223" #requestUri: "/shop/catalog/Tools/Spices/223" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null : "" : "html" }
$this->status = self::STATUS_ACTIVE;
}
}
/**
* Begin the runtime.
*/
public function run()
{
switch ($this->status) {
case self::STATUS_ENDED:
// We've already ended, lets just return
return;
case self::STATUS_INACTIVE:
throw new \RuntimeException('Runtime has not yet booted.');
}
$runner = $this->getRunner();
$response = $runner->run();
if ($response) {
$this->sendResponse($response);
}
return $response;
}
/**
* The method that handles properly sending a response.
*
* @param \Symfony\Component\HttpFoundation\Response $response
*/
protected function sendResponse(Response $response)
{
$response->send();
// Set the status to ended
$this->status = self::STATUS_ENDED;
}
* Include all autoloaders.
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/autoload.php';
/*
* ----------------------------------------------------------------------------
* Begin Concrete startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
* Run the runtime.
* ----------------------------------------------------------------------------
*/
$runtime = $app->getRuntime();
if ($response = $runtime->run()) {
/*
* ------------------------------------------------------------------------
* Shut it down.
* ------------------------------------------------------------------------
*/
$app->shutdown();
} else {
return $app;
}
defined('DIR_CONFIG_SITE') or define('DIR_CONFIG_SITE', DIR_APPLICATION . '/config');
/*
* ----------------------------------------------------------------------------
* Now that we've had the opportunity to load our config file, we know if we
* have a DIRNAME_CORE_UPDATED constant, which lives in that file, and which
* points to another core. If we have this constant, we exit this file
* immeditely and proceed into the updated core.
* ----------------------------------------------------------------------------
*/
if (!defined('APP_UPDATED_PASSTHRU')) {
$update_file = DIR_CONFIG_SITE . '/update.php';
if (file_exists($update_file)) {
$updates = (array) include $update_file;
if (isset($updates['core'])) {
define('APP_UPDATED_PASSTHRU', true);
define('DIRNAME_APP_UPDATED', $updates['core']);
if (is_dir(DIR_BASE . '/' . DIRNAME_UPDATES . '/' . DIRNAME_APP_UPDATED)) {
require DIR_BASE . '/' . DIRNAME_UPDATES . '/' . DIRNAME_APP_UPDATED . '/' . DIRNAME_CORE . '/' . 'dispatcher.php';
} elseif (file_exists(DIRNAME_UPDATES . '/' . DIRNAME_APP_UPDATED . '/' . DIRNAME_CORE . '/' . 'dispatcher.php')) {
require DIRNAME_UPDATES . '/' . DIRNAME_APP_UPDATED . '/' . DIRNAME_CORE . '/' . 'dispatcher.php';
} else {
die(sprintf('Invalid "%s" defined. Please remove it from %s.', 'update.core', $update_file));
}
exit;
}
}
unset($update_file);
define('APP_UPDATED_PASSTHRU', false);
}
if (!defined('DIRNAME_APP_UPDATED') && isset($updates['core'])) {
define('DIRNAME_APP_UPDATED', $updates['core']);
}
/*
* ----------------------------------------------------------------------------
* ## If we're still here, we're proceeding through this concrete directory,
* and it's time to load the rest of our hard-coded configuration options –
"/home/spoonandwhisk/public_html/updates/concrete-cms-9.1.3_remote_updater/concrete/dispatcher.php"
<?php
if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50509) {
die("concrete5 requires PHP 5.5.9+ to run.\nYou are running PHP " . PHP_VERSION . "\n");
}
/*
* ----------------------------------------------------------------------------
* Set required constants, including directory names, attempt to include site configuration file with database
* information, attempt to determine if we ought to skip to an updated core, etc...
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/configure.php';
/*
* ----------------------------------------------------------------------------
* Make sure you cannot call dispatcher.php directly.
* ----------------------------------------------------------------------------
*/
if (basename($_SERVER['PHP_SELF']) === DISPATCHER_FILENAME_CORE) {
die('Access Denied.');
}
/*
* ----------------------------------------------------------------------------
* Include all autoloaders.
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/autoload.php';
/*
* ----------------------------------------------------------------------------
* Begin concrete5 startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
"/home/spoonandwhisk/public_html/concrete/bootstrap/configure.php"
<?php
require 'concrete/dispatcher.php';
"/home/spoonandwhisk/public_html/concrete/dispatcher.php"
Key | Value |
Version | "9.1.3"
|
Installed Version | "9.1.3"
|
Database Version | "20220908074900"
|
Key | Value |
Version | "7.4.33"
|
Extensions | array:52 [ "Core" => "7.4.33" "date" => "7.4.33" "libxml" => "7.4.33" "openssl" => "7.4.33" "pcre" => "7.4.33" "zlib" => "7.4.33" "filter" => "7.4.33" "hash" => "7.4.33" "pcntl" => "7.4.33" "Reflection" => "7.4.33" "SPL" => "7.4.33" "session" => "7.4.33" "standard" => "7.4.33" "cgi-fcgi" => "7.4.33" "bcmath" => "7.4.33" "calendar" => "7.4.33" "ctype" => "7.4.33" "curl" => "7.4.33" "dom" => "20031129" "enchant" => "7.4.33" "mbstring" => "7.4.33" "fileinfo" => "7.4.33" "ftp" => "7.4.33" "gd" => "7.4.33" "gettext" => "7.4.33" "gmp" => "7.4.33" "iconv" => "7.4.33" "imap" => "7.4.33" "intl" => "7.4.33" "json" => "7.4.33" "exif" => "7.4.33" "mysqlnd" => "mysqlnd 7.4.33" "PDO" => "7.4.33" "Phar" => "7.4.33" "posix" => "7.4.33" "pspell" => "7.4.33" "SimpleXML" => "7.4.33" "soap" => "7.4.33" "sockets" => "7.4.33" "sqlite3" => "7.4.33" "tokenizer" => "7.4.33" "xml" => "7.4.33" "xmlwriter" => "7.4.33" "xsl" => "7.4.33" "zip" => "1.15.6" "mysqli" => "7.4.33" "pdo_mysql" => "7.4.33" "pdo_sqlite" => "7.4.33" "xmlreader" => "7.4.33" "xmlrpc" => "7.4.33" "ionCube Loader" => "10.4.5" "Zend OPcache" => "7.4.33" ] |
Key | Value |
concrete | array:56 [ "version" => "9.1.3" "version_installed" => "9.1.3" "version_db" => "20220908074900" "installed" => true "locale" => "en_US" "charset" => "UTF-8" "charset_bom" => "" "maintenance_mode" => false "debug" => array:4 [ "display_errors" => true "detail" => "debug" "error_reporting" => null "hide_keys" => array:5 [ "_GET" => [] "_POST" => [] "_FILES" => [] "_SESSION" => [] "config" => array:9 [ 0 => "***********************" 1 => "***********************************" 2 => "******************************" 3 => "*********************************" 4 => "**************************************" 5 => "********************************************" 6 => "********************************************" 7 => "************************" 8 => "************" ] ] ] "proxy" => array:4 [ "host" => null "port" => null "user" => null "password" => "***" ] "upload" => array:4 [ "extensions" => "*.csv;*.flv;*.jpg;*.gif;*.jpeg;*.ico;*.docx;*.xla;*.png;*.psd;*.swf;*.doc;*.txt;*.xls;*.xlsx;*.csv;*.pdf;*.tiff;*.rtf;*.m4a;*.mov;*.wmv;*.mpeg;*.mpg;*.wav;*.3gp;*.avi;*.m4v;*.mp4;*.mp3;*.qt;*.ppt;*.pptx;*.kml;*.xml;*.svg;*.webm;*.ogg;*.ogv" "extensions_denylist" => "*.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi" "parallel" => 4 "chunking" => array:2 [ "enabled" => false "chunkSize" => null ] ] "export" => array:1 [ "csv" => array:2 [ "include_bom" => false "datetime_format" => "ATOM" ] ] "interface" => array:1 [ "panel" => array:1 [ "page_relations" => false ] ] "mail" => array:2 [ "method" => "PHP_MAIL" "methods" => array:1 [ "smtp" => array:7 [ "server" => "" "port" => "" "username" => "" "password" => "" "encryption" => "" "messages_per_connection" => null "helo_domain" => "localhost" ] ] ] "cache" => array:17 [ "enabled" => true "lifetime" => 21600 "overrides" => false "blocks" => false "assets" => false "theme_css" => false "pages" => "0" "doctrine_dev_mode" => false "full_page_lifetime" => "default" "full_page_lifetime_value" => null "full_contents_assets_hash" => false "directory" => "/home/spoonandwhisk/public_html/application/files/cache" "directory_relative" => null "page" => array:2 [ "directory" => "/home/spoonandwhisk/public_html/application/files/cache/pages" "adapter" => "file" ] "levels" => array:3 [ "overrides" => array:2 [ "drivers" => array:3 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "core_filesystem" => array:2 [ "class" => "Concrete\Core\Cache\Driver\FileSystemStashDriver" "options" => array:3 [ "path" => "/home/spoonandwhisk/public_html/application/files/cache/overrides" "dirPermissions" => 493 "filePermissions" => 420 ] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_overrides" "database" => 0 ] ] ] "preferred_driver" => "core_filesystem" ] "expensive" => array:2 [ "drivers" => array:3 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "core_filesystem" => array:2 [ "class" => "Concrete\Core\Cache\Driver\FileSystemStashDriver" "options" => array:3 [ "path" => "/home/spoonandwhisk/public_html/application/files/cache/expensive" "dirPermissions" => 493 "filePermissions" => 420 ] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_expensive" "database" => 0 ] ] ] "preferred_driver" => "core_filesystem" ] "object" => array:2 [ "drivers" => array:2 [ "core_ephemeral" => array:2 [ "class" => "\Stash\Driver\Ephemeral" "options" => [] ] "redis" => array:2 [ "class" => "Concrete\Core\Cache\Driver\RedisStashDriver" "options" => array:2 [ "prefix" => "concrete_object" "database" => 0 ] ] ] "preferred_driver" => "core_ephemeral" ] ] "clear" => array:1 [ "thumbnails" => true ] "last_cleared" => 1677330103 ] "design" => array:2 [ "enable_custom" => true "enable_layouts" => true ] "processes" => array:3 [ "logging" => array:2 [ "method" => "none" "file" => array:1 [ "directory" => "" ] ] "scheduler" => array:1 [ "enable" => false ] "delete_threshold" => 7 ] "messenger" => array:6 [ "default_bus" => "default" "buses" => array:1 [ "default" => array:2 [ "default_middleware" => true "middleware" => [] ] ] "routing" => array:1 [ "Concrete\Core\Foundation\Command\AsyncCommandInterface" => array:1 [ 0 => "async" ] ] "transports" => array:2 [ 0 => "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultAsyncTransport" 1 => "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultSyncTransport" ] "consume" => array:1 [ "method" => "app" ] "polling_batch" => array:5 [ "default" => 10 "rescan_file" => 5 "delete_page" => 100 "delete_page_forever" => 100 "copy_page" => 10 ] ] "events" => array:1 [ "broadcast" => array:1 [ "driver" => "" ] ] "log" => array:6 [ "emails" => true "errors" => true "spam" => false "api" => false "enable_dashboard_report" => true "configuration" => array:3 [ "mode" => "simple" "simple" => array:3 [ "core_logging_level" => "NOTICE" "handler" => "database" "file" => array:1 [ "file" => "" ] ] "advanced" => array:1 [ "configuration" => [] ] ] ] "jobs" => array:1 [ "enable_scheduling" => true ] "filesystem" => array:2 [ "temp_directory" => null "permissions" => array:2 [ "file" => 420 "directory" => 493 ] ] "email" => array:7 [ "enabled" => true "default" => array:2 [ "address" => "********************************" "name" => "" ] "form_block" => array:1 [ "address" => "***" ] "forgot_password" => array:2 [ "address" => "***" "name" => null ] "register_notification" => array:2 [ "address" => null "name" => null ] "validate_registration" => array:2 [ "address" => "***" "name" => null ] "workflow_notification" => array:2 [ "address" => "***" "name" => null ] ] "form" => array:1 [ "store_form_submissions" => "auto" ] "marketplace" => array:6 [ "enabled" => true "request_timeout" => 30 "token" => null "site_token" => null "intelligent_search" => true "log_requests" => false ] "external" => array:2 [ "intelligent_search_help" => true "news" => true ] "misc" => array:22 [ "user_timezones" => false "package_backup_directory" => "/home/spoonandwhisk/public_html/application/files/trash" "display_package_delete_button" => true "enable_progressive_page_reindex" => true "mobile_theme_id" => 0 "sitemap_approve_immediately" => true "enable_translate_locale_en_us" => false "page_search_index_lifetime" => 259200 "enable_trash_can" => true "default_jpeg_image_compression" => 80 "default_png_image_compression" => 9 "default_thumbnail_format" => "auto" "inplace_image_operations_limit" => 4194304 "basic_thumbnailer_generation_strategy" => "now" "require_version_comments" => false "enable_move_blocktypes_across_sets" => false "generator_tag_display_in_header" => true "login_redirect" => "HOMEPAGE" "access_entity_updated" => 1649358238 "login_redirect_cid" => 0 "do_page_reindex_check" => false "latest_version" => "9.1.3" ] "theme" => array:2 [ "compress_preprocessor_output" => false "generate_less_sourcemap" => false ] "updates" => array:6 [ "enable_auto_update_packages" => false "enable_permissions_protection" => true "check_threshold" => 172800 "services" => array:2 [ "get_available_updates" => "https://marketplace.concretecms.com/tools/update_core" "inspect_update" => "https://marketplace.concretecms.com/tools/inspect_update" ] "skip_core" => false "skip_packages" => [] ] "paths" => array:2 [ "trash" => "/!trash" "drafts" => "/!drafts" ] "icons" => array:5 [ "page_template" => array:2 [ "width" => 120 "height" => 90 ] "theme_thumbnail" => array:2 [ "width" => 120 "height" => 90 ] "file_manager_listing" => array:3 [ "handle" => "file_manager_listing" "width" => 120 "height" => 120 ] "file_manager_detail" => array:3 [ "handle" => "file_manager_detail" "width" => 500 "height" => 500 ] "user_avatar" => array:3 [ "width" => 80 "height" => 80 "default" => "/updates/concrete-cms-9.1.3_remote_updater/concrete/images/avatar_none.png" ] ] "file_manager" => array:6 [ "images" => array:6 [ "use_exif_data_to_rotate_images" => false "manipulation_library" => "gd" "create_high_dpi_thumbnails" => true "preview_image_size" => "small" "preview_image_popover" => true "svg_sanitization" => array:3 [ "action" => "sanitize" "allowed_tags" => "" "allowed_attributes" => "" ] ] "items_per_page_options" => array:5 [ 0 => 10 1 => 25 2 => 50 3 => 100 4 => 250 ] "results" => 50 "restrict_max_width" => null "restrict_max_height" => null "dont_resize_mimetypes" => "image/gif" ] "search_users" => array:1 [ "results" => 10 ] "sitemap_xml" => array:3 [ "file" => "sitemap.xml" "frequency" => "weekly" "priority" => 0.5 ] "accessibility" => array:3 [ "toolbar_titles" => false "toolbar_large_font" => false "toolbar_tooltips" => true ] "i18n" => array:3 [ "choose_language_login" => false "auto_install_package_languages" => true "community_translation" => array:5 [ "entry_point" => "https://translate.concretecms.org/api" "api_token" => "" "progress_limit" => 60 "cache_lifetime" => 3600 "package_url" => "https://translate.concretecms.org/translate/package" ] ] "urls" => array:11 [ "concrete" => "http://marketplace.concretecms.com" "concrete_secure" => "https://marketplace.concretecms.com" "concrete_community" => "https://community.concretecms.com" "background_feed" => "//backgroundimages.concretecms.com/wallpaper" "privacy_policy" => "//www.concretecms.com/about/legal/privacy-policy" "background_feed_secure" => "https://backgroundimages.concrete5.org/wallpaper" "background_info" => "http://backgroundimages.concretecms.com/get_image_data.php" "videos" => "https://www.youtube.com/user/concrete5cms/videos" "activity_slots" => "https://marketing.concretecms.com/ccm/marketing/activity_slots" "help" => array:5 [ "developer" => "https://documentation.concretecms.org/developers" "user" => "https://documentation.concretecms.org/user-guide" "forum" => "https://forums.concretecms.org" "support" => "https://www.concretecms.com/support/hiring-help" "remote_search" => "https://documentation.concretecms.org/ccm/documentation/remote_search" ] "paths" => array:2 [ "site_page" => "/private/sites" "marketplace" => array:10 [ "projects" => "/profile/projects/" "connect" => "/marketplace/connect" "connect_success" => "/marketplace/connect/-/connected" "connect_validate" => "/marketplace/connect/-/validate" "connect_new_token" => "/marketplace/connect/-/generate_token" "checkout" => "/cart/-/add" "purchases" => "/marketplace/connect/-/get_available_licenses" "item_information" => "/marketplace/connect/-/get_item_information" "item_free_license" => "/marketplace/connect/-/enable_free_license" "remote_item_list" => "/marketplace/" ] ] ] "white_label" => array:4 [ "logo" => false "name" => false "background_image" => "feed" "background_url" => null ] "session" => array:9 [ "name" => "CONCRETE" "handler" => "file" "redis" => array:1 [ "database" => 1 ] "save_path" => null "max_lifetime" => 7200 "gc_probability" => 1 "gc_divisor" => 100 "cookie" => array:7 [ "cookie_path" => false "cookie_lifetime" => 0 "cookie_domain" => false "cookie_secure" => false "cookie_httponly" => true "cookie_raw" => false "cookie_samesite" => null ] "remember_me" => array:1 [ "lifetime" => 1209600 ] ] "user" => array:8 [ "registration" => array:10 [ "enabled" => false "type" => "disabled" "captcha" => false "email_registration" => true "display_username_field" => true "display_confirm_password_field" => true "validate_email" => false "validate_email_threshold" => 5184000 "approval" => false "notification" => false ] "edit_profile" => array:1 [ "display_username_field" => true ] "group" => array:1 [ "badge" => array:1 [ "default_point_value" => 50 ] ] "username" => array:3 [ "maximum" => 64 "minimum" => 3 "allowed_characters" => array:4 [ "boundary" => "A-Za-z0-9" "middle" => "A-Za-z0-9_\." "requirement_string" => "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)." "error_string" => "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)." ] ] "password" => array:12 [ "maximum" => 128 "minimum" => 8 "required_special_characters" => 1 "required_lower_case" => 1 "required_upper_case" => 1 "reuse" => 3 "custom_regex" => [] "hash_algorithm" => "2y" "hash_options" => [] "hash_portable" => false "hash_cost_log2" => 12 "legacy_salt" => "" ] "email" => array:2 [ "test_mx_record" => false "strict" => true ] "private_messages" => array:2 [ "throttle_max" => 20 "throttle_max_timespan" => 15 ] "deactivation" => array:4 [ "enable_login_threshold_deactivation" => false "login" => array:1 [ "threshold" => 120 ] "authentication_failure" => array:3 [ "enabled" => false "amount" => 5 "duration" => 300 ] "message" => "This user is inactive. Please contact us regarding this account." ] ] "spam" => array:2 [ "allowlist_group" => 0 "notify_email" => "" ] "calendar" => array:1 [ "colors" => array:2 [ "text" => "#ffffff" "background" => "#3A87AD" ] ] "security" => array:2 [ "session" => array:3 [ "invalidate_on_user_agent_mismatch" => true "invalidate_on_ip_mismatch" => true "invalidate_inactive_users" => array:2 [ "enabled" => true "time" => 1200 ] ] "misc" => array:3 [ "content_security_policy" => false "strict_transport_security" => false "x_frame_options" => "SAMEORIGIN" ] ] "permissions" => array:2 [ "forward_to_login" => true "model" => "simple" ] "seo" => array:13 [ "exclude_words" => "a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with" "url_rewriting" => true "url_rewriting_all" => false "redirect_to_canonical_url" => 0 "canonical_url" => null "canonical_url_alternative" => null "trailing_slash" => false "title_format" => "%2$s :: %1$s" "title_segment_separator" => " :: " "page_path_separator" => "-" "group_name_separator" => " / " "segment_max_length" => 128 "paging_string" => "ccm_paging_p" ] "statistics" => array:1 [ "track_downloads" => true ] "limits" => array:4 [ "sitemap_pages" => 100 "page_search_index_batch" => 200 "job_queue_batch" => 10 "style_customizer" => array:2 [ "size_min" => -50 "size_max" => 200 ] ] "page" => array:1 [ "search" => array:1 [ "always_reindex" => false ] ] "editor" => array:1 [ "plugins" => array:1 [ "selected" => [] ] ] "composer" => array:1 [ "idle_timeout" => 1 ] "api" => array:2 [ "enabled" => false "grant_types" => array:4 [ "client_credentials" => true "authorization_code" => true "password_credentials" => false "refresh_token" => true ] ] "notification" => array:2 [ "server_sent_events" => false "mercure" => array:1 [ "jwt" => array:2 [ "publisher" => array:1 [ "expires_at" => "+30 minutes" ] "subscriber" => array:1 [ "expires_at" => "+30 minutes" ] ] ] ] "mutex" => array:2 [ "semaphore" => array:2 [ "priority" => 100 "class" => "Concrete\Core\System\Mutex\SemaphoreMutex" ] "file_lock" => array:2 [ "priority" => 50 "class" => "Concrete\Core\System\Mutex\FileLockMutex" ] ] "social" => array:1 [ "additional_services" => [] ] "version_db_installed" => "20220908074900" "site" => "Spoon & Whisk 2022" ] |
app | array:19 [ "debug" => false "namespace" => "Application" "aliases" => array:69 [ "Area" => "\Concrete\Core\Area\Area" "Asset" => "\Concrete\Core\Asset\Asset" "AssetList" => "\Concrete\Core\Asset\AssetList" "AttributeSet" => "\Concrete\Core\Attribute\Set" "AuthenticationType" => "\Concrete\Core\Authentication\AuthenticationType" "Block" => "\Concrete\Core\Block\Block" "BlockType" => "\Concrete\Core\Block\BlockType\BlockType" "BlockTypeList" => "\Concrete\Core\Block\BlockType\BlockTypeList" "BlockTypeSet" => "\Concrete\Core\Block\BlockType\Set" "Cache" => "\Concrete\Core\Cache\Cache" "Request" => "\Concrete\Core\Http\Request" "CacheLocal" => "\Concrete\Core\Cache\CacheLocal" "Collection" => "\Concrete\Core\Page\Collection\Collection" "CollectionAttributeKey" => "\Concrete\Core\Attribute\Key\CollectionKey" "CollectionVersion" => "\Concrete\Core\Page\Collection\Version\Version" "ConcreteAuthenticationTypeController" => "\Concrete\Authentication\Concrete\Controller" "Controller" => "\Concrete\Core\Controller\Controller" "Conversation" => "\Concrete\Core\Conversation\Conversation" "ConversationEditor" => "\Concrete\Core\Conversation\Editor\Editor" "ConversationFlagType" => "\Concrete\Core\Conversation\FlagType\FlagType" "ConversationMessage" => "\Concrete\Core\Conversation\Message\Message" "ConversationRatingType" => "\Concrete\Core\Conversation\Rating\Type" "Environment" => "\Concrete\Core\Foundation\Environment" "FacebookAuthenticationTypeController" => "\Concrete\Authentication\Facebook\Controller" "File" => "\Concrete\Core\File\File" "FileAttributeKey" => "\Concrete\Core\Attribute\Key\FileKey" "FileImporter" => "\Concrete\Core\File\Importer" "FileList" => "\Concrete\Core\File\FileList" "FilePermissions" => "\Concrete\Core\Legacy\FilePermissions" "FileSet" => "\Concrete\Core\File\Set\Set" "GlobalArea" => "\Concrete\Core\Area\GlobalArea" "Group" => "\Concrete\Core\User\Group\Group" "GroupList" => "\Concrete\Core\User\Group\GroupList" "GroupSet" => "\Concrete\Core\User\Group\GroupSet" "GroupSetList" => "\Concrete\Core\User\Group\GroupSetList" "GroupTree" => "\Concrete\Core\Tree\Type\Group" "GroupTreeNode" => "\Concrete\Core\Tree\Node\Type\Group" "Job" => "\Concrete\Core\Job\Job" "JobSet" => "\Concrete\Core\Job\Set" "Loader" => "\Concrete\Core\Legacy\Loader" "Localization" => "\Concrete\Core\Localization\Localization" "Marketplace" => "\Concrete\Core\Marketplace\Marketplace" "Package" => "\Concrete\Core\Package\Package" "Page" => "\Concrete\Core\Page\Page" "PageCache" => "\Concrete\Core\Cache\Page\PageCache" "PageController" => "\Concrete\Core\Page\Controller\PageController" "PageEditResponse" => "\Concrete\Core\Page\EditResponse" "PageList" => "\Concrete\Core\Page\PageList" "PageTemplate" => "\Concrete\Core\Page\Template" "PageTheme" => "\Concrete\Core\Page\Theme\Theme" "PageType" => "\Concrete\Core\Page\Type\Type" "PermissionAccess" => "\Concrete\Core\Permission\Access\Access" "PermissionKey" => "\Concrete\Core\Permission\Key\Key" "PermissionKeyCategory" => "\Concrete\Core\Permission\Category" "Permissions" => "\Concrete\Core\Permission\Checker" "Redirect" => "\Concrete\Core\Routing\Redirect" "RedirectResponse" => "\Concrete\Core\Routing\RedirectResponse" "Response" => "\Concrete\Core\Http\Response" "Router" => "\Concrete\Core\Routing\Router" "SinglePage" => "\Concrete\Core\Page\Single" "Stack" => "\Concrete\Core\Page\Stack\Stack" "StackList" => "\Concrete\Core\Page\Stack\StackList" "StartingPointPackage" => "\Concrete\Core\Package\StartingPointPackage" "TaskPermission" => "\Concrete\Core\Legacy\TaskPermission" "User" => "\Concrete\Core\User\User" "UserAttributeKey" => "\Concrete\Core\Attribute\Key\UserKey" "UserList" => "\Concrete\Core\User\UserList" "View" => "\Concrete\Core\View\View" "Workflow" => "\Concrete\Core\Workflow\Workflow" ] "providers" => array:59 [ "core_system" => "\Concrete\Core\System\SystemServiceProvider" "core_events" => "\Concrete\Core\Events\EventsServiceProvider" "core_logging" => "\Concrete\Core\Logging\LoggingServiceProvider" "core_router" => "Concrete\Core\Routing\RoutingServiceProvider" "core_database" => "\Concrete\Core\Database\DatabaseServiceProvider" "core_messenger" => "\Concrete\Core\Messenger\MessengerServiceProvider" "core_cache" => "\Concrete\Core\Cache\CacheServiceProvider" "core_file" => "\Concrete\Core\File\FileServiceProvider" "core_encryption" => "\Concrete\Core\Encryption\EncryptionServiceProvider" "core_validation" => "\Concrete\Core\Validation\ValidationServiceProvider" "core_localization" => "\Concrete\Core\Localization\LocalizationServiceProvider" "core_exporter" => "\Concrete\Core\Export\ExportServiceProvider" "core_multilingual" => "\Concrete\Core\Multilingual\MultilingualServiceProvider" "core_feed" => "\Concrete\Core\Feed\FeedServiceProvider" "core_html" => "\Concrete\Core\Html\HtmlServiceProvider" "core_editor" => "\Concrete\Core\Editor\EditorServiceProvider" "core_mail" => "\Concrete\Core\Mail\MailServiceProvider" "core_application" => "\Concrete\Core\Application\ApplicationServiceProvider" "core_utility" => "\Concrete\Core\Utility\UtilityServiceProvider" "core_content_importer" => "\Concrete\Core\Backup\ContentImporter\ContentImporterServiceProvider" "core_manager_grid_framework" => "\Concrete\Core\Page\Theme\GridFramework\ManagerServiceProvider" "core_manager_pagination_view" => "\Concrete\Core\Search\Pagination\View\ManagerServiceProvider" "core_manager_page_type" => "\Concrete\Core\Page\Type\ManagerServiceProvider" "core_manager_layout_preset_provider" => "\Concrete\Core\Area\Layout\Preset\Provider\ManagerServiceProvider" "core_manager_search_fields" => "\Concrete\Core\Search\Field\ManagerServiceProvider" "core_permissions" => "\Concrete\Core\Permission\PermissionServiceProvider" "core_automation" => "\Concrete\Core\Command\Task\ServiceProvider" "core_api" => "Concrete\Core\Api\ApiServiceProvider" "core_form" => "\Concrete\Core\Form\FormServiceProvider" "core_session" => "\Concrete\Core\Session\SessionServiceProvider" "core_cookie" => "\Concrete\Core\Cookie\CookieServiceProvider" "core_http" => "\Concrete\Core\Http\HttpServiceProvider" "core_whoops" => "\Concrete\Core\Error\Provider\WhoopsServiceProvider" "core_element" => "\Concrete\Core\Filesystem\FilesystemServiceProvider" "core_notification" => "\Concrete\Core\Notification\NotificationServiceProvider" "core_mercure" => "\Concrete\Core\Notification\Events\MercureServiceProvider" "core_package" => "\Concrete\Core\Package\PackageServiceProvider" "core_url" => "\Concrete\Core\Url\UrlServiceProvider" "core_devices" => "\Concrete\Core\Device\DeviceServiceProvider" "core_user" => "\Concrete\Core\User\UserServiceProvider" "core_service_manager" => "\Concrete\Core\Service\Manager\ServiceManagerServiceProvider" "core_site" => "\Concrete\Core\Site\ServiceProvider" "core_search" => "Concrete\Core\Search\SearchServiceProvider" "core_geolocator" => "Concrete\Core\Geolocator\GeolocatorServiceProvider" "core_calendar" => "Concrete\Core\Calendar\CalendarServiceProvider" "core_summary" => "\Concrete\Core\Summary\ServiceProvider" "core_boards" => "\Concrete\Core\Board\ServiceProvider" "core_page" => "Concrete\Core\Page\PageServiceProvider" "core_oauth" => "\Concrete\Core\Authentication\Type\OAuth\ServiceProvider" "core_auth_community" => "\Concrete\Core\Authentication\Type\Community\ServiceProvider" "core_auth_google" => "\Concrete\Core\Authentication\Type\Google\ServiceProvider" "core_auth_external_concrete" => "\Concrete\Core\Authentication\Type\ExternalConcrete\ServiceProvider" "core_validator" => "\Concrete\Core\Validator\ValidatorServiceProvider" "core_validator_password" => "\Concrete\Core\Validator\PasswordValidatorServiceProvider" "core_validator_user_name" => "\Concrete\Core\Validator\UserNameValidatorServiceProvider" "core_validator_user_email" => "\Concrete\Core\Validator\UserEmailValidatorServiceProvider" "core_attribute" => "\Concrete\Core\Attribute\AttributeServiceProvider" "core_express" => "\Concrete\Core\Express\ExpressServiceProvider" "core_usagetracker" => "\Concrete\Core\Statistics\UsageTracker\ServiceProvider" ] "facades" => array:15 [ "Core" => "\Concrete\Core\Support\Facade\Application" "Session" => "\Concrete\Core\Support\Facade\Session" "Cookie" => "\Concrete\Core\Support\Facade\Cookie" "Database" => "\Concrete\Core\Support\Facade\Database" "ORM" => "\Concrete\Core\Support\Facade\DatabaseORM" "Events" => "\Concrete\Core\Support\Facade\Events" "Express" => "\Concrete\Core\Support\Facade\Express" "Route" => "\Concrete\Core\Support\Facade\Route" "Site" => "\Concrete\Core\Support\Facade\Site" "UserInfo" => "\Concrete\Core\Support\Facade\UserInfo" "Element" => "\Concrete\Core\Support\Facade\Element" "Log" => "\Concrete\Core\Support\Facade\Log" "Image" => "\Concrete\Core\Support\Facade\Image" "Config" => "\Concrete\Core\Support\Facade\Config" "URL" => "\Concrete\Core\Support\Facade\Url" ] "entity_namespaces" => array:1 [ "calendar" => "Concrete\Core\Entity\Calendar" ] "package_items" => array:37 [ 0 => "antispam_library" 1 => "attribute_key_category" 2 => "attribute_key" 3 => "attribute_set" 4 => "attribute_type" 5 => "authentication_type" 6 => "block_type" 7 => "block_type_set" 8 => "express_entity" 9 => "captcha_library" 10 => "container" 11 => "content_editor_snippet" 12 => "conversation_rating_type" 13 => "geolocator_library" 14 => "group" 15 => "group_set" 16 => "ip_access_control_category" 17 => "job" 18 => "mail_importer" 19 => "permission_access_entity_type" 20 => "permission_key" 21 => "permission_key_category" 22 => "page_template" 23 => "site_type" 24 => "page_type" 25 => "page_type_composer_control_type" 26 => "page_type_publish_target_type" 27 => "single_page" 28 => "storage_location_type" 29 => "theme" 30 => "workflow" 31 => "workflow_progress_category" 32 => "workflow_type" 33 => "external_file_provider_type" 34 => "image_editor" 35 => "task" 36 => "task_set" ] "importer_routines" => array:60 [ 0 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypesRoutine" 1 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGroupsRoutine" 2 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageStructureRoutine" 3 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksStructureRoutine" 4 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypesRoutine" 5 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypeSetsRoutine" 6 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationEditorsRoutine" 7 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationRatingTypesRoutine" 8 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationFlagTypesRoutine" 9 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypePublishTargetTypesRoutine" 10 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeComposerControlTypesRoutine" 11 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBannedWordsRoutine" 12 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSocialLinksRoutine" 13 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportDesignTagsRoutine" 14 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTreesRoutine" 15 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportFileImportantThumbnailTypesRoutine" 16 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardDataSourcesRoutine" 17 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardTemplatesRoutine" 18 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardSlotTemplatesRoutine" 19 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeCategoriesRoutine" 20 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeTypesRoutine" 21 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowTypesRoutine" 22 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowProgressCategoriesRoutine" 23 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowsRoutine" 24 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressEntitiesRoutine" 25 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributesRoutine" 26 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeSetsRoutine" 27 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressAssociationsRoutine" 28 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressFormsRoutine" 29 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressRelationsRoutine" 30 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportThemesRoutine" 31 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionKeyCategoriesRoutine" 32 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionAccessEntityTypesRoutine" 33 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionsRoutine" 34 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTasksRoutine" 35 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTaskSetsRoutine" 36 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobsRoutine" 37 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobSetsRoutine" 38 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTemplatesRoutine" 39 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportContainersRoutine" 40 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryCategoriesRoutine" 41 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryFieldsRoutine" 42 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryTemplatesRoutine" 43 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypesBaseRoutine" 44 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageStructureRoutine" 45 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardsRoutine" 46 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageFeedsRoutine" 47 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeTargetsRoutine" 48 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeDefaultsRoutine" 49 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypeSkeletonsRoutine" 50 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageContentRoutine" 51 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksContentRoutine" 52 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageContentRoutine" 53 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPackagesRoutine" 54 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConfigValuesRoutine" 55 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemCaptchaLibrariesRoutine" 56 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemContentEditorSnippetsRoutine" 57 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGeolocatorsRoutine" 58 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportIpAccessControlCategoriesRoutine" 59 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\PopulateBoardInstancesRoutine" ] "routes" => [] "theme_paths" => array:8 [ "/dashboard" => "dashboard" "/dashboard/*" => "dashboard" "/frontend/install" => "concrete" "/login" => "concrete" "/oauth/authorize" => "concrete" "/register" => "concrete" "/frontend/maintenance_mode" => "concrete" "/upgrade" => "concrete" ] "file_types" => array:39 [ "JPEG" => array:5 [ 0 => "jpg,jpeg,jpe" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "GIF" => array:5 [ 0 => "gif" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "PNG" => array:5 [ 0 => "png" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "WebP" => array:5 [ 0 => "webp" 1 => 1 2 => "image" 3 => "image" 4 => "image" ] "Windows Bitmap" => array:3 [ 0 => "bmp" 1 => 1 2 => "image" ] "TIFF" => array:3 [ 0 => "tif,tiff" 1 => 1 2 => "image" ] "HTML" => array:2 [ 0 => "htm,html" 1 => 5 ] "Flash" => array:3 [ 0 => "swf" 1 => 1 2 => "image" ] "Icon" => array:2 [ 0 => "ico" 1 => 1 ] "SVG" => array:4 [ 0 => "svg" 1 => 1 2 => false 3 => "image" ] "Windows Video" => array:4 [ 0 => "asf,wmv" 1 => 2 2 => false 3 => "video" ] "Quicktime" => array:4 [ 0 => "mov,qt" 1 => 2 2 => false 3 => "video" ] "AVI" => array:4 [ 0 => "avi" 1 => 2 2 => false 3 => "video" ] "3GP" => array:4 [ 0 => "3gp" 1 => 2 2 => false 3 => "video" ] "Plain Text" => array:4 [ 0 => "txt" 1 => 3 2 => false 3 => "text" ] "CSV" => array:4 [ 0 => "csv" 1 => 3 2 => false 3 => "text" ] "XML" => array:2 [ 0 => "xml" 1 => 3 ] "PHP" => array:2 [ 0 => "php" 1 => 3 ] "MS Word" => array:2 [ 0 => "doc,docx" 1 => 5 ] "Stylesheet" => array:2 [ 0 => "css" 1 => 3 ] "MP4" => array:4 [ 0 => "mp4" 1 => 2 2 => false 3 => "video" ] "FLV" => array:3 [ 0 => "flv" 1 => 2 2 => "flv" ] "MP3" => array:4 [ 0 => "mp3" 1 => 4 2 => false 3 => "audio" ] "MP4 Audio" => array:4 [ 0 => "m4a" 1 => 4 2 => false 3 => "audio" ] "Realaudio" => array:2 [ 0 => "ra,ram" 1 => 4 ] "Windows Audio" => array:2 [ 0 => "wma" 1 => 4 ] "Rich Text" => array:2 [ 0 => "rtf" 1 => 5 ] "JavaScript" => array:2 [ 0 => "js" 1 => 3 ] "PDF" => array:2 [ 0 => "pdf" 1 => 5 ] "Photoshop" => array:2 [ 0 => "psd" 1 => 1 ] "MPEG" => array:2 [ 0 => "mpeg,mpg" 1 => 2 ] "MS Excel" => array:2 [ 0 => "xla,xls,xlsx,xlt,xlw" 1 => 5 ] "MS Powerpoint" => array:2 [ 0 => "pps,ppt,pptx,pot" 1 => 5 ] "TAR Archive" => array:2 [ 0 => "tar" 1 => 6 ] "Zip Archive" => array:2 [ 0 => "zip" 1 => 6 ] "GZip Archive" => array:2 [ 0 => "gz,gzip" 1 => 6 ] "OGG" => array:4 [ 0 => "ogg" 1 => 4 2 => false 3 => "audio" ] "OGG Video" => array:4 [ 0 => "ogv" 1 => 2 2 => false 3 => "video" ] "WebM" => array:4 [ 0 => "webm" 1 => 2 2 => false 3 => "video" ] ] "importer_attributes" => array:3 [ "width" => array:3 [ 0 => "Width" 1 => "NUMBER" 2 => false ] "height" => array:3 [ 0 => "Height" 1 => "NUMBER" 2 => false ] "duration" => array:3 [ 0 => "Duration" 1 => "NUMBER" 2 => false ] ] "import_processors" => array:7 [ "ccm.file.exists" => "Concrete\Core\File\Import\Processor\FileExistingValidator" "ccm.file.extension" => "Concrete\Core\File\Import\Processor\FileExtensionValidator" "ccm.image.autorotate" => "Concrete\Core\File\Import\Processor\ImageAutorotator" "ccm.image.svg" => "Concrete\Core\File\Import\Processor\SvgProcessor" "ccm.image.resize" => "Concrete\Core\File\Import\Processor\ImageSizeConstrain" "ccm.image.thumbnails" => "Concrete\Core\File\Import\Processor\ThumbnailGenerator" "ccm.image.exif_data" => "Concrete\Core\File\Import\Processor\ExifDataExtractor" ] "assets" => array:34 [ "jquery" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/jquery.js" 2 => array:3 [ "position" => "H" "minify" => false "combine" => false ] ] ] "vue" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/vue.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "bootstrap" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/bootstrap.js" 2 => array:4 [ "position" => "F" "minify" => false "combine" => false "version" => "5.0.0" ] ] ] "moment" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/moment.js" 2 => array:3 [ "minify" => false "combine" => false "version" => "2.24.0" ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/moment/js" ] ] "ckeditor" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ckeditor/ckeditor.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "ckeditor/concrete" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ckeditor/concrete.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "css" 1 => "css/ckeditor/concrete.css" ] ] "fullcalendar" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/fullcalendar.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "css" 1 => "css/fullcalendar.css" ] ] "font-awesome" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/fontawesome/all.css" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "google-charts" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "https://www.gstatic.com/charts/loader.js" 2 => array:1 [ "local" => false ] ] ] "core/cms" => array:3 [ 0 => array:3 [ 0 => "javascript" 1 => "js/cms.js" 2 => array:2 [ "minify" => false "combine" => false ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/core/js" ] 2 => array:3 [ 0 => "css" 1 => "css/cms.css" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "feature/accordions/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/accordions/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/accordions/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/account/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/account/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/account/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/profile/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/profile/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/desktop/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/desktop/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/desktop/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/boards/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/boards/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/boards/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/calendar/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/calendar/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/calendar/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/conversations/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/conversations/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/conversations/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "ace" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/ace/ace.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "feature/documents/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/documents/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/documents/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/testimonials/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/testimonials/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/faq/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/faq/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/basics/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/basics/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/navigation/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/navigation/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/navigation/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/imagery/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/imagery/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/imagery/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/express/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/express/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/express/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/search/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/search/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/social/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/social/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/video/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/video/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/taxonomy/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/taxonomy/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/maps/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/maps/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/maps/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "feature/multilingual/frontend" => array:2 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/multilingual/frontend.js" 2 => array:1 [ "minify" => false ] ] 1 => array:3 [ 0 => "css" 1 => "css/features/multilingual/frontend.css" 2 => array:1 [ "minify" => false ] ] ] "tui-image-editor" => array:2 [ 0 => array:2 [ 0 => "css" 1 => "css/tui-image-editor.css" ] 1 => array:3 [ 0 => "javascript" 1 => "js/tui-image-editor.js" 2 => array:2 [ "minify" => false "combine" => false ] ] ] "core/translator" => array:3 [ 0 => array:3 [ 0 => "javascript" 1 => "js/translator.js" 2 => array:1 [ "minify" => false ] ] 1 => array:2 [ 0 => "javascript-localized" 1 => "/ccm/assets/localization/translator/js" ] 2 => array:3 [ 0 => "css" 1 => "css/translator.css" 2 => array:1 [ "minify" => false ] ] ] "htmldiff" => array:1 [ 0 => array:2 [ 0 => "css" 1 => "css/htmldiff.css" ] ] ] "asset_groups" => array:32 [ "jquery" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "jquery" ] ] ] "bootstrap" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "bootstrap" ] ] ] "moment" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "moment" ] 1 => array:2 [ 0 => "javascript-localized" 1 => "moment" ] ] ] "vue" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "vue" ] ] ] "font-awesome" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "font-awesome" ] ] ] "ckeditor" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "ckeditor" ] 1 => array:2 [ 0 => "javascript" 1 => "ckeditor/concrete" ] 2 => array:2 [ 0 => "css" 1 => "ckeditor/concrete" ] ] ] "ace" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "ace" ] ] ] "core/cms" => array:1 [ 0 => array:8 [ 0 => array:2 [ 0 => "javascript" 1 => "jquery" ] 1 => array:2 [ 0 => "javascript" 1 => "bootstrap" ] 2 => array:2 [ 0 => "javascript" 1 => "moment" ] 3 => array:2 [ 0 => "javascript" 1 => "vue" ] 4 => array:2 [ 0 => "css" 1 => "font-awesome" ] 5 => array:2 [ 0 => "javascript" 1 => "core/cms" ] 6 => array:2 [ 0 => "javascript-localized" 1 => "core/cms" ] 7 => array:2 [ 0 => "css" 1 => "core/cms" ] ] ] "fullcalendar" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "fullcalendar" ] 1 => array:2 [ 0 => "css" 1 => "fullcalendar" ] ] ] "tui-image-editor" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "css" 1 => "tui-image-editor" ] 1 => array:2 [ 0 => "javascript" 1 => "tui-image-editor" ] ] ] "core/translator" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "css" 1 => "core/translator" ] 1 => array:2 [ 0 => "javascript" 1 => "core/translator" ] 2 => array:2 [ 0 => "javascript-localized" 1 => "core/translator" ] ] ] "feature/accordions/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/accordions/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/accordions/frontend" ] ] ] "feature/account/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/account/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/account/frontend" ] ] ] "feature/profile/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/profile/frontend" ] ] ] "feature/desktop/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/desktop/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/desktop/frontend" ] ] ] "feature/calendar/frontend" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "moment" ] 1 => array:2 [ 0 => "javascript" 1 => "feature/calendar/frontend" ] 2 => array:2 [ 0 => "css" 1 => "feature/calendar/frontend" ] ] ] "feature/conversations/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/conversations/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/conversations/frontend" ] ] ] "feature/documents/frontend" => array:1 [ 0 => array:3 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/documents/frontend" ] 1 => array:2 [ 0 => "javascript-localized" 1 => "core/cms" ] 2 => array:2 [ 0 => "css" 1 => "feature/documents/frontend" ] ] ] "feature/faq/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/faq/frontend" ] ] ] "feature/imagery/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/imagery/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/imagery/frontend" ] ] ] "feature/navigation/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/navigation/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/navigation/frontend" ] ] ] "feature/video/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/video/frontend" ] ] ] "feature/social/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/social/frontend" ] ] ] "feature/express/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/express/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/express/frontend" ] ] ] "feature/maps/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/maps/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/maps/frontend" ] ] ] "feature/multilingual/frontend" => array:1 [ 0 => array:2 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/multilingual/frontend" ] 1 => array:2 [ 0 => "css" 1 => "feature/multilingual/frontend" ] ] ] "feature/search/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/search/frontend" ] ] ] "feature/taxonomy/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/taxonomy/frontend" ] ] ] "feature/testimonials/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/testimonials/frontend" ] ] ] "feature/basics/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/basics/frontend" ] ] ] "core/conversation" => array:2 [ 0 => [] 1 => true ] "htmldiff" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "htmldiff" ] ] ] ] "http_client" => array:21 [ "sslverifypeer" => true "sslverifypeername" => false "sslcafile" => null "sslcapath" => null "connecttimeout" => 5 "timeout" => 60 "keepalive" => false "maxredirects" => 5 "rfc3986strict" => false "sslcert" => null "sslpassphrase" => null "storeresponse" => true "streamtmpdir" => null "strictredirects" => false "useragent" => "Concrete CMS" "encodecookies" => true "httpversion" => "1.1" "ssltransport" => "tls" "sslallowselfsigned" => false "persistent" => false "logger" => null ] "middleware" => array:5 [ 0 => array:2 [ "priority" => 1 "class" => "Concrete\Core\Http\Middleware\ApplicationMiddleware" ] "core_cookie" => "Concrete\Core\Http\Middleware\CookieMiddleware" "core_csp" => "Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware" "core_hsts" => "Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware" "core_xframeoptions" => "Concrete\Core\Http\Middleware\FrameOptionsMiddleware" ] "command_handlers" => [] "server_timezone" => "America/New_York" ] |
Key | Value |
SPOON_MENU | array:2 [ "Catalog" => """ <div class="category"><!-- category wrapper <div> -->\n <ul><li>\n <a onclick="toggleCategory(this, 'cat_1');">\n <img src="/application/themes/spoon/images/menu_icons/bakeware.svg" alt="Bakeware Icon" />Bakeware</a>\n <div id="cat_1" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Baking-%26amp%3B-Pastry-Tools/28/">Baking & Pastry Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Baking-Dishes/29/">Baking Dishes</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Bread-%26amp%3B-Loaf-Pans/30/">Bread & Loaf Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Cake-Pans/31/">Cake Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Cookie-%26amp%3B-Baking-Sheets/32/">Cookie & Baking Sheets</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Cookie-Cutters/33/">Cookie Cutters</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Cupcake-%26amp%3B-Muffin-Pans/34/">Cupcake & Muffin Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Bakeware/Pie-Dishes-%26amp%3B-Tart-Pans/35/">Pie Dishes & Tart Pans</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_3');">\n <img src="/application/themes/spoon/images/menu_icons/barware.svg" alt="Barware Icon" />Barware</a>\n <div id="cat_3" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Barware/Bar-Tools/40/">Bar Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Barware/Decanters/42/">Decanters</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Barware/Glassware/339/">Glassware</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Barware/Wine-Tools/44/">Wine Tools</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_178');">\n <img src="/application/themes/spoon/images/menu_icons/carts.svg" alt="Carts Icon" />Carts</a>\n <div id="cat_178" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Carts/Kitchen-Carts/333/">Kitchen Carts</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_7');">\n <img src="/application/themes/spoon/images/menu_icons/cleaning.svg" alt="Cleaning Icon" />Cleaning</a>\n <div id="cat_7" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Cleaning/Cleaners-%26amp%3B-Oils/48/">Cleaners & Oils</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cleaning/Cleaning-Tools/50/">Cleaning Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cleaning/Dish-Racks-%26amp%3B-Brushes/51/">Dish Racks & Brushes</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cleaning/Kitchen-Towels/52/">Kitchen Towels</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_8');">\n <img src="/application/themes/spoon/images/menu_icons/coffee_tea.svg" alt="Coffee & Tea Icon" />Coffee & Tea</a>\n <div id="cat_8" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Cofee-Accessories/382/">Cofee Accessories</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Coffee-%26amp%3B-Espresso-Makers/53/">Coffee & Espresso Makers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Coffee-Accessories/54/">Coffee Accessories</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Electric-Kettles/366/">Electric Kettles</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Tea-Accessories/56/">Tea Accessories</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Coffee-%26amp%3Bamp%3B-Tea/Tea-Kettles/57/">Tea Kettles</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_11');">\n <img src="/application/themes/spoon/images/menu_icons/cookware.svg" alt="Cookware Icon" />Cookware</a>\n <div id="cat_11" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Braisers/61/">Braisers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Cookware-Sets/206/">Cookware Sets</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Dutch-Ovens/63/">Dutch Ovens</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Fry-Pans-%26amp%3B-Skillets/64/">Fry Pans & Skillets</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Grill-Pans-%26amp%3B-Griddles/65/">Grill Pans & Griddles</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Roasting-Pans/66/">Roasting Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Sauce-Pans/67/">Sauce Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Saute-Pans/68/">Saute Pans</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Specialty-Cookware/70/">Specialty Cookware</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cookware/Stock-%26amp%3B-Multipots/71/">Stock & Multipots</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_12');">\n <img src="/application/themes/spoon/images/menu_icons/cutlery.svg" alt="Cutlery Icon" />Cutlery</a>\n <div id="cat_12" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Boning-%26amp%3B-Fillet-Knives/72/">Boning & Fillet Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Bread-Knives/73/">Bread Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Cheese-Knives/184/">Cheese Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Chefs-Knives/74/">Chefs Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Cleavers/75/">Cleavers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Cutlery-Sets/207/">Cutlery Sets</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Kitchen-Shears/77/">Kitchen Shears</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Nakiri-Knives/380/">Nakiri Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Paring-Knives/78/">Paring Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Santoku-Knives/79/">Santoku Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Sharpening-Tools/81/">Sharpening Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Slicing-%26amp%3B-Carving-Knives/82/">Slicing & Carving Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Steak-Knives/83/">Steak Knives</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutlery/Utility-Knives/84/">Utility Knives</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_13');">\n <img src="/application/themes/spoon/images/menu_icons/cutting_boards.svg" alt="Cutting Boards Icon" />Cutting Boards</a>\n <div id="cat_13" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutting-Boards/Synthetic/86/">Synthetic</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutting-Boards/Wood/87/">Wood</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Cutting-Boards/Wood-Composite/88/">Wood Composite</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_14');">\n <img src="/application/themes/spoon/images/menu_icons/electrics.svg" alt="Electrics Icon" />Electrics</a>\n <div id="cat_14" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Blenders/185/">Blenders</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Coffee-Makers/89/">Coffee Makers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Food-Processors/92/">Food Processors</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Mixers-%26amp%3B-Attachments/188/">Mixers & Attachments</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Toasters-%26amp%3B-Ovens/189/">Toasters & Ovens</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Electrics/Waffle-Makers/94/">Waffle Makers</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_15');">\n <img src="/application/themes/spoon/images/menu_icons/food.svg" alt="Food Icon" />Food</a>\n <div id="cat_15" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Food/Food/359/">Food</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Food/Spices/96/">Spices</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_219');">\n <img src="/application/themes/spoon/images/menu_icons/gift_cards.svg" alt="Gift Cards Icon" />Gift Cards</a>\n <div id="cat_219" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Gift-Cards/Gift-Cards/220/">Gift Cards</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_22');">\n <img src="/application/themes/spoon/images/menu_icons/storage.svg" alt="Storage Icon" />Storage</a>\n <div id="cat_22" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Storage/Cutlery-%26amp%3B-Tools/106/">Cutlery & Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Storage/Food/108/">Food</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Storage/Fruits-%26amp%3B-Vegetables/110/">Fruits & Vegetables</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Storage/Notepads/378/">Notepads</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Storage/Spices/111/">Spices</a></li></ul>\n </div>\n </li><li>\n <a onclick="toggleCategory(this, 'cat_23');">\n <img src="/application/themes/spoon/images/menu_icons/tabletop.svg" alt="Tabletop Icon" />Tabletop</a>\n <div id="cat_23" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Butter-Dishes/191/">Butter Dishes</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Coasters-%26amp%3B-Trivets/209/">Coasters & Trivets</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Flatware/210/">Flatware</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Gravy-Boats/211/">Gravy Boats</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Mugs-%26amp%3B-Cups/212/">Mugs & Cups</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Pitchers/213/">Pitchers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Plates/112/">Plates</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Salt-%26amp%3B-Pepper-Shakers/215/">Salt & Pepper Shakers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Serveware/175/">Serveware</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tabletop/Serving-Bowls-%26amp%3B-Platters/114/">Serving Bowls & Platters</a></li></ul>\n </div>\n </li> <li>\n <a onclick="toggleCategory(this, 'cat_25');">\n <img src="/application/themes/spoon/images/menu_icons/tools.svg" alt="Tools Icon" />Tools</a>\n <div id="cat_25" class="sub_category" style="display:none;"><!-- sub-category wrapper <div> -->\n <ul> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Aprons-%26amp%3B-Chef-Coats/226/">Aprons & Chef Coats</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Baking-%26amp%3B-Pastry-Tools/350/">Baking & Pastry Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Barbecue-Tools/130/">Barbecue Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Can%2C-Bottle-%26amp%3B-Jar-Openers/292/">Can, Bottle & Jar Openers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Canning-%26amp%3B-Preserving/134/">Canning & Preserving</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Cheese-Tools/135/">Cheese Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Colanders-%26amp%3B-Strainers/136/">Colanders & Strainers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Cooking-Utensils/139/">Cooking Utensils</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Egg-Tools/140/">Egg Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Food-Mills/141/">Food Mills</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Fruit-Tools/142/">Fruit Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Fuels/143/">Fuels</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Garlic-%26amp%3B-Herb-Tools/144/">Garlic & Herb Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Graters-%26amp%3B-Peelers/145/">Graters & Peelers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Ice-Cream-%26amp%3B-Whipped-Cream/222/">Ice Cream & Whipped Cream</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Kitchen-Utensils/148/">Kitchen Utensils</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Mandolines-%26amp%3B-Slicers/150/">Mandolines & Slicers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Measuring-Cups-%26amp%3B-Spoons/151/">Measuring Cups & Spoons</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Meat-%26amp%3B-Poultry-Tools/152/">Meat & Poultry Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Mixing-Bowls/154/">Mixing Bowls</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Mortars-%26amp%3B-Pestles/155/">Mortars & Pestles</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Nut-Tools/156/">Nut Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Oil-Dispensers-%26amp%3B-Sprayers/205/">Oil Dispensers & Sprayers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Peppermills/159/">Peppermills</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Pizza-%26amp%3B-Pasta-Tools/161/">Pizza & Pasta Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Pot-Holders-%26amp%3B-Mitts/162/">Pot Holders & Mitts</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Scales/163/">Scales</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Seafood-Tools/164/">Seafood Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Spice-Tools/165/">Spice Tools</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Thermometers/166/">Thermometers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Timers/167/">Timers</a></li> <li><a href="https://spoonandwhisk.com/shop/catalog/Tools/Vegetable-Tools/169/">Vegetable Tools</a></li></ul>\n </div>\n </li>\n </div><!-- category -->\n </ul><!-- category list items --> """ "Brands" => "<ul> <li><a href="https://spoonandwhisk.com/shop/brand//1723/" title="view products"></a></li> <li><a href="https://spoonandwhisk.com/shop/brand/AeroPress%2C-Inc./1732/" title="view AeroPress, Inc. products">AeroPress, Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Bamboozle/1736/" title="view Bamboozle products">Bamboozle</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Bees-Wrap/1555/" title="view Bees Wrap products">Bees Wrap</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Best-Manufacturers/1556/" title="view Best Manufacturers products">Best Manufacturers</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/BIA-Cordon-Bleu/1730/" title="view BIA Cordon Bleu products">BIA Cordon Bleu</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Breville-USA/1558/" title="view Breville USA products">Breville USA</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Brod-%26amp%3B-Taylor/1559/" title="view Brod & Taylor products">Brod & Taylor</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Browne-USA/1728/" title="view Browne USA products">Browne USA</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Camerons-Products-SCS-Direct-Inc./1751/" title="view Camerons Products SCS Direct Inc. products">Camerons Products SCS Direct Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Catskill-Craftsmen/1566/" title="view Catskill Craftsmen products">Catskill Craftsmen</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/CDN/1571/" title="view CDN products">CDN</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Charles-Viancin-Inc./1744/" title="view Charles Viancin Inc. products">Charles Viancin Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Chefn-Lifetime-brands/1743/" title="view Chef'n/Lifetime brands products">Chef'n/Lifetime brands</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Corkpops/1573/" title="view Corkpops products">Corkpops</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Danica/1746/" title="view Danica products">Danica</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Dexas-International-Ltd./1711/" title="view Dexas International Ltd. products">Dexas International Ltd.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Duralex-USA/1681/" title="view Duralex USA products">Duralex USA</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Emile-Henry/1749/" title="view Emile Henry products">Emile Henry</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Epicurean/1579/" title="view Epicurean products">Epicurean</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Escali/1580/" title="view Escali products">Escali</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Euroscrubby/1628/" title="view Euroscrubby products">Euroscrubby</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Fat-Daddios/1582/" title="view Fat Daddios products">Fat Daddios</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Fortessa-Tableware-Solutions/1690/" title="view Fortessa Tableware Solutions products">Fortessa Tableware Solutions</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Fox-Run/1586/" title="view Fox Run products">Fox Run</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Full-Circle-Home/1725/" title="view Full Circle Home products">Full Circle Home</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Garnier-Thiebaut%2C-Inc/1661/" title="view Garnier Thiebaut, Inc products">Garnier Thiebaut, Inc</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Hario/1708/" title="view Hario products">Hario</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Harold-Import-Company/1589/" title="view Harold Import Company products">Harold Import Company</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Hestan-Meyer-Corporation-CIT-Group/1737/" title="view Hestan Meyer Corporation/CIT Group products">Hestan Meyer Corporation/CIT Group</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/House-on-the-Hill/1590/" title="view House on the Hill products">House on the Hill</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/iSi/1648/" title="view iSi products">iSi</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/JosephJoseph/1592/" title="view JosephJoseph products">JosephJoseph</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Jura-Capresso/1593/" title="view Jura-Capresso products">Jura-Capresso</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Knappmade-Products/1682/" title="view Knappmade Products products">Knappmade Products</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Kuhn-Rikon-Corporation/1748/" title="view Kuhn Rikon Corporation products">Kuhn Rikon Corporation</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Lamson-Products/1700/" title="view Lamson Products products">Lamson Products</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Le-Creuset/1604/" title="view Le Creuset products">Le Creuset</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Mercer-Culinary/1608/" title="view Mercer Culinary products">Mercer Culinary</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Messermeister/1609/" title="view Messermeister products">Messermeister</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Microplane/1610/" title="view Microplane products">Microplane</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Monkey-Business-Design-USA-LLC/1740/" title="view Monkey Business Design USA LLC products">Monkey Business Design USA LLC</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/MUKitchen/1733/" title="view MUKitchen products">MUKitchen</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Nordic-Ware/1656/" title="view Nordic Ware products">Nordic Ware</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Norpro/1613/" title="view Norpro products">Norpro</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/OXO/1616/" title="view OXO products">OXO</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Paderno-World-Cuisine-USA/1667/" title="view Paderno World Cuisine USA products">Paderno World Cuisine USA</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Perfect-Edge-Cutlery/1735/" title="view Perfect Edge Cutlery products">Perfect Edge Cutlery</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Peugeot-Saveurs-North-America%2C-LLC/1741/" title="view Peugeot Saveurs North America, LLC products">Peugeot Saveurs North America, LLC</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Port-Style-Enterprises-Inc./1673/" title="view Port-Style Enterprises Inc. products">Port-Style Enterprises Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Progresive-International/1706/" title="view Progresive International products">Progresive International</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/R.S.V.P-International%2C-Inc.-Herman-Pearl/1729/" title="view R.S.V.P International, Inc./Herman Pearl products">R.S.V.P International, Inc./Herman Pearl</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Rosle/1626/" title="view Rosle products">Rosle</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Salt-Sisters/1685/" title="view Salt Sisters products">Salt Sisters</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Sassafras/1722/" title="view Sassafras products">Sassafras</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Silpat%C2%AE/1629/" title="view Silpat® products">Silpat®</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Smiths-Consumer-Products-Inc./1726/" title="view Smith's Consumer Products Inc. products">Smith's Consumer Products Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Smithey-Ironware-Company%2C-LLC/1709/" title="view Smithey Ironware Company, LLC products">Smithey Ironware Company, LLC</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Steelport-Knife-Co./1738/" title="view Steelport Knife Co. products">Steelport Knife Co.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Swissmar/1634/" title="view Swissmar products">Swissmar</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Talisman-Designs/1734/" title="view Talisman Designs products">Talisman Designs</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Teakhaus/1752/" title="view Teakhaus products">Teakhaus</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/The-American-Cookie-Cutter-Company/1636/" title="view The American Cookie Cutter Company products">The American Cookie Cutter Company</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/The-Cookware-Company-USA-LLC/1710/" title="view The Cookware Company USA LLC products">The Cookware Company USA LLC</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/The-Grate-Plate%2C-Inc/1747/" title="view The Grate Plate, Inc products">The Grate Plate, Inc</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Toadfish-Outfitters/1703/" title="view Toadfish Outfitters products">Toadfish Outfitters</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Tojiro/1644/" title="view Tojiro products">Tojiro</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Tovolo/1689/" title="view Tovolo products">Tovolo</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/True-Fabrications%2C-Inc/1742/" title="view True Fabrications, Inc products">True Fabrications, Inc</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Typhoon-Homewares%2C-LLC/1720/" title="view Typhoon Homewares, LLC products">Typhoon Homewares, LLC</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Union-Square-Group/1750/" title="view Union Square Group products">Union Square Group</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/USA-Pan/1639/" title="view USA Pan products">USA Pan</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Victoria-Creative-Home-%26amp%3B-Kitchen/1670/" title="view Victoria Creative Home & Kitchen products">Victoria Creative Home & Kitchen</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Victorinox-Swiss-Army/1693/" title="view Victorinox Swiss Army products">Victorinox Swiss Army</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Wusthof-USA%2C-Inc./1717/" title="view Wusthof USA, Inc. products">Wusthof USA, Inc.</a></li> <li><a href="https://spoonandwhisk.com/shop/brand/Zwilling-J.A.-Henckels/1679/" title="view Zwilling J.A. Henckels products">Zwilling J.A. Henckels</a></li></ul>" ] |
Key | Value |
USER | "*************"
|
HOME | "*******************"
|
SCRIPT_NAME | "**********"
|
REQUEST_URI | "******************************"
|
QUERY_STRING | "" |
REQUEST_METHOD | "***"
|
SERVER_PROTOCOL | "********"
|
GATEWAY_INTERFACE | "*******"
|
REDIRECT_URL | "******************************"
|
REMOTE_PORT | "*****"
|
SCRIPT_FILENAME | "*****************************************"
|
SERVER_ADMIN | "***************************"
|
CONTEXT_DOCUMENT_ROOT | "*******************************"
|
CONTEXT_PREFIX | "" |
REQUEST_SCHEME | "*****"
|
DOCUMENT_ROOT | "*******************************"
|
REMOTE_ADDR | "***********"
|
SERVER_PORT | "***"
|
SERVER_ADDR | "*************"
|
SERVER_NAME | "*****************"
|
SERVER_SOFTWARE | "******"
|
SERVER_SIGNATURE | "" |
PATH | "************************************************************************************************************************************************************************************"
|
HTTP_X_HTTPS | "*"
|
HTTP_HOST | "*****************"
|
HTTP_REFERER | "********************************************************"
|
HTTP_USER_AGENT | "*********"
|
HTTP_ACCEPT | "***"
|
proxy-nokeepalive | "*"
|
H2_STREAM_TAG | "**********"
|
H2_STREAM_ID | "*"
|
H2_PUSHED_ON | "" |
H2_PUSHED | "" |
H2_PUSH | "***"
|
H2PUSH | "***"
|
HTTP2 | "**"
|
SSL_TLS_SNI | "*****************"
|
HTTPS | "**"
|
SCRIPT_URI | "*******************************************************"
|
SCRIPT_URL | "******************************"
|
UNIQUE_ID | "***************************"
|
REDIRECT_STATUS | "***"
|
REDIRECT_H2_STREAM_TAG | "**********"
|
REDIRECT_H2_STREAM_ID | "*"
|
REDIRECT_H2_PUSHED_ON | "" |
REDIRECT_H2_PUSHED | "" |
REDIRECT_H2_PUSH | "***"
|
REDIRECT_H2PUSH | "***"
|
REDIRECT_HTTP2 | "**"
|
REDIRECT_SSL_TLS_SNI | "*****************"
|
REDIRECT_HTTPS | "**"
|
REDIRECT_SCRIPT_URI | "*******************************************************"
|
REDIRECT_SCRIPT_URL | "******************************"
|
REDIRECT_UNIQUE_ID | "***************************"
|
FCGI_ROLE | "*********"
|
PHP_SELF | "**********"
|
REQUEST_TIME_FLOAT | "***"
|
REQUEST_TIME | "***"
|
argv | "***"
|
argc | "***"
|