unset($this->memStore['keys'][$empty]);
}
}
return $path;
}
}
/**
* This function clears the data from a key. If a key points to both a directory and a file, both are erased. If
* passed null, the entire cache directory is removed.
*
* {@inheritdoc}
*/
public function clear($key = null)
{
$path = $this->makePath($key);
if (is_file($path)) {
$return = true;
unlink($path);
}
$extension = $this->getEncoder()->getExtension();
if (strpos($path, $extension) !== false) {
$path = substr($path, 0, -(strlen($extension)));
}
if (is_dir($path)) {
return Utilities::deleteRecursive($path, true);
}
return isset($return);
}
/**
* Cleans out the cache directory by removing all stale cache files and empty directories.
*
* {@inheritdoc}
*/
public function purge()
unset($this->memStore['keys'][$empty]);
}
}
return $path;
}
}
/**
* This function clears the data from a key. If a key points to both a directory and a file, both are erased. If
* passed null, the entire cache directory is removed.
*
* {@inheritdoc}
*/
public function clear($key = null)
{
$path = $this->makePath($key);
if (is_file($path)) {
$return = true;
unlink($path);
}
$extension = $this->getEncoder()->getExtension();
if (strpos($path, $extension) !== false) {
$path = substr($path, 0, -(strlen($extension)));
}
if (is_dir($path)) {
return Utilities::deleteRecursive($path, true);
}
return isset($return);
}
/**
* Cleans out the cache directory by removing all stale cache files and empty directories.
*
* {@inheritdoc}
*/
public function purge()
$store['createdOn'] = time();
if (isset($time) && (($time instanceof \DateTime) || ($time instanceof \DateTimeInterface))) {
$expiration = $time->getTimestamp();
$cacheTime = $expiration - $store['createdOn'];
} else {
$cacheTime = self::$cacheTime;
}
$expiration = $store['createdOn'] + $cacheTime;
if ($cacheTime > 0) {
$expirationDiff = rand(0, floor($cacheTime * .15));
$expiration -= $expirationDiff;
}
if ($this->stampedeRunning === true) {
$spkey = $this->key;
$spkey[0] = 'sp'; // change "cache" data namespace to stampede namespace
$this->driver->clear($spkey);
$this->stampedeRunning = false;
}
return $this->driver->storeData($this->key, $store, $expiration);
}
/**
* {@inheritdoc}
*/
public function extend($ttl = null)
{
if ($this->isDisabled()) {
return false;
}
return $this->set($this->get(), $ttl);
}
/**
* {@inheritdoc}
} else {
$date->sub($dateInterval);
}
$this->expiration = $date;
} elseif ($time instanceof \DateInterval) {
$date->add($time);
$this->expiration = $date;
} else {
}
return $this;
}
/**
* {@inheritdoc}
*/
public function save()
{
try {
return $this->executeSet($this->data, $this->expiration);
} catch (Exception $e) {
$this->logException('Setting value in cache caused exception.', $e);
$this->disable();
return false;
}
}
private function executeSet($data, $time)
{
if ($this->isDisabled() || !isset($this->key)) {
return false;
}
$store = array();
$store['return'] = $data;
$store['createdOn'] = time();
if (isset($time) && (($time instanceof \DateTime) || ($time instanceof \DateTimeInterface))) {
$expiration = $time->getTimestamp();
$items[$item->getKey()] = $item;
}
return new \ArrayIterator($items);
}
/**
* {@inheritdoc}
*/
public function hasItem($key)
{
return $this->getItem($key)->isHit();
}
/**
* {@inheritdoc}
*/
public function save(CacheItemInterface $item)
{
return $item->save();
}
/**
* {@inheritdoc}
*/
public function saveDeferred(CacheItemInterface $item)
{
return $this->save($item);
}
/**
* {@inheritdoc}
*/
public function commit()
{
return true;
}
/**
public function flush()
{
return $this->pool->clear();
}
/**
* Gets a value from the cache.
*
* @param string $key Name of the cache item ID
*
* @return \Stash\Interfaces\ItemInterface
*/
public function getItem($key)
{
return $this->pool->getItem($key);
}
public function save(CacheItemInterface $item)
{
$this->pool->save($item);
}
/**
* Enables the cache.
*/
public function enable()
{
if ($this->driver !== null) {
$this->pool->setDriver($this->driver);
}
$this->enabled = true;
}
/**
* Disables the cache.
*/
public function disable()
{
// save the current driver if not yet black hole so it can be restored on enable()
if (!($this->pool->getDriver() instanceof BlackHole)) {
/**
* @param $file
* @return Record
*/
public function getRecord($file)
{
$this->addDefaultLocations();
$key = $this->getCacheKey($file);
$item = $this->cache->getItem($key);
$record = null;
if ($item->isMiss()) {
$item->lock();
foreach($this->locations as $location) {
$location->setFilesystem($this->filesystem);
if ($record = $location->contains($file)) {
break;
}
}
if (isset($record)) {
$this->cache->save($item->set($record));
}
} else {
$record = $item->get();
}
return $record;
}
/**
* @return array
*/
public function getLocations()
{
return $this->locations;
}
}
$this->baseURL = dirname($record->getUrl());
$this->basePath = dirname($record->getFile());
}
return;
} else if ($bFilename !== $bFilenameWithoutDotPhp) {
$record = $locator->getRecord(
DIRNAME_BLOCKS . '/' . $obj->getBlockTypeHandle() . '/' . DIRNAME_BLOCK_TEMPLATES . '/' . $bFilenameWithoutDotPhp
);
if ($record->exists() && is_dir($record->getFile())) {
$this->template = $record->getFile() . '/' . $this->render;
$this->baseURL = $record->getUrl();
$this->basePath = $record->getFile();
return;
}
}
}
$record = $locator->getRecord(
DIRNAME_BLOCKS . '/' . $obj->getBlockTypeHandle() . '/' . $this->render
);
if ($record->exists()) {
$this->baseURL = dirname($record->getUrl());
$this->template = $record->getFile();
$this->basePath = dirname($this->template);
return;
}
// we check all installed packages
/*
$obj = $this->obj;
if ($bFilename) {
// we check all installed packages
if (!isset($template)) {
$pl = PackageList::get();
$packages = $pl->getPackages();
$this->btHandle = $obj->getBlockTypeHandle();
$this->obj = $obj;
if ($obj instanceof Block) {
$this->bFilename = $obj->getBlockFilename();
$c = $obj->getBlockCollectionObject();
if (is_object($c)) {
$this->theme = $c->getCollectionThemeObject();
}
} else {
$c = \Page::getCurrentPage();
if ($c) {
$this->theme = $c->getCollectionThemeObject();
}
}
if ($packageList) {
$this->setPackageList($packageList);
} else {
$this->setPackageList(PackageList::get());
}
$this->computeView();
}
/**
* @return PackageList
*/
public function getPackageList()
{
return $this->packageList;
}
/**
* @param static $packageList
*/
public function setPackageList($packageList)
{
$this->packageList = $packageList;
}
protected function computeView()
if (!in_array($this->viewToRender, ['view', 'add', 'edit', 'scrapbook'])) {
// then we're trying to render a custom view file, which we'll pass to the bottom functions as $_filename
$customFilenameToRender = $view . '.php';
$view = 'view';
}
switch ($view) {
case 'view':
if (is_object($this->block) && is_object($this->area)) {
$this->setBlockViewHeaderFile(DIR_FILES_ELEMENTS_CORE . '/block_header_view.php');
$this->setBlockViewFooterFile(DIR_FILES_ELEMENTS_CORE . '/block_footer_view.php');
}
if ($this->controller->blockViewRenderOverride) {
$template = DIRNAME_BLOCKS . '/' . $this->blockType->getBlockTypeHandle(
) . '/' . $this->controller->blockViewRenderOverride . '.php';
$this->setViewTemplate($env->getPath($template, $this->blockTypePkgHandle));
} else {
$bFilename = false;
if ($this->block) {
$bFilename = $this->block->getBlockFilename();
$bvt = new BlockViewTemplate($this->block);
if (!$bFilename && is_object($this->area)) {
$templates = $this->area->getAreaCustomTemplates();
if (isset($templates[$this->block->getBlockTypeHandle()])) {
$bFilename = $templates[$this->block->getBlockTypeHandle()];
}
}
} else {
$bvt = new BlockViewTemplate($this->blockType);
}
if ($bFilename) {
$bvt->setBlockCustomTemplate(
$bFilename
); // this is PROBABLY already set by the method above, but in the case that it's passed by area we have to set it here
} else {
if ($customFilenameToRender) {
$bvt->setBlockCustomRender($customFilenameToRender);
}
}
$this->setViewTemplate($bvt->getTemplate());
{
if (is_object($this->controller)) {
$sets = $this->controller->getSets();
$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();
$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
if (is_object($stack)) {
$blocksTmp = $stack->getBlocks(STACKS_AREA_NAME);
$globalArea = self::get($stack, STACKS_AREA_NAME);
}
$blocks = [];
foreach ($blocksTmp as $ab) {
$ab->setBlockAreaObject($globalArea);
$ab->setBlockActionCollectionID($stack->getCollectionID());
$blocks[] = $ab;
}
unset($blocksTmp);
return $blocks;
}
public function display($c = false, $fake = null)
{
parent::display($c, null);
}
/**
* Note that this function does not delete the global area's stack.
* You probably want to call the "delete" method of the Stack model instead.
*
* @param string $arHandle
*/
public static function deleteByName($arHandle)
{
$db = Loader::db();
$db->Execute('select cID from Areas where arHandle = ? and arIsGlobal = 1', [$arHandle]);
$db->Execute('delete from Areas where arHandle = ? and arIsGlobal = 1', [$arHandle]);
}
/**
* Searches for global areas without any blocks in it and deletes them.
* This will have a positive impact on the performance as every global area is rendered for every page.
*/
public static function deleteEmptyAreas()
<?php
defined('C5_EXECUTE') or die("Access Denied.");
$this->inc('inc/header_top.php');
?>
<!-- Header -->
<div id="header-content" class="header-container">
<header class="header-content-inner clearfix" role="banner">
<div class="header-logo col-xs-9 col-sm-6 col-md-4">
<?php
$a = new GlobalArea('Header Site Title');
$a->display();
?>
</div>
<div class="header-conctens col-sm-6 col-md-8">
<div class="row">
<div class="header-navi clearfix">
<?php
$a = new GlobalArea('Header Navigation');
$a->display();
?>
</div>
<div class="header-search clearfix">
<?php
$a = new GlobalArea('Header Search');
$a->display();
?>
</div>
</div>
</div>
</header>
<!-- Global Navigation -->
<div class="global-navi<?php $u = new User(); if ( $u->isLoggedIn() ) { echo ' login'; } ?>">
<?php
$a = new GlobalArea('Global Navigation');
$a->display();
?>
</div><!-- //Global Navigation -->
</div><!-- //Headerー -->
$path = $env->getPath(DIRNAME_THEMES.'/'.$this->themeHandle.'/'.$file, $this->themePkgHandle);
if (!file_exists($path)) {
$path2 = $env->getPath(DIRNAME_THEMES.'/'.$this->themeHandle.'/'.$file, $this->viewPkgHandle);
if (file_exists($path2)) {
$path = $path2;
}
unset($path2);
}
$__data__['path'] = $path;
unset($file);
unset($args);
unset($env);
unset($path);
if (!empty($__data__['scopedItems'])) {
if (array_key_exists('__data__', $__data__['scopedItems'])) {
throw new \Exception(t(/*i18n: %1$s is a variable name, %2$s is a function name*/'Illegal variable name \'%1$s\' in %2$s args.', '__data__', __CLASS__.'::'.__METHOD__));
}
extract($__data__['scopedItems']);
}
include $__data__['path'];
}
/**
* A shortcut to posting back to the current page with a task and optional parameters. Only works in the context of.
*
* @param string $action
* @param string $task
*
* @return string $url
*/
public function action($action)
{
$a = func_get_args();
$controllerPath = $this->controller->getControllerActionPath();
array_unshift($a, $controllerPath);
$ret = call_user_func_array([$this, 'url'], $a);
return $ret;
}
<?php
defined('C5_EXECUTE') or die("Access Denied.");
$this->inc('inc/header.php');
?>
<!-- Main Contents -->
<div id="main-content" class="main-container">
<div class="main-content-inner clearfix">
<?php
$a = new Area('Page Header');
$a->enableGridContainer();
$a->display($c);
?>
<div class="container">
<div class="row">
<div id="primary" class="content-primary col-md-8">
<main role="main">
<article>
<?php
$a = new Area('Main');
$a->setAreaGridMaximumColumns(12);
$a->display($c);
?>
</article>
</main>
</div>
<div id="secondary" class="content-secondary col-md-4" role="complementary">
<aside class="">
<?php
$a = new Area('Sidebar');
$a->display($c);
$a = new Area('Sidebar Footer');
$a->display($c);
?>
</aside>
</div>
</div>
</div>
<?php
$a = new Area('Page Footer');
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.
protected function onBeforeGetContents()
{
$event = new \Symfony\Component\EventDispatcher\GenericEvent();
$event->setArgument('view', $this);
Events::dispatch('on_before_render', $event);
$this->themeObject->registerAssets();
}
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;
$pe = new Event($collection);
$pe->setUser($u);
$pe->setRequest($request);
$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);
// 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) {
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;
/**
* @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;
}
}
}
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);
}
}
* @var \Concrete\Core\Config\Repository\Repository
*/
private $config;
public function __construct(Repository $config)
{
$this->config = $config;
}
/**
* Process the request and return a response.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param DelegateInterface $frame
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function process(Request $request, DelegateInterface $frame)
{
$response = $frame->next($request);
if ($response && $this->app->isInstalled() && $this->config->get('concrete.misc.basic_thumbnailer_generation_strategy') == 'now') {
$responseStatusCode = (int) $response->getStatusCode();
if ($responseStatusCode === 200 || $responseStatusCode === 404) {
$database = $this->tryGetConnection();
if ($database !== null) {
if ($responseStatusCode === 404) {
$searchThumbnailPath = $request->getRequestUri();
} else {
$searchThumbnailPath = null;
}
$thumbnail = $this->getThumbnailToGenerate($database, $searchThumbnailPath);
if ($thumbnail !== null) {
$this->markThumbnailAsBuilt($database, $thumbnail);
if ($this->generateThumbnail($thumbnail)) {
if ($this->couldBeTheRequestedThumbnail($thumbnail, $searchThumbnailPath)) {
$response = $this->buildRedirectToThumbnailResponse($request);
}
}
}
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;
}
}
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;
}
}
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;
}
}
* @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;
}
}
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;
}
}
* 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);
}
}
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;
}
}
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;
}
*/
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, [$this->dispatcher]));
}
return $stack->process($request);
}
}
// 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 {
$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 concrete5 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 –
<?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 */
/*
* ----------------------------------------------------------------------------
<?php
require 'concrete/dispatcher.php';
Key | Value |
Version | 8.5.8 |
Installed Version | 8.5.8 |
Key | Value |
concrete.version | 8.5.8 |
concrete.version_installed | 8.5.8 |
concrete.version_db | 20220319043123 |
concrete.installed | true |
concrete.locale | ja_JP |
concrete.charset | UTF-8 |
concrete.charset_bom | |
concrete.maintenance_mode | false |
concrete.debug.display_errors | true |
concrete.debug.detail | debug |
concrete.debug.error_reporting | null |
concrete.proxy.host | null |
concrete.proxy.port | null |
concrete.proxy.user | null |
concrete.proxy.password | null |
concrete.upload.extensions | *.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 |
concrete.upload.extensions_blacklist | *.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi |
concrete.upload.chunking.enabled | true |
concrete.upload.chunking.chunkSize | null |
concrete.export.csv.include_bom | false |
concrete.export.csv.datetime_format | Y-m-d\TH:i:sP |
concrete.interface.panel.page_relations | false |
concrete.mail.method | PHP_MAIL |
concrete.mail.methods.smtp.server | |
concrete.mail.methods.smtp.port | |
concrete.mail.methods.smtp.username | |
concrete.mail.methods.smtp.password | |
concrete.mail.methods.smtp.encryption | |
concrete.mail.methods.smtp.messages_per_connection | null |
concrete.mail.methods.smtp.helo_domain | localhost |
concrete.cache.enabled | true |
concrete.cache.lifetime | 21600 |
concrete.cache.overrides | true |
concrete.cache.blocks | true |
concrete.cache.assets | true |
concrete.cache.theme_css | true |
concrete.cache.pages | all |
concrete.cache.doctrine_dev_mode | false |
concrete.cache.full_page_lifetime | default |
concrete.cache.full_page_lifetime_value | null |
concrete.cache.full_contents_assets_hash | false |
concrete.cache.directory | /home/ozakico/www/concretetest0627/application/files/cache |
concrete.cache.directory_relative | null |
concrete.cache.page.directory | /home/ozakico/www/concretetest0627/application/files/cache/pages |
concrete.cache.page.adapter | file |
concrete.cache.levels.overrides.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.overrides.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.overrides.drivers.core_filesystem.options.path | /home/ozakico/www/concretetest0627/application/files/cache/overrides |
concrete.cache.levels.overrides.drivers.core_filesystem.options.dirPermissions | 453 |
concrete.cache.levels.overrides.drivers.core_filesystem.options.filePermissions | 388 |
concrete.cache.levels.overrides.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.overrides.drivers.redis.options.prefix | c5_overrides |
concrete.cache.levels.overrides.drivers.redis.options.database | 0 |
concrete.cache.levels.overrides.preferred_driver | core_filesystem |
concrete.cache.levels.expensive.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.expensive.drivers.core_filesystem.class | Concrete\Core\Cache\Driver\FileSystemStashDriver |
concrete.cache.levels.expensive.drivers.core_filesystem.options.path | /home/ozakico/www/concretetest0627/application/files/cache/expensive |
concrete.cache.levels.expensive.drivers.core_filesystem.options.dirPermissions | 453 |
concrete.cache.levels.expensive.drivers.core_filesystem.options.filePermissions | 388 |
concrete.cache.levels.expensive.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.expensive.drivers.redis.options.prefix | c5_expensive |
concrete.cache.levels.expensive.drivers.redis.options.database | 0 |
concrete.cache.levels.expensive.preferred_driver | core_filesystem |
concrete.cache.levels.object.drivers.core_ephemeral.class | \Stash\Driver\Ephemeral |
concrete.cache.levels.object.drivers.redis.class | Concrete\Core\Cache\Driver\RedisStashDriver |
concrete.cache.levels.object.drivers.redis.options.prefix | c5_object |
concrete.cache.levels.object.drivers.redis.options.database | 0 |
concrete.cache.levels.object.preferred_driver | core_ephemeral |
concrete.cache.clear.thumbnails | true |
concrete.cache.clear.last_cleared | 1648642409 |
concrete.cache.last_cleared | 1704204824 |
concrete.design.enable_custom | true |
concrete.design.enable_layouts | true |
concrete.log.emails | true |
concrete.log.errors | true |
concrete.log.spam | false |
concrete.log.api | false |
concrete.log.enable_dashboard_report | true |
concrete.log.configuration.mode | simple |
concrete.log.configuration.simple.core_logging_level | NOTICE |
concrete.log.configuration.simple.handler | database |
concrete.log.configuration.simple.file.file | |
concrete.jobs.enable_scheduling | true |
concrete.filesystem.temp_directory | null |
concrete.filesystem.permissions.file | 388 |
concrete.filesystem.permissions.directory | 453 |
concrete.email.enabled | true |
concrete.email.default.address | concrete5-noreply@concrete5 |
concrete.email.default.name | |
concrete.email.form_block.address | false |
concrete.email.forgot_password.address | null |
concrete.email.forgot_password.name | null |
concrete.email.validate_registration.address | null |
concrete.email.validate_registration.name | null |
concrete.email.workflow_notification.address | null |
concrete.email.workflow_notification.name | null |
concrete.form.store_form_submissions | auto |
concrete.marketplace.enabled | true |
concrete.marketplace.request_timeout | 30 |
concrete.marketplace.token | null |
concrete.marketplace.site_token | null |
concrete.marketplace.intelligent_search | true |
concrete.marketplace.log_requests | false |
concrete.external.intelligent_search_help | true |
concrete.external.news | true |
concrete.misc.user_timezones | false |
concrete.misc.package_backup_directory | /home/ozakico/www/concretetest0627/application/files/trash |
concrete.misc.enable_progressive_page_reindex | true |
concrete.misc.mobile_theme_id | 0 |
concrete.misc.sitemap_approve_immediately | true |
concrete.misc.enable_translate_locale_en_us | false |
concrete.misc.page_search_index_lifetime | 259200 |
concrete.misc.enable_trash_can | true |
concrete.misc.default_jpeg_image_compression | 80 |
concrete.misc.default_png_image_compression | 9 |
concrete.misc.default_thumbnail_format | auto |
concrete.misc.inplace_image_operations_limit | 4194304 |
concrete.misc.basic_thumbnailer_generation_strategy | now |
concrete.misc.help_overlay | true |
concrete.misc.require_version_comments | false |
concrete.misc.enable_move_blocktypes_across_sets | false |
concrete.misc.image_editor_cors_policy.enable_cross_origin | false |
concrete.misc.image_editor_cors_policy.anonymous_request | true |
concrete.misc.generator_tag_display_in_header | true |
concrete.misc.login_redirect | DESKTOP |
concrete.misc.access_entity_updated | 1656380518 |
concrete.misc.latest_version | 8.5.9 |
concrete.misc.do_page_reindex_check | false |
concrete.misc.search_index_area_list | a:0:{} |
concrete.misc.search_index_area_method | blacklist |
concrete.theme.compress_preprocessor_output | true |
concrete.theme.generate_less_sourcemap | false |
concrete.updates.enable_auto_update_packages | false |
concrete.updates.enable_permissions_protection | true |
concrete.updates.check_threshold | 172800 |
concrete.updates.services.get_available_updates | https://marketplace.concretecms.com/tools/update_core |
concrete.updates.services.inspect_update | https://marketplace.concretecms.com/tools/inspect_update |
concrete.updates.skip_core | false |
concrete.paths.trash | /!trash |
concrete.paths.drafts | /!drafts |
concrete.icons.page_template.width | 120 |
concrete.icons.page_template.height | 90 |
concrete.icons.theme_thumbnail.width | 120 |
concrete.icons.theme_thumbnail.height | 90 |
concrete.icons.file_manager_listing.handle | file_manager_listing |
concrete.icons.file_manager_listing.width | 60 |
concrete.icons.file_manager_listing.height | 60 |
concrete.icons.file_manager_detail.handle | file_manager_detail |
concrete.icons.file_manager_detail.width | 400 |
concrete.icons.file_manager_detail.height | 400 |
concrete.icons.user_avatar.width | 80 |
concrete.icons.user_avatar.height | 80 |
concrete.icons.user_avatar.default | /updates/concrete-cms-8.5.8/concrete/images/avatar_none.png |
concrete.file_manager.images.use_exif_data_to_rotate_images | false |
concrete.file_manager.images.manipulation_library | gd |
concrete.file_manager.images.create_high_dpi_thumbnails | true |
concrete.file_manager.images.preview_image_size | small |
concrete.file_manager.images.preview_image_popover | true |
concrete.file_manager.images.svg_sanitization.action | sanitize |
concrete.file_manager.images.svg_sanitization.allowed_tags | |
concrete.file_manager.images.svg_sanitization.allowed_attributes | |
concrete.file_manager.images.image_editor_save_area_background_color | |
concrete.file_manager.items_per_page_options.0 | 10 |
concrete.file_manager.items_per_page_options.1 | 25 |
concrete.file_manager.items_per_page_options.2 | 50 |
concrete.file_manager.items_per_page_options.3 | 100 |
concrete.file_manager.items_per_page_options.4 | 250 |
concrete.file_manager.results | 10 |
concrete.search_users.results | 10 |
concrete.sitemap_xml.file | sitemap.xml |
concrete.sitemap_xml.frequency | weekly |
concrete.sitemap_xml.priority | 0.5 |
concrete.accessibility.toolbar_titles | false |
concrete.accessibility.toolbar_large_font | false |
concrete.accessibility.display_help_system | true |
concrete.accessibility.toolbar_tooltips | true |
concrete.i18n.choose_language_login | false |
concrete.i18n.auto_install_package_languages | true |
concrete.i18n.community_translation.entry_point | https://translate.concretecms.org/api |
concrete.i18n.community_translation.api_token | |
concrete.i18n.community_translation.progress_limit | 60 |
concrete.i18n.community_translation.cache_lifetime | 3600 |
concrete.i18n.community_translation.package_url | https://translate.concretecms.org/translate/package |
concrete.urls.concrete5 | http://marketplace.concretecms.com |
concrete.urls.concrete5_secure | https://marketplace.concretecms.com |
concrete.urls.newsflow | http://newsflow.concrete5.org |
concrete.urls.background_feed | //backgroundimages.concrete5.org/wallpaper |
concrete.urls.privacy_policy | //www.concretecms.com/about/legal/privacy-policy |
concrete.urls.background_feed_secure | https://backgroundimages.concrete5.org/wallpaper |
concrete.urls.background_info | http://backgroundimages.concrete5.org/get_image_data.php |
concrete.urls.videos | https://www.youtube.com/user/concrete5cms/videos |
concrete.urls.help.developer | http://documentation.concrete5.org/developers |
concrete.urls.help.user | http://documentation.concrete5.org/editors |
concrete.urls.help.forum | http://www.concrete5.org/community/forums |
concrete.urls.help.slack | https://www.concrete5.org/slack |
concrete.urls.paths.menu_help_service | /tools/get_remote_help_list/ |
concrete.urls.paths.site_page | /private/sites |
concrete.urls.paths.newsflow_slot_content | /tools/slot_content/ |
concrete.urls.paths.marketplace.projects | /profile/projects/ |
concrete.urls.paths.marketplace.connect | /marketplace/connect |
concrete.urls.paths.marketplace.connect_success | /marketplace/connect/-/connected |
concrete.urls.paths.marketplace.connect_validate | /marketplace/connect/-/validate |
concrete.urls.paths.marketplace.connect_new_token | /marketplace/connect/-/generate_token |
concrete.urls.paths.marketplace.checkout | /cart/-/add |
concrete.urls.paths.marketplace.purchases | /marketplace/connect/-/get_available_licenses |
concrete.urls.paths.marketplace.item_information | /marketplace/connect/-/get_item_information |
concrete.urls.paths.marketplace.item_free_license | /marketplace/connect/-/enable_free_license |
concrete.urls.paths.marketplace.remote_item_list | /marketplace/ |
concrete.white_label.logo | false |
concrete.white_label.name | false |
concrete.white_label.background_image | null |
concrete.session.name | CONCRETE5 |
concrete.session.handler | file |
concrete.session.redis.database | 1 |
concrete.session.save_path | null |
concrete.session.max_lifetime | 7200 |
concrete.session.gc_probability | 1 |
concrete.session.gc_divisor | 100 |
concrete.session.cookie.cookie_path | false |
concrete.session.cookie.cookie_lifetime | 0 |
concrete.session.cookie.cookie_domain | false |
concrete.session.cookie.cookie_secure | false |
concrete.session.cookie.cookie_httponly | true |
concrete.session.cookie.cookie_raw | false |
concrete.session.cookie.cookie_samesite | null |
concrete.session.remember_me.lifetime | 1209600 |
concrete.user.registration.enabled | false |
concrete.user.registration.type | disabled |
concrete.user.registration.captcha | true |
concrete.user.registration.email_registration | false |
concrete.user.registration.display_username_field | true |
concrete.user.registration.display_confirm_password_field | true |
concrete.user.registration.validate_email | false |
concrete.user.registration.approval | false |
concrete.user.registration.notification | false |
concrete.user.group.badge.default_point_value | 50 |
concrete.user.username.maximum | 64 |
concrete.user.username.minimum | 3 |
concrete.user.username.allowed_characters.boundary | A-Za-z0-9 |
concrete.user.username.allowed_characters.middle | A-Za-z0-9_\. |
concrete.user.username.allowed_characters.requirement_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.username.allowed_characters.error_string | A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end). |
concrete.user.password.maximum | 128 |
concrete.user.password.minimum | 5 |
concrete.user.password.required_special_characters | 0 |
concrete.user.password.required_lower_case | 0 |
concrete.user.password.required_upper_case | 0 |
concrete.user.password.reuse | 0 |
concrete.user.password.hash_portable | false |
concrete.user.password.hash_cost_log2 | 12 |
concrete.user.password.legacy_salt | |
concrete.user.email.test_mx_record | false |
concrete.user.email.strict | true |
concrete.user.private_messages.throttle_max | 20 |
concrete.user.private_messages.throttle_max_timespan | 15 |
concrete.user.deactivation.enable_login_threshold_deactivation | false |
concrete.user.deactivation.login.threshold | 120 |
concrete.user.deactivation.authentication_failure.enabled | false |
concrete.user.deactivation.authentication_failure.amount | 5 |
concrete.user.deactivation.authentication_failure.duration | 300 |
concrete.user.deactivation.message | This user is inactive. Please contact us regarding this account. |
concrete.spam.whitelist_group | 0 |
concrete.spam.notify_email | |
concrete.calendar.colors.text | #ffffff |
concrete.calendar.colors.background | #3A87AD |
concrete.calendar.topic_attribute | event_categories |
concrete.security.session.invalidate_on_user_agent_mismatch | true |
concrete.security.session.invalidate_on_ip_mismatch | true |
concrete.security.session.invalidate_inactive_users.enabled | true |
concrete.security.session.invalidate_inactive_users.time | 21600 |
concrete.security.misc.x_frame_options | SAMEORIGIN |
concrete.permissions.forward_to_login | true |
concrete.permissions.model | simple |
concrete.seo.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 |
concrete.seo.url_rewriting | true |
concrete.seo.url_rewriting_all | false |
concrete.seo.redirect_to_canonical_url | 0 |
concrete.seo.canonical_url | null |
concrete.seo.canonical_url_alternative | null |
concrete.seo.trailing_slash | false |
concrete.seo.title_format | %2$s :: %1$s |
concrete.seo.title_segment_separator | :: |
concrete.seo.page_path_separator | - |
concrete.seo.group_name_separator | / |
concrete.seo.segment_max_length | 128 |
concrete.seo.paging_string | ccm_paging_p |
concrete.statistics.track_downloads | true |
concrete.limits.sitemap_pages | 100 |
concrete.limits.delete_pages | 100 |
concrete.limits.copy_pages | 10 |
concrete.limits.page_search_index_batch | 200 |
concrete.limits.job_queue_batch | 10 |
concrete.limits.style_customizer.size_min | -50 |
concrete.limits.style_customizer.size_max | 200 |
concrete.page.search.always_reindex | false |
concrete.composer.idle_timeout | 1 |
concrete.api.enabled | false |
concrete.api.grant_types.client_credentials | true |
concrete.api.grant_types.authorization_code | true |
concrete.api.grant_types.password_credentials | false |
concrete.api.grant_types.refresh_token | true |
concrete.mutex.semaphore.priority | 100 |
concrete.mutex.semaphore.class | Concrete\Core\System\Mutex\SemaphoreMutex |
concrete.mutex.file_lock.priority | 50 |
concrete.mutex.file_lock.class | Concrete\Core\System\Mutex\FileLockMutex |
concrete.style_customizer.updater.ignored_values.preset-fonts-file | Concrete\Core\StyleCustomizer\Style\Value\BasicValue |
concrete.version_db_installed | 20220319043123 |
concrete.site | 紙袋・不織布袋の尾崎紙工所 |
Key | Value |
ccm_order_by | cv.cvDatePublic |
ccm_order_by_direction | desc |
ccm_paging_p | 4 |
ccm_paging_p_b3679 | 11 |
ccm_order_by_b3679 | cv.cvDatePublic |
ccm_order_by_direction_b3679 | desc |
Key | Value |
HTTPS | on |
HTTP_HOST | www.fukuroyasan.jp |
HTTP_X_REAL_IP | 18.232.35.62 |
HTTP_X_SAKURA_FORWARDED_FOR | 18.232.35.62 |
HTTP_LISTEN_IPADDR | 219.94.192.64 |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | claudebot |
PATH | /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin |
SERVER_SIGNATURE | |
SERVER_SOFTWARE | Apache |
SERVER_NAME | www.fukuroyasan.jp |
SERVER_ADDR | 100.64.0.35 |
SERVER_PORT | 443 |
REMOTE_HOST | ec2-18-232-35-62.compute-1.amazonaws.com |
REMOTE_ADDR | 18.232.35.62 |
DOCUMENT_ROOT | /home/ozakico/www/concretetest0627 |
REQUEST_SCHEME | https |
CONTEXT_PREFIX | |
CONTEXT_DOCUMENT_ROOT | /home/ozakico/www/concretetest0627 |
SERVER_ADMIN | [no address given] |
SCRIPT_FILENAME | /home/ozakico/www/concretetest0627/index.php |
REMOTE_PORT | 0 |
GATEWAY_INTERFACE | CGI/1.1 |
SERVER_PROTOCOL | HTTP/1.1 |
REQUEST_METHOD | GET |
QUERY_STRING | ccm_order_by=cv.cvDatePublic&ccm_order_by_direction=desc&ccm_paging_p=4&ccm_paging_p_b3679=11&ccm_order_by_b3679=cv.cvDatePublic&ccm_order_by_direction_b3679=desc |
REQUEST_URI | /index/new_ozaki_blog/181116?ccm_order_by=cv.cvDatePublic&ccm_order_by_direction=desc&ccm_paging_p=4&ccm_paging_p_b3679=11&ccm_order_by_b3679=cv.cvDatePublic&ccm_order_by_direction_b3679=desc |
SCRIPT_NAME | /index.php |
PATH_INFO | /new_ozaki_blog/181116 |
PATH_TRANSLATED | redirect:/index.php/181116 |
PHP_SELF | /index.php/new_ozaki_blog/181116 |
REQUEST_TIME_FLOAT | 1711712584.441 |
REQUEST_TIME | 1711712584 |
argv | Array ( [0] => ccm_order_by=cv.cvDatePublic&ccm_order_by_direction=desc&ccm_paging_p=4&ccm_paging_p_b3679=11&ccm_order_by_b3679=cv.cvDatePublic&ccm_order_by_direction_b3679=desc ) |
argc | 1 |
Key | Value |
SERVER_PORT | 80 |
SERVER_ADDR | 100.64.0.1 |
HTTP_HOST | www1654.sakura.ne.jp |
CWD | /usr/local/apache/cgi-bin |
CONTEXT_DOCUMENT_ROOT | /usr/local/apache/cgi-bin/ |
QUERY_STRING | |
ORIG_SCRIPT_NAME | /cgi-bin/cpwrapper3 |
HTTP_X_FORWARDED_PORT | 80 |
ORIG_PATH_TRANSLATED | /usr/local/cpanel/api.php |
ACCOUNT | ozakico |
PATH | /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin |
DOCUMENT_ROOT | /usr/local/apache/htdocs |
SCRIPT_NAME | /cgi-bin/cpwrapper3 |
ORIG_SCRIPT_FILENAME | /usr/local/apache/cgi-bin/cpwrapper3 |
REDIRECT_STATUS | 200 |
PWD | /usr/local/cpanel |
REQUEST_METHOD | POST |
SERVER_SOFTWARE | Apache/2.4.54 |
SERVER_NAME | www1654.sakura.ne.jp |
SERVER_ADMIN | [no address given] |
CONTENT_LENGTH | 507 |
SERVER_PROTOCOL | HTTP/1.1 |
HOME | /home/ozakico |
CONTENT_TYPE | application/x-www-form-urlencoded |
SERVER_SIGNATURE | |
REQUEST_URI | /cgi-bin/cpwrapper3/api |
CONTEXT_PREFIX | /cgi-bin/ |
GATEWAY_INTERFACE | CGI/1.1 |
PHPRC | /home/ozakico/www |
REQUEST_SCHEME | http |
REDIRECT_URL | /cgi-bin/cpwrapper3 |
HTTP_COOKIE | SAKURA_RS_ACCOUNT=ozakico |
RENTALSERVER_DOMAIN | ozakico.sakura.ne.jp |
REMOTE_PORT | 0 |
ORIG_PATH_INFO | /api |
REMOTE_ADDR | 210.224.172.254 |
RC_PID | 73680 |
SCRIPT_FILENAME | /usr/local/cpanel/api.php |
HTTP_ACCEPT | */* |