case '1429':
case '2002':
case '2005':
return new ConnectionException($message, $exception);
case '2006':
return new ConnectionLost($message, $exception);
case '1048':
case '1121':
case '1138':
case '1171':
case '1252':
case '1263':
case '1364':
case '1566':
return new NotNullConstraintViolationException($message, $exception);
}
return new DriverException($message, $exception);
}
/**
* {@inheritdoc}
*
* @throws Exception
*/
public function createDatabasePlatformForVersion($version)
{
$mariadb = stripos($version, 'mariadb') !== false;
if ($mariadb && version_compare($this->getMariaDbMysqlVersionNumber($version), '10.2.7', '>=')) {
return new MariaDb1027Platform();
}
if (! $mariadb) {
$oracleMysqlVersion = $this->getOracleMysqlVersionNumber($version);
if (version_compare($oracleMysqlVersion, '8', '>=')) {
return new MySQL80Platform();
}
""" An exception occurred while executing 'INSERT INTO afxRedirectNotFound (rFrom, rReferer, rCount, rLastUsed) VALUES (?, ?, ?, ?)' with params ["\/catalog\/product_compare\/add\/product\/846\/uenc\/aHR0cDovL3d3dy5taXR1dG95by5jby51ay9zbWFsbC10b29sLWluc3RydW1lbnRzLWFuZC1kYXRhLW1hbmFnZW1lbnQvZ3Jhbml0ZS1zdXJmYWNlLXBsYXRlcz9TSUQ9Zjk4cXZuZWUxMjNwNWV0M2J1cThpYWdycjc,\/form_key\/QpdSnIBVjEElLerI\/", "http:\/\/www.mitutoyo.co.uk\/catalog\/product_compare\/add\/product\/846\/uenc\/aHR0cDovL3d3dy5taXR1dG95by5jby51ay9zbWFsbC10b29sLWluc3RydW1lbnRzLWFuZC1kYXRhLW1hbmFnZW1lbnQvZ3Jhbml0ZS1zdXJmYWNlLXBsYXRlcz9TSUQ9Zjk4cXZuZWUxMjNwNWV0M2J1cThpYWdycjc,\/form_key\/QpdSnIBVjEElLerI\/", 1, "2024-03-29 11:28:13"]:\n \n SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'rReferer' at row 1 """
* @deprecated
*
* @return Exception
*/
public static function driverException(Driver $driver, Throwable $driverEx)
{
return self::wrapException($driver, $driverEx, 'An exception occurred in driver: ' . $driverEx->getMessage());
}
/**
* @return Exception
*/
private static function wrapException(Driver $driver, Throwable $driverEx, string $msg)
{
if ($driverEx instanceof DriverException) {
return $driverEx;
}
if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DeprecatedDriverException) {
return $driver->convertException($msg, $driverEx);
}
return new Exception($msg, 0, $driverEx);
}
/**
* Returns a human-readable representation of an array of parameters.
* This properly handles binary data by returning a hex representation.
*
* @param mixed[] $params
*
* @return string
*/
private static function formatParameters(array $params)
{
return '[' . implode(', ', array_map(static function ($param) {
if (is_resource($param)) {
return (string) $param;
}
}
/**
* @deprecated
*
* @param string $sql
* @param mixed[] $params
*
* @return Exception
*/
public static function driverExceptionDuringQuery(Driver $driver, Throwable $driverEx, $sql, array $params = [])
{
$msg = "An exception occurred while executing '" . $sql . "'";
if ($params) {
$msg .= ' with params ' . self::formatParameters($params);
}
$msg .= ":\n\n" . $driverEx->getMessage();
return self::wrapException($driver, $driverEx, $msg);
}
/**
* @deprecated
*
* @return Exception
*/
public static function driverException(Driver $driver, Throwable $driverEx)
{
return self::wrapException($driver, $driverEx, 'An exception occurred in driver: ' . $driverEx->getMessage());
}
/**
* @return Exception
*/
private static function wrapException(Driver $driver, Throwable $driverEx, string $msg)
{
if ($driverEx instanceof DriverException) {
return $driverEx;
}
}
/**
* @internal
*
* @param array<int, mixed>|array<string, mixed> $params
* @param array<int, int|string|Type|null>|array<string, int|string|Type|null> $types
*
* @psalm-return never-return
*
* @throws Exception
*/
public function handleExceptionDuringQuery(Throwable $e, string $sql, array $params = [], array $types = []): void
{
$this->throw(
Exception::driverExceptionDuringQuery(
$this->_driver,
$e,
$sql,
$this->resolveParams($params, $types)
)
);
}
/**
* @internal
*
* @psalm-return never-return
*
* @throws Exception
*/
public function handleDriverException(Throwable $e): void
{
$this->throw(
Exception::driverException(
$this->_driver,
$e
)
);
}
'Statement::execute() is deprecated, use Statement::executeQuery() or Statement::executeStatement() instead'
);
if (is_array($params)) {
$this->params = $params;
}
$logger = $this->conn->getConfiguration()->getSQLLogger();
if ($logger) {
$logger->startQuery($this->sql, $this->params, $this->types);
}
try {
$stmt = $this->stmt->execute($params);
} catch (Throwable $ex) {
if ($logger) {
$logger->stopQuery();
}
$this->conn->handleExceptionDuringQuery($ex, $this->sql, $this->params, $this->types);
}
if ($logger) {
$logger->stopQuery();
}
return $stmt;
}
/**
* Executes the statement with the currently bound parameters and return result.
*
* @param mixed[] $params
*
* @throws Exception
*/
public function executeQuery(array $params = []): BaseResult
{
if ($params === []) {
$params = null; // Workaround as long execute() exists and used internally.
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\PDO;
use Doctrine\DBAL\Driver\PDOException;
/**
* @internal
*
* @psalm-immutable
*/
final class Exception extends PDOException
{
public static function new(\PDOException $exception): self
{
return new self($exception);
}
}
"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'rReferer' at row 1"
{
try {
return parent::closeCursor();
} catch (PDOException $exception) {
// Exceptions not allowed by the interface.
// In case driver implementations do not adhere to the interface, silence exceptions here.
return true;
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function execute($params = null)
{
try {
return parent::execute($params);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*
* @deprecated Use fetchNumeric(), fetchAssociative() or fetchOne() instead.
*/
#[ReturnTypeWillChange]
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
{
$args = func_get_args();
if (isset($args[0])) {
$args[0] = $this->convertFetchMode($args[0]);
}
try {
return parent::fetch(...$args);
} catch (PDOException $exception) {
#[ReturnTypeWillChange]
public function closeCursor()
{
try {
return parent::closeCursor();
} catch (PDOException $exception) {
// Exceptions not allowed by the interface.
// In case driver implementations do not adhere to the interface, silence exceptions here.
return true;
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function execute($params = null)
{
try {
return parent::execute($params);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*
* @deprecated Use fetchNumeric(), fetchAssociative() or fetchOne() instead.
*/
#[ReturnTypeWillChange]
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
{
$args = func_get_args();
if (isset($args[0])) {
$args[0] = $this->convertFetchMode($args[0]);
}
try {
"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'rReferer' at row 1"
#[ReturnTypeWillChange]
public function closeCursor()
{
try {
return parent::closeCursor();
} catch (PDOException $exception) {
// Exceptions not allowed by the interface.
// In case driver implementations do not adhere to the interface, silence exceptions here.
return true;
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function execute($params = null)
{
try {
return parent::execute($params);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*
* @deprecated Use fetchNumeric(), fetchAssociative() or fetchOne() instead.
*/
#[ReturnTypeWillChange]
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
{
$args = func_get_args();
if (isset($args[0])) {
$args[0] = $this->convertFetchMode($args[0]);
}
try {
*/
public function execute($params = null)
{
Deprecation::triggerIfCalledFromOutside(
'doctrine/dbal',
'https://github.com/doctrine/dbal/pull/4580',
'Statement::execute() is deprecated, use Statement::executeQuery() or Statement::executeStatement() instead'
);
if (is_array($params)) {
$this->params = $params;
}
$logger = $this->conn->getConfiguration()->getSQLLogger();
if ($logger) {
$logger->startQuery($this->sql, $this->params, $this->types);
}
try {
$stmt = $this->stmt->execute($params);
} catch (Throwable $ex) {
if ($logger) {
$logger->stopQuery();
}
$this->conn->handleExceptionDuringQuery($ex, $this->sql, $this->params, $this->types);
}
if ($logger) {
$logger->stopQuery();
}
return $stmt;
}
/**
* Executes the statement with the currently bound parameters and return result.
*
* @param mixed[] $params
*
$this->execute($params);
return new ForwardCompatibility\Result($this);
}
/**
* Executes the statement with the currently bound parameters and return affected rows.
*
* @param mixed[] $params
*
* @throws Exception
*/
public function executeStatement(array $params = []): int
{
if ($params === []) {
$params = null; // Workaround as long execute() exists and used internally.
}
$this->execute($params);
return $this->rowCount();
}
/**
* Closes the cursor, freeing the database resources used by this statement.
*
* @deprecated Use Result::free() instead.
*
* @return bool TRUE on success, FALSE on failure.
*/
public function closeCursor()
{
Deprecation::triggerIfCalledFromOutside(
'doctrine/dbal',
'https://github.com/doctrine/dbal/pull/4049',
'Statement::closeCursor() is deprecated, use Result::free() instead.'
);
return $this->stmt->closeCursor();
$postInsertIds = [];
$idGenerator = $this->class->idGenerator;
$isPostInsertId = $idGenerator->isPostInsertGenerator();
$stmt = $this->conn->prepare($this->getInsertSQL());
$tableName = $this->class->getTableName();
foreach ($this->queuedInserts as $entity) {
$insertData = $this->prepareInsertData($entity);
if (isset($insertData[$tableName])) {
$paramIndex = 1;
foreach ($insertData[$tableName] as $column => $value) {
$stmt->bindValue($paramIndex++, $value, $this->columnTypes[$column]);
}
}
$stmt->executeStatement();
if ($isPostInsertId) {
$generatedId = $idGenerator->generateId($this->em, $entity);
$id = [$this->class->identifier[0] => $generatedId];
$postInsertIds[] = [
'generatedId' => $generatedId,
'entity' => $entity,
];
} else {
$id = $this->class->getIdentifierValues($entity);
}
if ($this->class->requiresFetchAfterChange) {
$this->assignDefaultVersionAndUpsertableValues($entity, $id);
}
}
$this->queuedInserts = [];
return $postInsertIds;
$insertionsForClass = [];
foreach ($this->entityInsertions as $oid => $entity) {
if ($this->em->getClassMetadata(get_class($entity))->name !== $className) {
continue;
}
$insertionsForClass[$oid] = $entity;
$persister->addInsert($entity);
unset($this->entityInsertions[$oid]);
if ($invoke !== ListenersInvoker::INVOKE_NONE) {
$entities[] = $entity;
}
}
$postInsertIds = $persister->executeInserts();
if ($postInsertIds) {
// Persister returned post-insert IDs
foreach ($postInsertIds as $postInsertId) {
$idField = $class->getSingleIdentifierFieldName();
$idValue = $this->convertSingleFieldIdentifierToPHPValue($class, $postInsertId['generatedId']);
$entity = $postInsertId['entity'];
$oid = spl_object_id($entity);
$class->reflFields[$idField]->setValue($entity, $idValue);
$this->entityIdentifiers[$oid] = [$idField => $idValue];
$this->entityStates[$oid] = self::STATE_MANAGED;
$this->originalEntityData[$oid][$idField] = $idValue;
$this->addToIdentityMap($entity);
}
} else {
foreach ($insertionsForClass as $oid => $entity) {
// Now we need a commit order to maintain referential integrity
$commitOrder = $this->getCommitOrder();
$conn = $this->em->getConnection();
$conn->beginTransaction();
try {
// Collection deletions (deletions of complete collections)
foreach ($this->collectionDeletions as $collectionToDelete) {
// Deferred explicit tracked collections can be removed only when owning relation was persisted
$owner = $collectionToDelete->getOwner();
if ($this->em->getClassMetadata(get_class($owner))->isChangeTrackingDeferredImplicit() || $this->isScheduledForDirtyCheck($owner)) {
$this->getCollectionPersister($collectionToDelete->getMapping())->delete($collectionToDelete);
}
}
if ($this->entityInsertions) {
foreach ($commitOrder as $class) {
$this->executeInserts($class);
}
}
if ($this->entityUpdates) {
foreach ($commitOrder as $class) {
$this->executeUpdates($class);
}
}
// Extra updates that were requested by persisters.
if ($this->extraUpdates) {
$this->executeExtraUpdates();
}
// Collection updates (deleteRows, updateRows, insertRows)
foreach ($this->collectionUpdates as $collectionToUpdate) {
$this->getCollectionPersister($collectionToUpdate->getMapping())->update($collectionToUpdate);
}
// Entity deletions come last and need to be in reverse commit order
* @return void
*
* @throws OptimisticLockException If a version check on an entity that
* makes use of optimistic locking fails.
* @throws ORMException
*/
public function flush($entity = null)
{
if ($entity !== null) {
Deprecation::trigger(
'doctrine/orm',
'https://github.com/doctrine/orm/issues/8459',
'Calling %s() with any arguments to flush specific entities is deprecated and will not be supported in Doctrine ORM 3.0.',
__METHOD__
);
}
$this->errorIfClosed();
$this->unitOfWork->commit($entity);
}
/**
* Finds an Entity by its identifier.
*
* @param string $className The class name of the entity to find.
* @param mixed $id The identity of the entity to find.
* @param int|null $lockMode One of the \Doctrine\DBAL\LockMode::* constants
* or NULL if no specific lock mode should be used
* during the search.
* @param int|null $lockVersion The version of the entity to find when using
* optimistic locking.
* @psalm-param class-string<T> $className
* @psalm-param LockMode::*|null $lockMode
*
* @return object|null The entity instance or NULL if the entity can not be found.
* @psalm-return ?T
*
* @throws OptimisticLockException
* @throws ORMInvalidArgumentException
}
$dh = Core::make('helper/date');
$now = new \DateTime('now', $dh->getTimezone('user'));
// $em = ORM::entityManager();
$em = Core::make(DatabaseManagerORM::class)->entityManager();
$notfound = RedirectNotFound::getByUrl($url);
if (isset($notfound)) {
$notfound->rCount++;
$notfound->rLastUsed = $now;
$em->persist($notfound);
$em->flush();
} else {
$notfound = new RedirectNotFoundEntity();
$notfound->set('rFrom', $url);
$notfound->set('rReferer', $_SERVER['HTTP_REFERER'] ?? '');
$notfound->set('rCount', 1);
$notfound->set('rLastUsed', $now);
$em->persist($notfound);
$em->flush();
}
}
public static function convert_to_array($json){
$ignore_list_array = json_decode($json, true);
if($ignore_list_array === null) {
$ignore_list_array = json_decode('{"ignore_list":[]}', true);
}
$ret_array = array();
foreach ($ignore_list_array["ignore_list"] as $item) {
$url = $item["url"];
$url = strtolower(trim($url));
array_push($ret_array, $url);
}
return($ret_array);
}
public static function flipTrailingSlash($url)
{
$new_url = rtrim($url, "/");
if ($this->checkWildcard($request_url, $rule->rFrom)) {
$this->redirectOnRule($rule, $request_url);
return;
}
}
// RegEx Redirects
$rules = RedirectRule::getRegExs();
foreach ($rules as $rule) {
if ($this->checkRegEx($request_url, $rule->rFrom)) {
$this->redirectOnRule($rule, $request_url);
return;
}
}
}
// 404 Page Not Found
if ($is_page_not_found) {
if ($config->get('afixia_seo_redirects.log_urls_not_found')) {
RedirectNotFound::insertOrCount($request_url);
RedirectNotFound::limitCleanup($config->get('afixia_seo_redirects.not_found_limit'));
}
}
}
public function redirectOnRule($rule, $request_url)
{
$config = Core::make(Repository::class);
RedirectRule::incrementCount($rule);
$location_url = '';
// Page
if ($rule->rToCID > 0) {
$page = Page::getByID($rule->rToCID);
if (is_object($page) && !$page->isError()) {
$location_url = $page->getCollectionLink();
} else {
// Error
}
}
// Listen For CMS Changes
Events::addListener(
'on_file_delete', function ($event) { $this->app->make('afixia_seo_redirects/helper/seo_redirector')->on_file_delete($this, $event); }
);
Events::addListener(
'on_page_delete', function ($event) { $this->app->make('afixia_seo_redirects/helper/seo_redirector')->on_page_delete($this, $event); }
);
Events::addListener(
'on_page_move', function ($event) { $this->app->make('afixia_seo_redirects/helper/seo_redirector')->on_page_move($this, $event); }
);
Events::addListener(
'on_page_move_to_trash', function ($event) { $this->app->make('afixia_seo_redirects/helper/seo_redirector')->on_page_move_to_trash($this, $event); }
);
// Listen For Requests
Events::addListener(
'on_start', function ($event) { $this->app->make('afixia_seo_redirects/helper/seo_redirector')->on_request($this, $event); }
);
// Register Assets
$al = \AssetList::getInstance();
$al->register('javascript', 'afixia_seo_redirects', 'js/afixia_seo_redirects.js', array('minify' => false, 'position' => \Concrete\Core\Asset\Asset::ASSET_POSITION_HEADER, 'local'=>true, 'combine'=> false), 'afixia_seo_redirects');
$al->register('css', 'afixia_seo_redirects', 'css/afixia_seo_redirects.css', array('minify' => false, 'position' => \Concrete\Core\Asset\Asset::ASSET_POSITION_FOOTER, 'local'=>true, 'combine'=> false), 'afixia_seo_redirects');
$al->registerGroup('afixia_seo_redirects', array(
array('css', 'afixia_seo_redirects'),
array('javascript', 'afixia_seo_redirects')
));
}
}
/**
* Triggers the listeners of an event.
*
* This method can be overridden to add functionality that is executed
* for each listener.
*
* @param callable[] $listeners The event listeners
* @param string $eventName The name of the event to dispatch
* @param object $event The event object to pass to the event handlers/listeners
*/
protected function callListeners(iterable $listeners, string $eventName, object $event)
{
$stoppable = $event instanceof StoppableEventInterface;
foreach ($listeners as $listener) {
if ($stoppable && $event->isPropagationStopped()) {
break;
}
$listener($event, $eventName, $this);
}
}
/**
* Sorts the internal list of listeners for the given event by priority.
*/
private function sortListeners(string $eventName)
{
krsort($this->listeners[$eventName]);
$this->sorted[$eventName] = [];
foreach ($this->listeners[$eventName] as &$listeners) {
foreach ($listeners as $k => &$listener) {
if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
$listener[0] = $listener[0]();
$listener[1] = $listener[1] ?? '__invoke';
}
$this->sorted[$eventName][] = $listener;
}
}
if (__CLASS__ === static::class) {
$this->optimized = [];
}
}
/**
* {@inheritdoc}
*/
public function dispatch(object $event, ?string $eventName = null): object
{
$eventName = $eventName ?? \get_class($event);
if (null !== $this->optimized) {
$listeners = $this->optimized[$eventName] ?? (empty($this->listeners[$eventName]) ? [] : $this->optimizeListeners($eventName));
} else {
$listeners = $this->getListeners($eventName);
}
if ($listeners) {
$this->callListeners($listeners, $eventName, $event);
}
return $event;
}
/**
* {@inheritdoc}
*/
public function getListeners(?string $eventName = null)
{
if (null !== $eventName) {
if (empty($this->listeners[$eventName])) {
return [];
}
if (!isset($this->sorted[$eventName])) {
$this->sortListeners($eventName);
}
return $this->sorted[$eventName];
/**
* @var SymfonyEventDispatcher
*/
protected $eventDispatcher;
public function __construct(SymfonyEventDispatcher $eventDispatcher)
{
$this->eventDispatcher = $eventDispatcher;
}
/**
* {@inheritdoc}
*/
public function dispatch($eventName, object $event = null)
{
if (null === $event) {
$event = new Event();
}
return $this->eventDispatcher->dispatch($event, $eventName);
}
public function __call($name, $arguments)
{
return $this->eventDispatcher->$name(...$arguments);
}
/**
* @return SymfonyEventDispatcher
*/
public function getEventDispatcher(): SymfonyEventDispatcher
{
return $this->eventDispatcher;
}
}
* @param array $args
*
* @return mixed
*/
public static function __callStatic($method, $args)
{
$instance = static::resolveFacadeInstance(static::getFacadeAccessor());
if (!method_exists($instance, $method) && !method_exists($instance, '__call')) {
throw new \Exception(t('Invalid Method on class %s: %s.', get_class($instance), $method));
}
switch (count($args)) {
case 0:
return $instance->$method();
case 1:
return $instance->$method($args[0]);
case 2:
return $instance->$method($args[0], $args[1]);
case 3:
return $instance->$method($args[0], $args[1], $args[2]);
case 4:
return $instance->$method($args[0], $args[1], $args[2], $args[3]);
default:
return call_user_func_array(array($instance, $method), $args);
}
}
}
}
$this->setInnerContentFile($innerContentFilePath);
}
if ($this->themeHandle) {
if (is_object($this->controller)) {
$this->controller->setViewObject($this);
$templateFile = $this->controller->getThemeViewTemplate();
} else {
$templateFile = $this->getViewTemplateFile();
}
$this->setViewTemplate($env->getPath(DIRNAME_THEMES.'/'.$this->themeHandle.'/'.$templateFile, $this->themePkgHandle));
}
}
public function startRender()
{
$event = new \Symfony\Component\EventDispatcher\GenericEvent();
$event->setArgument('view', $this);
Events::dispatch('on_start', $event);
parent::startRender();
}
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);
}
$env->getPath(
DIRNAME_PAGE_TEMPLATES . '/' . $this->c->getPageTemplateHandle() . '.php',
$pTemplatePkgHandle));
$this->setViewTemplate(
$env->getPath(
DIRNAME_THEMES . '/' . $this->themeHandle . '/' . $this->controller->getThemeViewTemplate(),
$this->themePkgHandle));
} else {
$this->setViewTemplate(
$env->getPath(
DIRNAME_THEMES . '/' . $this->themeHandle . '/' . FILENAME_THEMES_DEFAULT,
$this->themePkgHandle));
}
}
}
}
public function startRender()
{
parent::startRender();
$this->c->outputCustomStyleHeaderItems();
// do we have any custom menu plugins?
$cp = new Permissions($this->c);
$this->cp = $cp;
if ($cp->canViewToolbar()) {
$dh = Loader::helper('concrete/dashboard');
if (!$dh->inDashboard()
&& $this->c->getCollectionPath() != '/page_not_found'
&& $this->c->getCollectionPath() != '/download_file'
&& !$this->c->isPageDraft()
&& !$this->c->isMasterCollection()
) {
$app = Application::getFacadeApplication();
$u = $app->make(User::class);
$u->markPreviousFrontendPage($this->c);
}
}
}
public function finishRender($contents)
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();
$contents = ob_get_contents();
<?php
namespace Concrete\Controller\SinglePage;
use Concrete\Core\Http\Response;
use Concrete\Core\Page\Controller\PageController;
use Events;
class PageNotFound extends PageController
{
public function validateRequest()
{
return true;
}
public function view()
{
$view = $this->getViewObject();
$contents = $view->render();
Events::dispatch('on_page_not_found');
return new Response($contents, 404);
}
public function __call($method, $arguments)
{
if (method_exists($this, $method)) {
return call_user_func_array(array($this, $method), $arguments);
}
return $this->view();
}
}
public function runTask($action, $parameters)
{
$this->runAction($action, $parameters);
}
/**
* Perform an action of this controller (if shouldRunControllerTask returns true).
*
* @param string $action the action to be performed
* @param array $parameters the action parameters
*
* @return mixed in case the action is executed, you'll receive the result of the action, or NULL otherwise
*/
public function runAction($action, $parameters = [])
{
$this->action = $action;
$this->parameters = $parameters;
if (is_callable([$this, $action])) {
if ($this->shouldRunControllerTask()) {
return call_user_func_array([$this, $action], $parameters);
}
}
}
/**
* Get the whole $_REQUEST array or a specific requested value.
*
* @param string|null $key set to null to get the whole $_REQUEST array, or a string to get a specific value in $_GET or in $_POST
*
* @return mixed
*/
public function request($key = null)
{
return Request::request($key);
}
/**
* Dispatches a command to the command bus.
* @param mixed $command
*/
public function runTask($action, $parameters)
{
$this->runAction($action, $parameters);
}
/**
* Perform an action of this controller (if shouldRunControllerTask returns true).
*
* @param string $action the action to be performed
* @param array $parameters the action parameters
*
* @return mixed in case the action is executed, you'll receive the result of the action, or NULL otherwise
*/
public function runAction($action, $parameters = [])
{
$this->action = $action;
$this->parameters = $parameters;
if (is_callable([$this, $action])) {
if ($this->shouldRunControllerTask()) {
return call_user_func_array([$this, $action], $parameters);
}
}
}
/**
* Get the whole $_REQUEST array or a specific requested value.
*
* @param string|null $key set to null to get the whole $_REQUEST array, or a string to get a specific value in $_GET or in $_POST
*
* @return mixed
*/
public function request($key = null)
{
return Request::request($key);
}
/**
* Dispatches a command to the command bus.
* @param mixed $command
*/
if ($controller instanceof PageController) {
if ($controller->isReplaced()) {
return $this->controller($controller->getReplacement(), $code, $headers);
}
$controller->setupRequestActionAndParameters($request);
$response = $controller->validateRequest();
// If validaterequest returned a response
if ($response instanceof \Symfony\Component\HttpFoundation\Response) {
return $response;
} else {
// If validateRequest did not return true
if ($response == false) {
return $this->notFound('', Response::HTTP_NOT_FOUND, $headers);
}
}
$requestTask = $controller->getRequestAction();
$requestParameters = $controller->getRequestActionParameters();
$response = $controller->runAction($requestTask, $requestParameters);
if ($response instanceof \Symfony\Component\HttpFoundation\Response) {
return $response;
}
if ($controller->isReplaced()) {
return $this->controller($controller->getReplacement(), $code, $headers);
}
} else {
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) {
$this->localization->pushActiveContext(Localization::CONTEXT_SITE);
$responseData = [
'error' => t('Page not found'),
'errors' => [t('Page not found')],
];
$this->localization->popActiveContext();
return $this->json($responseData, $code, $headers);
}
$item = '/page_not_found';
$c = Page::getByPath($item);
if (is_object($c) && !$c->isError()) {
// Display not found
$dl = $this->app->make('multilingual/detector');
$dl->setupSiteInterfaceLocalization($c);
$this->request->setCurrentPage($c);
return $this->controller($c->getPageController(), $code, $headers);
}
$cnt = $this->app->make(PageForbidden::class);
return $this->controller($cnt, $code, $headers);
}
/**
* {@inheritdoc}
*/
public function error($content, $code = Response::HTTP_INTERNAL_SERVER_ERROR, $headers = [])
{
return $this->create($content, $code, $headers);
}
/**
* {@inheritdoc}
*/
public function forbidden($requestUrl, $code = Response::HTTP_FORBIDDEN, $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) {
return $this->controller($homeController);
} else {
return $this->notFound('', Response::HTTP_NOT_FOUND, $headers);
}
}
}
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;
}
}
if ($collection->getCollectionPath() != '/page_not_found') {
if (!isset($collection->cPathFetchIsCanonical) || !$collection->cPathFetchIsCanonical) {
// Handle redirect URL (additional page paths)
/** @var Url $url */
$url = $this->app->make('url/manager')->resolve([$collection]);
$query = $url->getQuery();
$query->modify($request->getQueryString());
$url = $url->setQuery($query);
return $this->redirect($url, Response::HTTP_MOVED_PERMANENTLY, $headers);
}
}
// maintenance mode
if ($collection->getCollectionPath() != '/login') {
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);
}
}
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 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;
}
}
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 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;
}
}
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, ['dispatcher' => $this->dispatcher]));
}
return $stack->process($request);
}
}
// Handle loading permission keys
'handlePermissionKeys',
// Handle eventing
'handleEventing',
]);
} else {
$this->initializeSystemTimezone();
$this->preloadClassAliases();
}
// Create the request to use
$request = $this->createRequest();
if (!$response) {
if ($this->shouldProcessRequest($request) === false) {
return null;
}
$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 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 –
"/var/www/html/updates/concrete9.2.7/concrete/dispatcher.php"
<?php
if (!defined('PHP_VERSION_ID') || PHP_VERSION_ID < 70209) {
die("Concrete requires PHP 7.2.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 Concrete startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
"/var/www/html/concrete/bootstrap/configure.php"
<?php
//TODO: TEST, REMOVE WORKAROUND FOR STAGING (HTTP_HOST needs to contain the domain for multisite-features)
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_SERVER'];
require 'concrete/dispatcher.php';
"/var/www/html/concrete/dispatcher.php"
Key | Value |
Version | "9.2.7"
|
Installed Version | "9.2.7"
|
Database Version | "20240122172319"
|
Key | Value |
Version | "8.1.2-1ubuntu2.14"
|
Extensions | array:51 [ "Core" => "8.1.2-1ubuntu2.14" "date" => "8.1.2-1ubuntu2.14" "libxml" => "8.1.2-1ubuntu2.14" "openssl" => "8.1.2-1ubuntu2.14" "pcre" => "8.1.2-1ubuntu2.14" "zlib" => "8.1.2-1ubuntu2.14" "filter" => "8.1.2-1ubuntu2.14" "hash" => "8.1.2-1ubuntu2.14" "json" => "8.1.2-1ubuntu2.14" "Reflection" => "8.1.2-1ubuntu2.14" "SPL" => "8.1.2-1ubuntu2.14" "session" => "8.1.2-1ubuntu2.14" "standard" => "8.1.2-1ubuntu2.14" "sodium" => "8.1.2-1ubuntu2.14" "apache2handler" => "8.1.2-1ubuntu2.14" "mysqlnd" => "mysqlnd 8.1.2-1ubuntu2.14" "PDO" => "8.1.2-1ubuntu2.14" "xml" => "8.1.2-1ubuntu2.14" "calendar" => "8.1.2-1ubuntu2.14" "ctype" => "8.1.2-1ubuntu2.14" "curl" => "8.1.2-1ubuntu2.14" "dom" => "20031129" "mbstring" => "8.1.2-1ubuntu2.14" "FFI" => "8.1.2-1ubuntu2.14" "fileinfo" => "8.1.2-1ubuntu2.14" "ftp" => "8.1.2-1ubuntu2.14" "gd" => "8.1.2-1ubuntu2.14" "gettext" => "8.1.2-1ubuntu2.14" "iconv" => "8.1.2-1ubuntu2.14" "exif" => "8.1.2-1ubuntu2.14" "mysqli" => "8.1.2-1ubuntu2.14" "pdo_mysql" => "8.1.2-1ubuntu2.14" "pdo_pgsql" => "8.1.2-1ubuntu2.14" "pdo_sqlite" => "8.1.2-1ubuntu2.14" "pgsql" => "8.1.2-1ubuntu2.14" "Phar" => "8.1.2-1ubuntu2.14" "posix" => "8.1.2-1ubuntu2.14" "readline" => "8.1.2-1ubuntu2.14" "shmop" => "8.1.2-1ubuntu2.14" "SimpleXML" => "8.1.2-1ubuntu2.14" "sockets" => "8.1.2-1ubuntu2.14" "sqlite3" => "8.1.2-1ubuntu2.14" "sysvmsg" => "8.1.2-1ubuntu2.14" "sysvsem" => "8.1.2-1ubuntu2.14" "sysvshm" => "8.1.2-1ubuntu2.14" "tokenizer" => "8.1.2-1ubuntu2.14" "xmlreader" => "8.1.2-1ubuntu2.14" "xmlwriter" => "8.1.2-1ubuntu2.14" "xsl" => "8.1.2-1ubuntu2.14" "zip" => "1.19.5" "Zend OPcache" => "8.1.2-1ubuntu2.14" ] |
Key | Value |
concrete | array:57 [ "version" => "9.2.7" "version_installed" => "9.2.7" "version_db" => "20240122172319" "installed" => true "locale" => "de_DE" "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" => "*.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;*.webp;*.ics;*.zip;*.rar" "extensions_denylist" => "*.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi" "parallel" => 4 "chunking" => array:2 [ "enabled" => true "chunkSize" => 262144000 ] ] "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" => "10.49.40.4" "port" => "" "username" => "MT@mitutoyo.de" "password" => "************" "encryption" => "SSL" "messages_per_connection" => null "helo_domain" => "" ] ] ] "cache" => array:18 [ "enabled" => true "lifetime" => 21600 "overrides" => true "blocks" => true "assets" => true "theme_css" => true "pages" => "all" "doctrine_dev_mode" => false "full_page_lifetime" => "default" "full_page_lifetime_block" => false "full_page_lifetime_value" => null "full_contents_assets_hash" => false "directory" => "/var/www/html/application/files/cache" "directory_relative" => null "page" => array:2 [ "directory" => "/var/www/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" => "/var/www/html/application/files/cache/overrides" "dirPermissions" => 511 "filePermissions" => 438 ] ] "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" => "/var/www/html/application/files/cache/expensive" "dirPermissions" => 511 "filePermissions" => 438 ] ] "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" => false ] "last_cleared" => 1711442584 ] "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" => true ] "delete_threshold" => 7 ] "messenger" => array:7 [ "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" ] "failure" => array:2 [ "default_receiver" => "failed" "transports" => array:1 [ 0 => "Concrete\Core\Messenger\Transport\DefaultFailed\DefaultFailedTransport" ] ] "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" => 1 "errors" => 1 "spam" => null "api" => 0 "enable_dashboard_report" => true "configuration" => array:3 [ "mode" => "simple" "simple" => array:3 [ "core_logging_level" => "ERROR" "handler" => "database" "file" => array:1 [ "file" => null ] ] "advanced" => array:1 [ "configuration" => [] ] ] ] "jobs" => array:1 [ "enable_scheduling" => true ] "filesystem" => array:2 [ "temp_directory" => null "permissions" => array:2 [ "file" => 438 "directory" => 511 ] ] "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" => "kh@designverign.de" "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" => "/var/www/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" "help_overlay" => true "require_version_comments" => false "enable_move_blocktypes_across_sets" => false "generator_tag_display_in_header" => true "login_redirect" => "CUSTOM" "access_entity_updated" => 1710150448 "latest_version" => "9.1.1" "login_redirect_cid" => 4 ] "theme" => array:2 [ "compress_preprocessor_output" => true "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:4 [ "width" => 120 "height" => 120 "default" => "/updates/concrete9.2.7/concrete/images/avatar_none.png" "resolution" => "2" ] ] "file_manager" => array:7 [ "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" "enable_filename_asciify" => true ] "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" => "1" "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" => "https://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" => true "email_registration" => false "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:14 [ "maximum" => 128 "minimum" => 5 "required_special_characters" => 0 "required_lower_case" => 0 "required_upper_case" => 0 "reuse" => 0 "max_age" => null "custom_regex" => [] "hash_algorithm" => "2y" "hash_options" => [] "hash_portable" => false "hash_cost_log2" => 12 "legacy_salt" => "" "reset_message" => array:2 [ "password_reset" => "" "password_expired" => "" ] ] "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" => "-1" "notify_email" => "" ] "calendar" => array:1 [ "colors" => array:2 [ "text" => "#ffffff" "background" => "#3A87AD" ] ] "security" => array:4 [ "session" => array:5 [ "invalidate_on_user_agent_mismatch" => true "invalidate_on_ip_mismatch" => true "ignored_ip_mismatches" => [] "enable_user_specific_ignored_ip_mismatches" => false "invalidate_inactive_users" => array:2 [ "enabled" => false "time" => 300 ] ] "production" => array:2 [ "mode" => "production" "staging" => array:1 [ "show_notification_to_unregistered_users" => false ] ] "misc" => array:3 [ "content_security_policy" => false "strict_transport_security" => false "x_frame_options" => "SAMEORIGIN" ] "trusted_proxies" => array:2 [ "headers" => 0 "ips" => [] ] ] "permissions" => array:2 [ "forward_to_login" => true "model" => "advanced" ] "seo" => array:14 [ "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" "enable_slug_asciify" => true "url_rewriting" => true "url_rewriting_all" => false "redirect_to_canonical_url" => false "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" => "20240122172319" "multisite" => array:1 [ "enabled" => true ] "site" => "UK" ] |
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:61 [ "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_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_health" => "\Concrete\Core\Health\HealthServiceProvider" "core_html" => "\Concrete\Core\Html\HtmlServiceProvider" "core_editor" => "\Concrete\Core\Editor\EditorServiceProvider" "core_image_editor" => "\Concrete\Core\ImageEditor\ImageEditorServiceProvider" "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_announcement" => "\Concrete\Core\Announcement\AnnouncementServiceProvider" "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" "core_api" => "Concrete\Core\Api\ApiServiceProvider" ] "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:39 [ 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 => "tree_type" 9 => "tree_node_type" 10 => "express_entity" 11 => "captcha_library" 12 => "container" 13 => "content_editor_snippet" 14 => "conversation_rating_type" 15 => "geolocator_library" 16 => "group" 17 => "group_set" 18 => "ip_access_control_category" 19 => "job" 20 => "mail_importer" 21 => "permission_access_entity_type" 22 => "permission_key" 23 => "permission_key_category" 24 => "page_template" 25 => "site_type" 26 => "page_type" 27 => "page_type_composer_control_type" 28 => "page_type_publish_target_type" 29 => "single_page" 30 => "storage_location_type" 31 => "theme" 32 => "workflow" 33 => "workflow_progress_category" 34 => "workflow_type" 35 => "external_file_provider_type" 36 => "image_editor" 37 => "task" 38 => "task_set" ] "importer_routines" => array:62 [ 0 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypesRoutine" 1 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGroupsRoutine" 2 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTreeTypesRoutine" 3 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTreeNodeTypesRoutine" 4 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageStructureRoutine" 5 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksStructureRoutine" 6 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypesRoutine" 7 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBlockTypeSetsRoutine" 8 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationEditorsRoutine" 9 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationRatingTypesRoutine" 10 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConversationFlagTypesRoutine" 11 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypePublishTargetTypesRoutine" 12 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeComposerControlTypesRoutine" 13 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBannedWordsRoutine" 14 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSocialLinksRoutine" 15 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportDesignTagsRoutine" 16 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTreesRoutine" 17 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportFileImportantThumbnailTypesRoutine" 18 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardDataSourcesRoutine" 19 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardTemplatesRoutine" 20 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardSlotTemplatesRoutine" 21 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeCategoriesRoutine" 22 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeTypesRoutine" 23 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowTypesRoutine" 24 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowProgressCategoriesRoutine" 25 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportWorkflowsRoutine" 26 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressEntitiesRoutine" 27 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributesRoutine" 28 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportAttributeSetsRoutine" 29 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressAssociationsRoutine" 30 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressFormsRoutine" 31 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportExpressRelationsRoutine" 32 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportThemesRoutine" 33 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionKeyCategoriesRoutine" 34 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionAccessEntityTypesRoutine" 35 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPermissionsRoutine" 36 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTasksRoutine" 37 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportTaskSetsRoutine" 38 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobsRoutine" 39 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportJobSetsRoutine" 40 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTemplatesRoutine" 41 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportContainersRoutine" 42 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryCategoriesRoutine" 43 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryFieldsRoutine" 44 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSummaryTemplatesRoutine" 45 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypesBaseRoutine" 46 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageStructureRoutine" 47 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportBoardsRoutine" 48 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageFeedsRoutine" 49 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeTargetsRoutine" 50 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageTypeDefaultsRoutine" 51 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSiteTypeSkeletonsRoutine" 52 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSinglePageContentRoutine" 53 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportStacksContentRoutine" 54 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPageContentRoutine" 55 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportPackagesRoutine" 56 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportConfigValuesRoutine" 57 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemCaptchaLibrariesRoutine" 58 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportSystemContentEditorSnippetsRoutine" 59 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportGeolocatorsRoutine" 60 => "Concrete\Core\Backup\ContentImporter\Importer\Routine\ImportIpAccessControlCategoriesRoutine" 61 => "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:54 [ "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:2 [ "minify" => false "combine" => false ] ] 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/forms/frontend" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "js/features/forms/frontend.js" 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 ] ] ] "feature/staging/frontend" => array:1 [ 0 => array:3 [ 0 => "css" 1 => "css/features/staging/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" ] ] "parallax" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/parallax.min.js" 2 => array:3 [ "position" => "F" "minify" => false "combine" => true ] ] ] "cmp" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/cmpintegration.e45f65843347cc6faa52.bundle.js" 2 => array:3 [ "position" => "H" "minify" => false "combine" => true ] ] ] "parsley" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/parsley/parsley.min.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "smoothscroll-polyfill" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/smoothscroll.min.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "scroll-to" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/jquery.scrollTo.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "drag-slider" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/drag-slider.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "magic-tabs" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/magic-tabs.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "fancybox" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/fancybox.umd.js" 2 => array:3 [ "position" => "F" "minify" => false "combine" => true ] ] ] "slick" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/slick.min.js" 2 => array:3 [ "position" => "F" "minify" => false "combine" => true ] ] ] "selectric" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/jquery.selectric.min.js" 2 => array:3 [ "position" => "F" "minify" => false "combine" => true ] ] ] "scrollbar" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/vendor/jquery.scrollbar.min.js" 2 => array:3 [ "position" => "F" "minify" => false "combine" => true ] ] ] "theme_main" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/main.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "theme_forms" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/forms.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "navigation" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/navigation.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "shop_navigation" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/shop-navigation.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "slider" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/slider.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "teaser" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/teaser.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] "multiselect" => array:1 [ 0 => array:3 [ 0 => "javascript" 1 => "themes/mitutoyo/js/multiselect.js" 2 => array:3 [ "position" => "F" "minify" => true "combine" => true ] ] ] ] "asset_groups" => array:34 [ "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/forms/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "javascript" 1 => "feature/forms/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/staging/frontend" => array:1 [ 0 => array:1 [ 0 => array:2 [ 0 => "css" 1 => "feature/staging/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" => "UTC" ] |
Key | Value |
REDIRECT_NO_AUTH | "*"
|
REDIRECT_HTTPS | "**"
|
REDIRECT_SSL_TLS_SNI | "******************"
|
REDIRECT_STATUS | "***"
|
NO_AUTH | "*"
|
HTTPS | "**"
|
SSL_TLS_SNI | "******************"
|
SSL_SERVER_S_DN_CN | "*******************"
|
SSL_SERVER_I_DN_C | "**"
|
SSL_SERVER_I_DN_O | "************"
|
SSL_SERVER_I_DN_OU | "****************"
|
SSL_SERVER_I_DN_CN | "************************************"
|
SSL_SERVER_SAN_DNS_0 | "*******************"
|
SSL_VERSION_INTERFACE | "**************"
|
SSL_VERSION_LIBRARY | "*************"
|
SSL_PROTOCOL | "*******"
|
SSL_SECURE_RENEG | "****"
|
SSL_COMPRESS_METHOD | "****"
|
SSL_CIPHER | "**********************"
|
SSL_CIPHER_EXPORT | "*****"
|
SSL_CIPHER_USEKEYSIZE | "***"
|
SSL_CIPHER_ALGKEYSIZE | "***"
|
SSL_CLIENT_VERIFY | "****"
|
SSL_SERVER_M_VERSION | "*"
|
SSL_SERVER_M_SERIAL | "********************************"
|
SSL_SERVER_V_START | "************************"
|
SSL_SERVER_V_END | "************************"
|
SSL_SERVER_S_DN | "**********************"
|
SSL_SERVER_I_DN | "*******************************************************************************"
|
SSL_SERVER_A_KEY | "*************"
|
SSL_SERVER_A_SIG | "***********************"
|
SSL_SESSION_ID | "****************************************************************"
|
SSL_SESSION_RESUMED | "*******"
|
HTTP_HOST | "******************"
|
HTTP_ACCEPT | "***"
|
HTTP_USER_AGENT | "*********"
|
HTTP_REFERER | "**********************************************************************************************************************************************************************************************************************************************************************"
|
HTTP_X_FORWARDED_PROTO | "*****"
|
HTTP_X_FORWARDED_FOR | "***********"
|
HTTP_X_FORWARDED_HOST | "******************"
|
HTTP_X_FORWARDED_SERVER | "******************"
|
HTTP_CONNECTION | "**********"
|
PATH | "**********************************************************************"
|
SERVER_SIGNATURE | "********************************************************************************"
|
SERVER_SOFTWARE | "**********************"
|
SERVER_NAME | "******************"
|
SERVER_ADDR | "************"
|
SERVER_PORT | "***"
|
REMOTE_ADDR | "************"
|
DOCUMENT_ROOT | "*************"
|
REQUEST_SCHEME | "*****"
|
CONTEXT_PREFIX | "" |
CONTEXT_DOCUMENT_ROOT | "*************"
|
SERVER_ADMIN | "*******************"
|
SCRIPT_FILENAME | "***********************"
|
REMOTE_PORT | "*****"
|
REDIRECT_URL | "*********************************************************************************************************************************************************************************************************************************************"
|
GATEWAY_INTERFACE | "*******"
|
SERVER_PROTOCOL | "********"
|
REQUEST_METHOD | "***"
|
QUERY_STRING | "" |
REQUEST_URI | "*********************************************************************************************************************************************************************************************************************************************"
|
SCRIPT_NAME | "**********"
|
PHP_SELF | "**********"
|
REQUEST_TIME_FLOAT | "***"
|
REQUEST_TIME | "***"
|