/var
/app
/current
/vendor
/twig
/twig
/src
/Template.php
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
/**
* Auto-generated method to display the template with the given context.
*
* @param array $context An array of parameters to pass to the template
* @param array $blocks An array of blocks to pass to the template
*/
abstract protected function doDisplay(array $context, array $blocks = []);
/**
* Returns a variable from the context.
*
* This method is for internal use only and should never be called
* directly.
*
Arguments
"An exception has been thrown during the rendering of a template ("429 Too Many Requests /agents_%2A/_search") in "@Page:/var/app/current/user/pages/02.nos-conseillers/fiche" at line 8."
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Connections
/Connection.php
if (array_search($response['status'], $ignore) !== false) {
return null;
}
$responseBody = $this->convertBodyToString($response['body'], $statusCode, $exception);
if ($statusCode === 401) {
$exception = new Unauthorized401Exception($responseBody, $statusCode);
} elseif ($statusCode === 403) {
$exception = new Forbidden403Exception($responseBody, $statusCode);
} elseif ($statusCode === 404) {
$exception = new Missing404Exception($responseBody, $statusCode);
} elseif ($statusCode === 409) {
$exception = new Conflict409Exception($responseBody, $statusCode);
} elseif ($statusCode === 400 && strpos($responseBody, 'script_lang not supported') !== false) {
$exception = new ScriptLangNotSupportedException($responseBody. $statusCode);
} elseif ($statusCode === 408) {
$exception = new RequestTimeout408Exception($responseBody, $statusCode);
} else {
$exception = new BadRequest400Exception($responseBody, $statusCode);
}
$this->logRequestFail($request, $response, $exception);
throw $exception;
}
private function process5xxError(array $request, array $response, array $ignore): ?ElasticsearchException
{
$statusCode = (int) $response['status'];
$responseBody = $response['body'];
/**
* @var \Exception $exception
*/
$exception = $this->tryDeserialize500Error($response);
$exceptionText = "[$statusCode Server Exception] ".$exception->getMessage();
$this->log->error($exceptionText);
$this->log->error($exception->getTraceAsString());
Arguments
"429 Too Many Requests /agents_%2A/_search"
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Connections
/Connection.php
}
} else {
$connection->markAlive();
if (isset($response['headers']['Warning'])) {
$this->logWarning($request, $response);
}
if (isset($response['body']) === true) {
$response['body'] = stream_get_contents($response['body']);
$this->lastRequest['response']['body'] = $response['body'];
}
if ($response['status'] >= 400 && $response['status'] < 500) {
$ignore = $request['client']['ignore'] ?? [];
// Skip 404 if succeeded true in the body (e.g. clear_scroll)
$body = $response['body'] ?? '';
if (strpos($body, '"succeeded":true') !== false) {
$ignore[] = 404;
}
$this->process4xxError($request, $response, $ignore);
} elseif ($response['status'] >= 500) {
$ignore = $request['client']['ignore'] ?? [];
$this->process5xxError($request, $response, $ignore);
}
// No error, deserialize
$response['body'] = $this->serializer->deserialize($response['body'], $response['transfer_stats']);
}
$this->logRequestSuccess($request, $response);
return isset($request['client']['verbose']) && $request['client']['verbose'] === true ? $response : $response['body'];
}
);
return $response;
};
}
private function getURI(string $uri, ?array $params): string
{
Arguments
array:6 [
"http_method" => "POST"
"scheme" => "https"
"uri" => "/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"body" => "{"query":{"bool":{"must":[{"match":{"active":true}},{"match":{"bu":"OPTIMHOME"}},{"bool":{"must_not":{"terms":{"source.id":[400,2662,3292,720,1,5167,177,7907,4999,979,5538,7908,38,7957,8084,8078,8158,9299,9368,540,7905,12370,10481]}}}},{"bool":{"should":[{"match":{"source.name":"tremplin"}},{"match":{"source.name":"intranet"}}],"minimum_should_match":1}},{"match_phrase":{"source.login":{"query":"arpaia"}}},{"exists":{"field":"geolocation.city"}}]}}}"
"headers" => array:4 [
"Host" => array:1 [
0 => "search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com"
]
"Content-Type" => array:1 [
0 => "application/json"
]
"Accept" => array:1 [
0 => "application/json"
]
"User-Agent" => array:1 [
0 => "elasticsearch-php/7.10.0 (Linux 4.14.275-142.503.amzn1.x86_64; PHP 7.2.34)"
]
]
"client" => array:2 [
"port_in_header" => false
"curl" => array:1 [
3 => 443
]
]
]
array:8 [
"transfer_stats" => array:28 [
"url" => "https://search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"content_type" => "text/plain;charset=ISO-8859-1"
"http_code" => 429
"header_size" => 160
"request_size" => 1015
"filetime" => -1
"ssl_verify_result" => 0
"redirect_count" => 0
"total_time" => 0.002227
"namelookup_time" => 3.6E-5
"connect_time" => 3.7E-5
"pretransfer_time" => 0.000103
"size_upload" => 453.0
"size_download" => 41.0
"speed_download" => 20500.0
"speed_upload" => 226500.0
"download_content_length" => 41.0
"upload_content_length" => 453.0
"starttransfer_time" => 0.002181
"redirect_time" => 0.0
"redirect_url" => ""
"primary_ip" => "52.30.155.188"
"certinfo" => []
"primary_port" => 443
"local_ip" => "10.20.4.118"
"local_port" => 6116
"error" => ""
"errno" => 0
]
"curl" => array:2 [
"error" => ""
"errno" => 0
]
"effective_url" => "https://search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"headers" => array:4 [
"Date" => array:1 [
0 => "Thu, 28 Mar 2024 22:16:22 GMT"
]
"Content-Type" => array:1 [
0 => "text/plain;charset=ISO-8859-1"
]
"Content-Length" => array:1 [
0 => "41"
]
"Connection" => array:1 [
0 => "keep-alive"
]
]
"version" => "1.1"
"status" => 429
"reason" => "Too Many Requests"
"body" => "429 Too Many Requests /agents_%2A/_search"
]
[]
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/react
/promise
/src
/FulfilledPromise.php
{
private $value;
public function __construct($value = null)
{
if ($value instanceof PromiseInterface) {
throw new \InvalidArgumentException('You cannot create React\Promise\FulfilledPromise with a promise. Use React\Promise\resolve($promiseOrValue) instead.');
}
$this->value = $value;
}
public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
{
if (null === $onFulfilled) {
return $this;
}
try {
return resolve($onFulfilled($this->value));
} catch (\Throwable $exception) {
return new RejectedPromise($exception);
} catch (\Exception $exception) {
return new RejectedPromise($exception);
}
}
public function done(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
{
if (null === $onFulfilled) {
return;
}
$result = $onFulfilled($this->value);
if ($result instanceof ExtendedPromiseInterface) {
$result->done();
}
}
Arguments
array:8 [
"transfer_stats" => array:28 [
"url" => "https://search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"content_type" => "text/plain;charset=ISO-8859-1"
"http_code" => 429
"header_size" => 160
"request_size" => 1015
"filetime" => -1
"ssl_verify_result" => 0
"redirect_count" => 0
"total_time" => 0.002227
"namelookup_time" => 3.6E-5
"connect_time" => 3.7E-5
"pretransfer_time" => 0.000103
"size_upload" => 453.0
"size_download" => 41.0
"speed_download" => 20500.0
"speed_upload" => 226500.0
"download_content_length" => 41.0
"upload_content_length" => 453.0
"starttransfer_time" => 0.002181
"redirect_time" => 0.0
"redirect_url" => ""
"primary_ip" => "52.30.155.188"
"certinfo" => []
"primary_port" => 443
"local_ip" => "10.20.4.118"
"local_port" => 6116
"error" => ""
"errno" => 0
]
"curl" => array:2 [
"error" => ""
"errno" => 0
]
"effective_url" => "https://search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"headers" => array:4 [
"Date" => array:1 [
0 => "Thu, 28 Mar 2024 22:16:22 GMT"
]
"Content-Type" => array:1 [
0 => "text/plain;charset=ISO-8859-1"
]
"Content-Length" => array:1 [
0 => "41"
]
"Connection" => array:1 [
0 => "keep-alive"
]
]
"version" => "1.1"
"status" => 429
"reason" => "Too Many Requests"
"body" => "429 Too Many Requests /agents_%2A/_search"
]
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/ezimuel
/ringphp
/src
/Future
/CompletedFutureValue.php
public function cancel() {}
public function promise()
{
if (!$this->cachedPromise) {
$this->cachedPromise = $this->error
? new RejectedPromise($this->error)
: new FulfilledPromise($this->result);
}
return $this->cachedPromise;
}
public function then(
callable $onFulfilled = null,
callable $onRejected = null,
callable $onProgress = null
) {
return $this->promise()->then($onFulfilled, $onRejected, $onProgress);
}
}
Arguments
Closure($response) {#1254 …6}
null
null
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/ezimuel
/ringphp
/src
/Core.php
/**
* Returns a proxied future that modifies the dereferenced value of another
* future using a promise.
*
* @param FutureArrayInterface $future Future to wrap with a new future
* @param callable $onFulfilled Invoked when the future fulfilled
* @param callable $onRejected Invoked when the future rejected
* @param callable $onProgress Invoked when the future progresses
*
* @return FutureArray
*/
public static function proxy(
FutureArrayInterface $future,
callable $onFulfilled = null,
callable $onRejected = null,
callable $onProgress = null
) {
return new FutureArray(
$future->then($onFulfilled, $onRejected, $onProgress),
[$future, 'wait'],
[$future, 'cancel']
);
}
/**
* Returns a debug stream based on the provided variable.
*
* @param mixed $value Optional value
*
* @return resource
*/
public static function getDebugResource($value = null)
{
if (is_resource($value)) {
return $value;
} elseif (defined('STDOUT')) {
return STDOUT;
} else {
return fopen('php://output', 'w');
Arguments
Closure($response) {#1254 …6}
null
null
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Connections
/Connection.php
if ($response['status'] >= 400 && $response['status'] < 500) {
$ignore = $request['client']['ignore'] ?? [];
// Skip 404 if succeeded true in the body (e.g. clear_scroll)
$body = $response['body'] ?? '';
if (strpos($body, '"succeeded":true') !== false) {
$ignore[] = 404;
}
$this->process4xxError($request, $response, $ignore);
} elseif ($response['status'] >= 500) {
$ignore = $request['client']['ignore'] ?? [];
$this->process5xxError($request, $response, $ignore);
}
// No error, deserialize
$response['body'] = $this->serializer->deserialize($response['body'], $response['transfer_stats']);
}
$this->logRequestSuccess($request, $response);
return isset($request['client']['verbose']) && $request['client']['verbose'] === true ? $response : $response['body'];
}
);
return $response;
};
}
private function getURI(string $uri, ?array $params): string
{
if (isset($params) === true && !empty($params)) {
array_walk(
$params,
function (&$value, &$key) {
if ($value === true) {
$value = 'true';
} elseif ($value === false) {
$value = 'false';
}
}
);
Arguments
CompletedFutureArray {#1253}
Closure($response) {#1254 …6}
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Connections
/Connection.php
'scheme' => $this->transportSchema,
'uri' => $this->getURI($uri, $params),
'body' => $body,
'headers' => array_merge(
[
'Host' => [$host]
],
$headers
)
];
$request = array_replace_recursive($request, $this->connectionParams, $options);
// RingPHP does not like if client is empty
if (empty($request['client'])) {
unset($request['client']);
}
$handler = $this->handler;
$future = $handler($request, $this, $transport, $options);
return $future;
}
public function getTransportSchema(): string
{
return $this->transportSchema;
}
public function getLastRequestInfo(): array
{
return $this->lastRequest;
}
private function wrapHandler(callable $handler): callable
{
return function (array $request, Connection $connection, Transport $transport = null, $options) use ($handler) {
$this->lastRequest = [];
$this->lastRequest['request'] = $request;
Arguments
array:6 [
"http_method" => "POST"
"scheme" => "https"
"uri" => "/agents_%2A/_search?track_total_hits=100000&from=0&size=12"
"body" => "{"query":{"bool":{"must":[{"match":{"active":true}},{"match":{"bu":"OPTIMHOME"}},{"bool":{"must_not":{"terms":{"source.id":[400,2662,3292,720,1,5167,177,7907,4999,979,5538,7908,38,7957,8084,8078,8158,9299,9368,540,7905,12370,10481]}}}},{"bool":{"should":[{"match":{"source.name":"tremplin"}},{"match":{"source.name":"intranet"}}],"minimum_should_match":1}},{"match_phrase":{"source.login":{"query":"arpaia"}}},{"exists":{"field":"geolocation.city"}}]}}}"
"headers" => array:4 [
"Host" => array:1 [
0 => "search-re-index-prod-aqxtpudiesz7qswsf7hehdomnu.eu-west-1.es.amazonaws.com"
]
"Content-Type" => array:1 [
0 => "application/json"
]
"Accept" => array:1 [
0 => "application/json"
]
"User-Agent" => array:1 [
0 => "elasticsearch-php/7.10.0 (Linux 4.14.275-142.503.amzn1.x86_64; PHP 7.2.34)"
]
]
"client" => array:2 [
"port_in_header" => false
"curl" => array:1 [
3 => 443
]
]
]
Connection {#1212}
Transport {#1215}
[]
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Transport.php
public function performRequest(string $method, string $uri, array $params = [], $body = null, array $options = []): FutureArrayInterface
{
try {
$connection = $this->getConnection();
} catch (Exceptions\NoNodesAvailableException $exception) {
$this->log->critical('No alive nodes found in cluster');
throw $exception;
}
$response = [];
$caughtException = null;
$this->lastConnection = $connection;
$future = $connection->performRequest(
$method,
$uri,
$params,
$body,
$options,
$this
);
$future->promise()->then(
//onSuccess
function ($response) {
$this->retryAttempts = 0;
// Note, this could be a 4xx or 5xx error
},
//onFailure
function ($response) {
$code = $response->getCode();
// Ignore 400 level errors, as that means the server responded just fine
if ($code < 400 || $code >= 500) {
// Otherwise schedule a check
$this->connectionPool->scheduleCheck();
}
}
);
return $future;
Arguments
"POST"
"/agents_%2A/_search"
array:3 [
"track_total_hits" => 100000
"from" => 0
"size" => 12
]
"{"query":{"bool":{"must":[{"match":{"active":true}},{"match":{"bu":"OPTIMHOME"}},{"bool":{"must_not":{"terms":{"source.id":[400,2662,3292,720,1,5167,177,7907,4999,979,5538,7908,38,7957,8084,8078,8158,9299,9368,540,7905,12370,10481]}}}},{"bool":{"should":[{"match":{"source.name":"tremplin"}},{"match":{"source.name":"intranet"}}],"minimum_should_match":1}},{"match_phrase":{"source.login":{"query":"arpaia"}}},{"exists":{"field":"geolocation.city"}}]}}}"
[]
Transport {#1215}
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Client.php
(array) $value :
$value;
unset($params[$arg]);
return $value;
} else {
return null;
}
}
/**
* @return callable|array
*/
private function performRequest(AbstractEndpoint $endpoint)
{
$promise = $this->transport->performRequest(
$endpoint->getMethod(),
$endpoint->getURI(),
$endpoint->getParams(),
$endpoint->getBody(),
$endpoint->getOptions()
);
return $this->transport->resultOrFuture($promise, $endpoint->getOptions());
}
}
Arguments
"POST"
"/agents_%2A/_search"
array:3 [
"track_total_hits" => 100000
"from" => 0
"size" => 12
]
array:1 [
"query" => array:1 [
"bool" => array:1 [
"must" => array:6 [
0 => array:1 [
"match" => array:1 [
"active" => true
]
]
1 => array:1 [
"match" => array:1 [
"bu" => "OPTIMHOME"
]
]
2 => array:1 [
"bool" => array:1 [
"must_not" => array:1 [
"terms" => array:1 [
"source.id" => array:23 [
0 => 400
1 => 2662
2 => 3292
3 => 720
4 => 1
5 => 5167
6 => 177
7 => 7907
8 => 4999
9 => 979
10 => 5538
11 => 7908
12 => 38
13 => 7957
14 => 8084
15 => 8078
16 => 8158
17 => 9299
18 => 9368
19 => 540
20 => 7905
21 => 12370
22 => 10481
]
]
]
]
]
3 => array:1 [
"bool" => array:2 [
"should" => array:2 [
0 => array:1 [
"match" => array:1 [
"source.name" => "tremplin"
]
]
1 => array:1 [
"match" => array:1 [
"source.name" => "intranet"
]
]
]
"minimum_should_match" => 1
]
]
4 => array:1 [
"match_phrase" => array:1 [
"source.login" => array:1 [
"query" => "arpaia"
]
]
]
5 => array:1 [
"exists" => array:1 [
"field" => "geolocation.city"
]
]
]
]
]
]
[]
/var
/app
/current
/user
/plugins
/seofactory
/vendor
/elasticsearch
/elasticsearch
/src
/Elasticsearch
/Client.php
* $params['body'] = (array) The search definition using the Query DSL
*
* @param array $params Associative array of parameters
* @return array
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-search.html
*/
public function search(array $params = [])
{
$index = $this->extractArgument($params, 'index');
$type = $this->extractArgument($params, 'type');
$body = $this->extractArgument($params, 'body');
$endpointBuilder = $this->endpoints;
$endpoint = $endpointBuilder('Search');
$endpoint->setParams($params);
$endpoint->setIndex($index);
$endpoint->setType($type);
$endpoint->setBody($body);
return $this->performRequest($endpoint);
}
/**
* $params['index'] = (list) A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
* $params['preference'] = (string) Specify the node or shard the operation should be performed on (default: random)
* $params['routing'] = (string) Specific routing value
* $params['local'] = (boolean) Return local information, do not retrieve the state from master node (default: false)
* $params['ignore_unavailable'] = (boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
* $params['allow_no_indices'] = (boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
* $params['expand_wildcards'] = (enum) Whether to expand wildcard expression to concrete indices that are open, closed or both. (Options = open,closed,hidden,none,all) (Default = open)
*
* @param array $params Associative array of parameters
* @return array
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html
*/
public function searchShards(array $params = [])
{
$index = $this->extractArgument($params, 'index');
$endpointBuilder = $this->endpoints;
$endpoint = $endpointBuilder('SearchShards');
Arguments
/var
/app
/current
/user
/plugins
/seofactory
/classes
/Adapter
/ElasticsearchClient.php
* Execute the search request on eleasticsearch with the given params
* @return mixed
*/
public function search($params) {
$cacheKey = [__METHOD__, $params];
if ($cachedValue = $this->cache->fetch($cacheKey)) {
return $cachedValue;
}
if (isset($params["scroll_id"])) {
// Scroll search case
$finalParams = [
"scroll_id" => $params["scroll_id"],
"scroll" => $params["scroll"]
];
$response = $this->client->scroll($finalParams);
} else {
// Normal search case
$response = $this->client->search($params);
}
$this->cache->save($cacheKey, $response);
return $response;
}
}
Arguments
array:3 [
"track_total_hits" => 100000
"from" => 0
"size" => 12
]
/var
/app
/current
/user
/plugins
/seofactory
/classes
/Searches
/AgentSearch.php
$this->initSearchModifiers();
// Offer type modifier to Speciality modifier
$this->offerTypeToSpeciality();
// Exclude agent ids from the search
$this->addExcludedIds();
// Pagination
$pageIndex = $this->setUpPaginationModifiers();
$searchQuery = $this->createQuery();
// echo '<pre>' . print_r($searchQuery, true) . '</pre>';
// Agents need to have a profile picture
// $searchQuery["body"]["query"]["bool"]['must'][] = ["nested" => ["path" => "profile_picture", "query" => ["bool" => ["must" => ["exists" => ["field" => "profile_picture.url"]]]]]];
// Execute query
$results = ElasticsearchClient::instance()->search($searchQuery)['hits'];
// Complete results
$size = $this->getModifier(ModifierKeys::$size)->getValue();
$nbPage = $size ? intval(ceil($results['total']['value']/$size)) : 0;
$nbPage = $nbPage ? $nbPage : 1;
//dump($nbPage);die;
$results['pagination'] = (new Pagination())->getPagination($pageIndex, $nbPage);
$results['hits'] = $this->mapHitsToAgents($results['hits']);
$results['total'] = $results['total']['value'];
return $this->returnResult($results, $resultKey);
}
/**
* Format the elasticsearch result to an array of agent objects.
* @param $hits
* @param array $extraAgents
* @return array
*/
Arguments
array:5 [
"index" => "agents_*"
"track_total_hits" => 100000
"from" => 0
"size" => 12
"body" => array:1 [
"query" => array:1 [
"bool" => array:1 [
"must" => array:6 [
0 => array:1 [
"match" => array:1 [
"active" => true
]
]
1 => array:1 [
"match" => array:1 [
"bu" => "OPTIMHOME"
]
]
2 => array:1 [
"bool" => array:1 [
"must_not" => array:1 [
"terms" => array:1 [
"source.id" => array:23 [
0 => 400
1 => 2662
2 => 3292
3 => 720
4 => 1
5 => 5167
6 => 177
7 => 7907
8 => 4999
9 => 979
10 => 5538
11 => 7908
12 => 38
13 => 7957
14 => 8084
15 => 8078
16 => 8158
17 => 9299
18 => 9368
19 => 540
20 => 7905
21 => 12370
22 => 10481
]
]
]
]
]
3 => array:1 [
"bool" => array:2 [
"should" => array:2 [
0 => array:1 [
"match" => array:1 [
"source.name" => "tremplin"
]
]
1 => array:1 [
"match" => array:1 [
"source.name" => "intranet"
]
]
]
"minimum_should_match" => 1
]
]
4 => array:1 [
"match_phrase" => array:1 [
"source.login" => array:1 [
"query" => "arpaia"
]
]
]
5 => array:1 [
"exists" => array:1 [
"field" => "geolocation.city"
]
]
]
]
]
]
]
/var
/app
/current
/user
/plugins
/seofactory
/classes
/Searches
/AbstractSearch.php
?>
<pre>
You tried to use a SearchModifier that does not exist.
Most likely in one of the following file(s):
<?php dump($candidates); ?>
Those filters passed succesfully though:
<?php dump($this->modifiers); ?>
</pre><?php
exit;
}
$this->modifiers[] = $modifier;
return $this;
}
/**
* @return mixed
*/
public function findOne()
{
if (count($set = $this->findAll()['hits'])) {
return array_values($set)[0];
}
return null;
}
/**
* @param string|null $resultKey
* @return array
*/
abstract public function findAll(string $resultKey = null): array;
/**
* @param string $key
* @return Modifier
*/
protected function getModifier(string $key): ?Modifier
{
if (count($modifiers = $this->getModifiers($key))) {
$values = array_values($modifiers);
return end($values);
/var
/app
/current
/user
/plugins
/seofactory
/classes
/SeoFunctions.php
* @throws Searches\UnkownDepartmentCodeException
* @throws GuzzleException
*/
public function searchAgentsSEOById( )
{
$agentId = func_get_args()[1];
$agentSearch = (new AgentSearch(func_get_args()[0]))->addModifier(new FilterModifier(ModifierKeys::$id, $agentId));
$agents = $agentSearch->findOne();
return $agents;
}
/**
* @return object
*/
public function getAgentSEO()
{
return (new AgentSearch(func_get_args()))->findOne();
}
/**
* @return array
* @throws GuzzleException
*/
public function searchPropertiesSEO(): array
{
$modifiers = Search::getParameters(func_get_args());
$properties = (new PropertySearch($modifiers))->findAll();
[$modifiers, $locationId] = $this->extractLocationIdFromModifiers($modifiers);
$i = 0;
while (count($properties['hits']) < self::$minResults && !is_null($locationId) && isset(self::$searchRadiuses[$i])) {
$properties = (new PropertySearch([
array_merge(
$modifiers,
[SeoFunctions::whereDistanceFromLocation($locationId, self::$searchRadiuses[$i++])]
),
/var
/app
/current
/cache
/twig
/02
/024c14e8e30ddd6025cb584a8d97ef504485ad10df6d48577bfcfe8f95c7dbed.php
protected function doDisplay(array $context, array $blocks = [])
{
// line 1
$context["criterias"] = [];
// line 2
$context["displayBtnBuy"] = false;
// line 3
$context["displayBtnRent"] = false;
// line 4
echo "
";
// line 5
$context["agent"] = call_user_func_array($this->env->getFunction('getAgentSEO')->getCallable(), [[0 => call_user_func_array($this->env->getFunction('whereSlugMatchPhrase')->getCallable(), [$this->getAttribute(($context["uri"] ?? null), "basename", [])])]]);
// line 6
echo "
";
// line 7
if ( !($context["agent"] ?? null)) {
// line 8
$context["agent"] = call_user_func_array($this->env->getFunction('getAgentSEO')->getCallable(), [[0 => call_user_func_array($this->env->getFunction('whereLoginMatchPhrase')->getCallable(), [$this->getAttribute(($context["uri"] ?? null), "basename", [])])]]);
}
// line 10
echo "
";
// line 11
$context["businessConfigIsActive"] = false;
// line 12
if ($this->getAttribute($this->getAttribute(($context["agent"] ?? null), "source", []), "id", [])) {
// line 13
$context["businessConfigIsActive"] = call_user_func_array($this->env->getFunction('getConfigActiveByExternalId')->getCallable(), [$this->getAttribute($this->getAttribute(($context["agent"] ?? null), "source", []), "id", []), "OPTIMHOME"]);
}
// line 15
echo "
";
// line 16
echo $this->env->getExtension('Grav\Plugin\HousingFactory\Twig\HousingFactoryTwigExtension')->redirectToAgentListingIfEmpty($this->getAttribute($this->getAttribute(($context["agent"] ?? null), "source", []), "id", []));
echo "
";
// line 18
Arguments
array:1 [
0 => MatchPhraseModifier {#1149}
]
/var
/app
/current
/vendor
/twig
/twig
/src
/Template.php
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
$this->doDisplay($context, $blocks);
} catch (Error $e) {
if (!$e->getSourceContext()) {
$e->setSourceContext($this->getSourceContext());
}
// this is mostly useful for \Twig\Error\LoaderError exceptions
// see \Twig\Error\LoaderError
if (-1 === $e->getTemplateLine()) {
$e->guess();
}
throw $e;
} catch (\Exception $e) {
$e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
$e->guess();
throw $e;
}
}
Arguments
array:30 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
"grav" => Grav {#3}
"criterias" => []
"displayBtnBuy" => false
"displayBtnRent" => false
"agent" => null
]
array:1 [
"jsonLD" => array:2 [
0 => __TwigTemplate_412ef6ad2d95482bd96d4cb16ee414cf8c189fa516bb610e4d16726458a68cc7 {#929}
1 => "block_jsonLD"
]
]
/var
/app
/current
/vendor
/twig
/twig
/src
/Template.php
{
return $this;
}
/**
* Returns all blocks.
*
* This method is for internal use only and should never be called
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start();
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
Arguments
array:26 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
"grav" => Grav {#3}
]
array:1 [
"jsonLD" => array:2 [
0 => __TwigTemplate_412ef6ad2d95482bd96d4cb16ee414cf8c189fa516bb610e4d16726458a68cc7 {#929}
1 => "block_jsonLD"
]
]
/var
/app
/current
/vendor
/twig
/twig
/src
/Template.php
* directly.
*
* @return array An array of blocks
*/
public function getBlocks()
{
return $this->blocks;
}
public function display(array $context, array $blocks = [])
{
$this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
}
public function render(array $context)
{
$level = ob_get_level();
ob_start();
try {
$this->display($context);
} catch (\Exception $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
return ob_get_clean();
}
protected function displayWithErrorHandling(array $context, array $blocks = [])
{
try {
Arguments
array:25 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
]
/var
/app
/current
/vendor
/twig
/twig
/src
/TemplateWrapper.php
* @internal
*/
public function __construct(Environment $env, Template $template)
{
$this->env = $env;
$this->template = $template;
}
/**
* Renders the template.
*
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*/
public function render($context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
return $this->template->render($context, \func_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Displays the template.
*
* @param array $context An array of parameters to pass to the template
*/
public function display($context = [])
{
// using func_get_args() allows to not expose the blocks argument
// as it should only be used by internal code
$this->template->display($context, \func_num_args() > 1 ? func_get_arg(1) : []);
}
/**
* Checks if a block is defined.
*
* @param string $name The block name
* @param array $context An array of parameters to pass to the template
*
Arguments
array:25 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
]
[]
/var
/app
/current
/vendor
/twig
/twig
/src
/Environment.php
@trigger_error(sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), E_USER_DEPRECATED);
return $this->templateClassPrefix;
}
/**
* Renders a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @return string The rendered template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function render($name, array $context = [])
{
return $this->load($name)->render($context);
}
/**
* Displays a template.
*
* @param string|TemplateWrapper $name The template name
* @param array $context An array of parameters to pass to the template
*
* @throws LoaderError When the template cannot be found
* @throws SyntaxError When an error occurred during compilation
* @throws RuntimeError When an error occurred during rendering
*/
public function display($name, array $context = [])
{
$this->load($name)->display($context);
}
/**
* Loads a template.
*
Arguments
array:25 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
]
/var
/app
/current
/system
/src
/Grav
/Common
/Twig
/Twig.php
$twig_vars['header'] = $item->header();
$local_twig = clone $this->twig;
$output = '';
try {
// Process Modular Twig
if ($item->modularTwig()) {
$twig_vars['content'] = $content;
$extension = $item->templateFormat();
$extension = $extension ? ".{$extension}.twig" : TEMPLATE_EXT;
$template = $item->template() . $extension;
$output = $content = $local_twig->render($template, $twig_vars);
}
// Process in-page Twig
if ($item->shouldProcess('twig')) {
$name = '@Page:' . $item->path();
$this->setTemplate($name, $content);
$output = $local_twig->render($name, $twig_vars);
}
} catch (\Twig_Error_Loader $e) {
throw new \RuntimeException($e->getRawMessage(), 404, $e);
}
return $output;
}
/**
* Process a Twig template directly by using a template name
* and optional array of variables
*
* @param string $template template to render with
* @param array $vars Optional variables
*
* @return string
*/
public function processTemplate($template, $vars = [])
{
Arguments
"@Page:/var/app/current/user/pages/02.nos-conseillers/fiche"
array:25 [
"config" => Config {#96}
"system" => array:30 [
"absolute_urls" => false
"timezone" => ""
"default_locale" => null
"param_sep" => ":"
"wrapped_site" => false
"reverse_proxy_setup" => false
"force_ssl" => false
"force_lowercase_urls" => true
"custom_base_url" => ""
"username_regex" => "^[a-z0-9_@\.-]{3,50}$"
"pwd_regex" => "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
"intl_enabled" => true
"languages" => array:9 [
"supported" => array:2 [
0 => "fr"
1 => "de"
]
"default_lang" => null
"include_default_lang" => false
"pages_fallback_only" => false
"translations" => true
"translations_fallback" => true
"session_store_active" => false
"http_accept_language" => false
"override_locale" => false
]
"home" => array:2 [
"alias" => "/home"
"hide_in_urls" => true
]
"pages" => array:26 [
"theme" => "optimhome"
"order" => array:2 [
"by" => "default"
"dir" => "asc"
]
"list" => array:1 [
"count" => 20
]
"dateformat" => array:3 [
"default" => null
"short" => "jS M Y"
"long" => "F jS \a\t g:ia"
]
"publish_dates" => true
"process" => array:2 [
"markdown" => false
"twig" => true
]
"twig_first" => false
"never_cache_twig" => false
"events" => array:2 [
"page" => true
"twig" => true
]
"markdown" => array:5 [
"extra" => false
"auto_line_breaks" => false
"auto_url_links" => false
"escape_markup" => false
"special_chars" => array:2 [
">" => "gt"
"<" => "lt"
]
]
"types" => array:7 [
0 => "html"
1 => "htm"
2 => "xml"
3 => "txt"
4 => "json"
5 => "rss"
6 => "atom"
]
"append_url_extension" => ""
"expires" => 604800
"cache_control" => null
"last_modified" => false
"etag" => false
"vary_accept_encoding" => false
"redirect_default_route" => false
"redirect_default_code" => "301"
"redirect_trailing_slash" => false
"ignore_files" => array:1 [
0 => ".DS_Store"
]
"ignore_folders" => array:2 [
0 => ".git"
1 => ".idea"
]
"ignore_hidden" => true
"hide_empty_folders" => false
"url_taxonomy_filters" => true
"frontmatter" => array:2 [
"process_twig" => true
"ignore_fields" => array:2 [
0 => "form"
1 => "forms"
]
]
]
"cache" => array:13 [
"enabled" => true
"check" => array:1 [
"method" => "file"
]
"driver" => "file"
"prefix" => "g"
"purge_at" => "0 4 * * *"
"clear_at" => "0 3 * * *"
"clear_job_type" => "standard"
"clear_images_by_default" => true
"cli_compatibility" => false
"lifetime" => 3600
"gzip" => false
"allow_webserver_gzip" => false
"redis" => array:1 [
"socket" => false
]
]
"twig" => array:7 [
"cache" => true
"debug" => true
"auto_reload" => true
"autoescape" => false
"undefined_functions" => true
"undefined_filters" => true
"umask_fix" => false
]
"assets" => array:12 [
"css_pipeline" => false
"css_pipeline_include_externals" => true
"css_pipeline_before_excludes" => true
"css_minify" => true
"css_minify_windows" => false
"css_rewrite" => true
"js_pipeline" => false
"js_pipeline_include_externals" => true
"js_pipeline_before_excludes" => true
"js_minify" => true
"enable_asset_timestamp" => false
"collections" => array:1 [
"jquery" => "system://assets/jquery/jquery-2.x.min.js"
]
]
"errors" => array:2 [
"display" => true
"log" => true
]
"log" => array:2 [
"handler" => "file"
"syslog" => array:1 [
"facility" => "local6"
]
]
"debugger" => array:3 [
"enabled" => false
"shutdown" => array:1 [
"close_connection" => true
]
"twig" => true
]
"images" => array:6 [
"default_image_quality" => 85
"cache_all" => false
"cache_perms" => "0755"
"debug" => false
"auto_fix_orientation" => false
"seofriendly" => false
]
"media" => array:5 [
"enable_media_timestamp" => false
"unsupported_inline_types" => []
"allowed_fallback_types" => []
"auto_metadata_exif" => false
"upload_limit" => 15728640
]
"session" => array:9 [
"enabled" => true
"initialize" => true
"timeout" => 1800
"name" => "grav-site"
"uniqueness" => "path"
"secure" => false
"httponly" => true
"split" => true
"path" => null
]
"gpm" => array:5 [
"releases" => "stable"
"proxy_url" => null
"method" => "auto"
"verify_peer" => true
"official_gpm_only" => true
]
"accounts" => array:2 [
"type" => "data"
"storage" => "file"
]
"strict_mode" => array:2 [
"yaml_compat" => true
"twig_compat" => true
]
"gtm_stage_enabled" => false
"matomo_prod_enabled" => true
"seo-factory" => array:1 [
"bu" => "OPTIMHOME"
]
]
"theme" => array:2 [
"streams" => array:1 [
"schemes" => array:1 [
"theme" => array:2 [
"type" => "ReadOnlyStream"
"prefixes" => array:1 [
"" => array:2 [
0 => "user/themes/optimhome"
1 => "user/themes/digit-website"
]
]
]
]
]
"marketing-operations" => array:3 [
"saison-estimation-2019" => array:3 [
"startDate" => "2019-03-20"
"endDate" => "2019-04-30"
"body_class" => "op_estim"
]
"ope-neuf-2019" => array:3 [
"startDate" => "2019-06-01"
"endDate" => "2019-06-30"
"body_class" => "op_neuf"
]
"op-optimust-2019" => array:3 [
"startDate" => "2019-09-11"
"endDate" => "2019-11-01"
"body_class" => "op_optimust"
]
]
]
"site" => array:28 [
"title" => "Optimhome Immobilier"
"default_lang" => "fr"
"author" => array:2 [
"name" => "DigitRE"
"email" => "[email protected]"
]
"taxonomies" => array:2 [
0 => "category"
1 => "tag"
]
"metadata" => array:2 [
"generator" => ""
"description" => ""
]
"summary" => array:4 [
"enabled" => true
"format" => "short"
"size" => 300
"delimiter" => "==="
]
"redirects" => array:40 [
"/combien-pour-mon-bien$" => "/"
"/annonces$" => "/annonces/achat"
"/conseillers/market$" => "/maintenance"
"/verlautbarungen$" => "/annonces/achat"
"/adverts$" => "/annonces/achat"
"/anuncios$" => "/annonces/achat"
"/neuf$" => "/annonces/achat?affichage=grid-view&category[]=isNew"
"/commerces$" => "/annonces/achat?affichage=grid-view&propertyTypes[]=BUSINESS_CAPITAL"
"/ville_bien/(.*)_(.*)_(.*)__(.*)/(.*)" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/ville_bien/(.*)_/(.*).html" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/news/(.*)" => "/actualites"
"/content/6/estimation-immobiliere-en-ligne-1.html" => "/estimer-mon-bien"
"/content/5/mentions-legales.html?language=fr" => "/mentions-legales"
"/agence/(.*)" => "/nos-conseillers"
"/ville_bien/(.*)_(.*)_(.*)__Vente" => "/annonces/achat?affichage=grid-view&adresse=$1"
"/catalog/estimation.php" => "/estimer-mon-bien"
"/fiches/(.*)" => "/annonces/achat"
"(.*)PRODUCT_LIST_(.*)" => "/annonces/achat"
"(.*)_Vente/vente-(.*)" => "/annonces/achat"
"/annonces/(.*)____Vente_/vente.html" => "/annonces/achat"
"/type_bien/(.*)" => "/annonces/achat"
"/annonces/_____(.*)/immobilier.html" => "/annonces/achat"
"/annonces/(.*)_____2/.html" => "/annonces/achat"
"/conseillers/(.*)-recrutement-immobilier" => "/nos-conseillers"
"/annonces/exclusivites" => "/annonces/achat?affichage=grid-view&exclusif=true"
"/de-(.*).html" => "/de"
"/fr-(.*).html" => "/annonces/achat"
"/es-(.*).html" => "/"
"/nl-(.*).html" => "/"
"/pt-(.*).html" => "/pt"
"/ville_bien/(.*).html" => "/annonces/achat"
"/catalog/news.php" => "/actualites"
"/it-(.*).html" => "/en"
"/en-(.*).html" => "/en"
"(.*)/(region|bezirk)(?(?=\?)(.+)|)$" => "/[301]"
"(.*)/(regions|regionen)(?(?=\?)(.+)|)$" => "/[301]"
"/de/betreuer/steinseufzer-robert" => "/betreuer/robert-steinseufzer"
"(.*)/estimer/appartement" => "/estimer-appartement"
"(.*)/estimer/maison" => "/estimer-maison"
"/conseillers/casseleux" => "/conseillers/aurelie.casseleux"
]
"routes" => array:88 [
"(.*)/(actualites|neuigkeit|news|noticias)(?(?=\?)(.+)|)$" => "/actualites"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/page:(\d+)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(commerces|shops|neuf)/nos-conseillers(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(new/agents)(?(?=\?)(.+)|)$" => "/nos-conseillers"
"(.*)/(conseillers|agents|betreuer|agentes|conselheiros)/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche"
"(.*)/(annonces|commerces)/(fiche|vente|achat|location|reprendre)/([\w-]+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location|reprendre)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(adverts|shops)/(sale|buy|rental|resume)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(verlautbarungen|geschafte|shops)/(verkauf|mieten|einkaufen|verlieh|zusammenfassung)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel|retomar)/(\w+)/(\w+)/([\w-]+)-(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/fiche"
"(.*)/(annonces|commerces)/(vente|achat|location)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(adverts|shops)/(sale|buy|rental)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(verlautbarungen|geschafte)/(verkauf|mieten|einkaufen|verlieh)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(anuncios|lojas)/(compra|venda|aluguel)/(\w+)-(\w+)(?(?=\?)(.+)|)$" => "/annonces/ville"
"(.*)/(annonces/villes|verlautbarungen/ortschaften|adverts/cities|anuncios/cidades)(?(?=\?)(.+)|)$" => "/annonces/villes"
"(.*)/(commerces|shops|lojas)(?(?=\?)(.+)|)$" => "/commerces"
"(.*)/(immobilier/avis-clients|immobilien/kundenrezensionen|real-estate/customer-reviews|imoveis/opinioes-clientes)(?(?=\?)(.+)|)$" => "/immobilier/avis-clients"
"(.*)/(immobilien|imobiliaria)/(konzept|o-conceito)(?(?=\?)(.+)|)$" => "/immobilier/concept"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/international(?(?=\?)(.+)|)$" => "/immobilier/international"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(investir-dans-le-neuf|investieren-in-die-neue|invest-in-the-new)(?(?=\?)(.+)|)$" => "/immobilier/investir-dans-le-neuf"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(nos-valeurs|unsere-werte|our-values)(?(?=\?)(.+)|)$" => "/immobilier/nos-valeurs"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imoveis)/(pourquoi|warum|why|por-que)(?(?=\?)(.+)|)$" => "/immobilier/pourquoi-choisir-optimhome"
"(.*)/(immobilier|immobilien|real-estate|imoveis|imobiliaria)/(qui-sommes-nous|wer-sind-wir|who-we-are|quem-somos-nos)(?(?=\?)(.+)|)$" => "/immobilier/qui-sommes-nous"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/pass-vip(?(?=\?)(.+)|)$" => "/immobilier/pass-vip"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(primo-accession|erstbeitritt|first-accession)(?(?=\?)(.+)|)$" => "/immobilier/immobilier/primo-accession"
"(.*)/(immobilier/visite-live-a-distance|immobilien/besichtigung-live-a-distance|real-estate/visit-live-a-distance)(?(?=\?)(.+)|)$" => "/immobilier/visite-live-a-distance"
"(.*)/(immobilier|immobilien|real-estate|imoveis)/(vivre-dans-le-neuf|leben-in-einer-neuen-umgebung|living-in-a-new-environment)(?(?=\?)(.+)|)$" => "/immobilier/vivre-dans-le-neuf"
"(.*)/(mentions-legales|rechtliche-hinweise|legal-notices|mencao-legal)(?(?=\?)(.+)|)$" => "/mentions-legales"
"(.*)/(mon-compte|mein-konto|my-account)(?(?=\?)(.+)|)$" => "/mon-compte"
"(.*)/(mon-compte/home|mein-konto/home|my-account/home)(?(?=\?)(.+)|)$" => "/mon-compte/home"
"(.*)/(mon-compte/espace-proprietaire|mein-konto/primar-raum|my-account/private-area)(?(?=\?)(.+)|)$" => "/mon-compte/espace-proprietaire"
"(.*)/(mandat-optimust)(?(?=\?)(.+)|)$" => "/mandat-optimust"
"(.*)/(neuf|neu|new|novo)(?(?=\?)(.+)|)$" => "/neuf"
"(.*)/(nous-contacter|kontakt-uns|contact-us|contacte-nos)(?(?=\?)(.+)|)$" => "/nous-contacter"
"(.*)/(politique-generale-confidentialite|allgemeine-politik-vertraulichkeit|general-policy-confidentiality|politica-geral-privacidade)(?(?=\?)(.+)|)$" => "/politique-generale-confidentialite"
"(.*)/(rekrutierung)(?(?=\?)(.+)|)$" => "/recrutement"
"(.*)/(vendre|verkaufen|sell|vender)(?(?=\?)(.+)|)$" => "/vendre"
"(.*)/(annonces|commerces|neuf)/(vente|achat|louer|fonds)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(adverts|shops)/(sale|buy|rental|business)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(verlautbarungen|shops)/(mieten|einkaufen|verlieh|gewerbe)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(anuncios|comerciais|novo)/(venda|comprar|aluguer|fundos|aluguer)(/\w+)?(?(?=\?)(.+)|)$" => "/annonces/transaction"
"(.*)/(annonces|verlautbarungen)/(achat|einkaufen|mieten|louer)(/page:\d+)?(\?.*)?$" => "/annonces/transaction"
"(.*)/region/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/bezirk/(\w+)(?(?=\?)(.+)|)$" => "/annonces/region"
"(.*)/estimer-mon-bien(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/estimate-my-property(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/schatzen-meine-eigenschaft?(.*)" => "/estimer-mon-bien"
"(.*)/immobilienbewertung(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/immobilienbewertung?(.*)" => "/estimer-mon-bien"
"(.*)/apreciar-meu-propriedade(?(?=/)(.+)|)$" => "/estimer-mon-bien"
"(.*)/conseillers/estimation(?(?=/)(.+)|)$" => "/estimer"
"(.*)/conseillers/estimation/etapes(?(?=/)(.+)|)$" => "/estimer/etapes"
"(.*)/conseillers/estimation/etapes/.*/resultat/(.*)" => "/estimer/resultat-agent"
"(.*)/conseillers/apporteur-affaires/suivi/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/suivi"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)/merci(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes/merci"
"(.*)/conseillers/apporteur-affaires/([\w\-.]+)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche/apporteur-affaires"
"(.*)/conseillers/apporteur-affaires/etapes/([\w\-.]+)$" => "/nos-conseillers/fiche/apporteur-affaires/etapes"
"(.*)/estimer-appartement$" => "/estimer"
"(.*)/estimer-maison$" => "/estimer"
"(.*)/estimer-appartement?(.*)$" => "/estimer"
"(.*)/estimer-maison?(.*)$" => "/estimer"
"(.*)/estimer-appartement/etapes$" => "/estimer/etapes"
"(.*)/estimer-maison/etapes$" => "/estimer/etapes"
"(.*)/estimer-appartement/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-maison/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/combien-pour-mon-bien/resultat/(.*)" => "/combien-pour-mon-bien/resultat"
"(.*)/combien-pour-mon-bien-estimation/etapes/resultat/(.*)" => "/estimer/resultat"
"(.*)/estimer-mon-bien/resultat/(.*)" => "/estimer-mon-bien/resultat"
"/estimate" => "/estimer-mon-bien"
"/estimate/result" => "/estimer-mon-bien/resultat"
"(.*)/vendre(?(?=/)(.+)|)$" => "/vendre"
"(.*)/sell(?(?=/)(.+)|)$" => "/vendre"
"(.*)/verkaufen(?(?=/)(.+)|)$" => "/vendre"
"(.*)/vender(?(?=/)(.+)|)$" => "/vendre"
"(.*)/(favoris|favorites|favoriten|os-meus-favoritos)(?(?=\?)(.+)|)$" => "/favoris"
"(.*)/(commerces/vendre|shops/sell|shops/verkaufen|vender/lojas)(?(?=/)(.+)|)$" => "/vendre-commerces"
"(.*)/nos-conseillers/fiche/vendre/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/vendre"
"(.*)/nos-conseillers/fiche/estimation-rdv/(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv"
"(.*)/nos-conseillers/fiche/estimation-rdv/merci(.+)(?(?=/)(.+)|)$" => "/nos-conseillers/fiche/estimation-rdv/merci"
"/annonces/villes(?(?=\?)(.+)|)$" => "/annonces/villes"
"/annonces/villes/[a-z](?(?=\?)(.+)|)$" => "/annonces/villes-lettre"
"/annonces/achat/\w+(?(?=\?)(.+)|)$" => "/seo/city"
"/annonces/achat/\w+/\w+(?(?=\?)(.+)|)$" => "/seo/city-type"
"/([\w*-._]*)(?(?=\?)(.+)|)$" => "/nos-conseillers/fiche"
]
"blog" => array:1 [
"route" => "/blog"
]
"env" => "prod"
"exclude_cafpi_agent" => array:1 [
0 => "2018"
]
"emails" => array:1 [
"regex" => "/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+)/"
]
"activityStatus" => "SELLER"
"partnerId" => "optimhome"
"domain" => "optimhome"
"show_login_form" => true
"mapping_url_subdomain" => array:28 [
"alsace" => "annonces/achat?adresse=Grand%20Est"
"auvergne" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"bourgogne" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"bretagne" => "annonces/achat?adresse=Bretagne"
"centre" => "annonces/achat?adresse=Centre-Val%20de%20Loire"
"champagne-ardenne" => "annonces/achat?adresse=Grand%20Est"
"corse" => "annonces/achat?adresse=Corse"
"franche-comte" => "annonces/achat?adresse=Bourgogne%20Franche-Comté"
"guadeloupe" => "annonces/achat?affichage=grid-view&adresse=Guadeloupe"
"guyane" => "annonces/achat?affichage=grid-view&adresse=Guyane%20française"
"ile-de-france" => "annonces/achat?adresse=Île-de-France"
"languedoc-roussillon" => "annonces/achat?adresse=Occitanie"
"limousin" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"lorraine" => "annonces/achat?adresse=Grand%20Est"
"martinique" => "annonces/achat?affichage=grid-view&adresse=Martinique"
"midi-pyrenees" => "annonces/achat?adresse=Occitanie"
"nord-pas-de-calais" => "annonces/achat?adresse=Hauts-de-France"
"basse-normandie" => "annonces/achat?adresse=Normandie"
"haute-normandie" => "annonces/achat?adresse=Normandie"
"pays-de-la-loire" => "annonces/achat?adresse=Pays%20de%20la%20Loire"
"picardie" => "annonces/achat?adresse=Hauts-de-France"
"poitou-charentes" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"paca" => "annonces/achat?adresse=PACA"
"reunion" => "annonces/achat?adresse=La%20Réunion"
"rhone-alpes" => "annonces/achat?adresse=Auvergne-Rhône-Alpes"
"exclusif" => "annonces/achat?exclusif=true"
"medoc" => "annonces/achat?adresse=Nouvelle-Aquitaine"
"commerce" => "commerces"
]
"background-regions" => array:18 [
"Hauts-de-France, France" => "bgmoteur_annonces-hautsdefrance.jpg"
"Normandie, France" => "bgmoteur_annonces-normandie.jpg"
"Île-de-France, France" => "bgmoteur_annonces-iledefrance.jpg"
"Bretagne, France" => "bgmoteur_annonces-bretagne.jpg"
"Auvergne-Rhône-Alpes, France" => "bgmoteur_annonces-auvergnerhonealpes.jpg"
"Bourgogne Franche-Comté, France" => "bgmoteur_annonces-bourgognefranchecompte.jpg"
"Centre-Val de Loire, France" => "bgmoteur_annonces-centrevaldeloire.jpg"
"Pays de la Loire, France" => "bgmoteur_annonces-valdeloire.jpg"
"Nouvelle-Aquitaine, France" => "bgmoteur_annonces-nouvelleaquitaine.jpg"
"Occitanie, France" => "bgmoteur_annonces-occitanie.jpg"
"PACA, France" => "bgmoteur_annonces-paca.jpg"
"Corse, France" => "bgmoteur_annonces-corse.jpg"
"Grand Est, France" => "bgmoteur_annonces-grandest.jpg"
"Guadeloupe" => "bgmoteur_annonces-guadeloupe.jpg"
"Arrondissement de Cayenne, France" => "bgmoteur_annonces-guyane.jpg"
"La Réunion" => "bgmoteur_annonces-lareunion.jpg"
"Martinique" => "bgmoteur_annonces-martinique.jpg"
"Mayotte" => "bgmoteur_annonces-mayotte.jpg"
]
"site_de" => "https://www.optimhome.com/de"
"site_pt" => "https://www.optimhome.com/pt"
"site_en" => "https://www.optimhome.com/en"
"site_fr" => "https://www.optimhome.com"
"property_pdf" => array:1 [
"file_name" => "Fiche_bien_"
]
"reference_length" => array:2 [
"fr" => 12
"pt" => 4
]
"geolocation" => array:1 [
"city" => "Paris"
]
"acxtest" => "TEST"
"intranet-url" => "https://intranet.digitregroup.io"
"graphql" => array:2 [
"endpoint" => "https://intranet.digitregroup.io/graphql/"
"token" => "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjowLCJlbWFpbCI6ImFkbWluQGRpZ2l0cmVncm91cC5jb20iLCJyb2xlIjpbIkFETUlOIl0sInJ1bGVzIjpbeyJhY3Rpb25zIjpbInJlYWQiLCJ3cml0ZSIsImRlbGV0ZSJdLCJzdWJqZWN0IjoiYW55In1dfSwiaWF0IjoxNTUyNTgwNDI4fQ.SQdTRJQEUlvHMTn6_3pNwYDCM3aj2Taw-_bNjK3NBhM"
]
]
"uri" => Uri {#138}
"assets" => Assets {#256}
"taxonomy" => Taxonomy {#428}
"browser" => Browser {#463}
"base_dir" => "/var/app/current"
"home_url" => "/"
"base_url" => ""
"base_url_absolute" => "https://www.optimhome.com"
"base_url_relative" => ""
"base_url_simple" => ""
"theme_dir" => "/var/app/current/user/themes/optimhome"
"theme_url" => "/user/themes/optimhome"
"html_lang" => "fr"
"language_codes" => LanguageCodes {#464}
"breadcrumbs" => Breadcrumbs {#201}
"form" => Form {#193}
"form_max_filesize" => 15
"form_json_response" => []
"page" => Page {#671}
"media" => Media {#924}
"header" => {#672}
]
/var
/app
/current
/system
/src
/Grav
/Common
/Page
/Page.php
}
// Initialize the preferred variant of Parsedown
if ($defaults['extra']) {
$parsedown = new ParsedownExtra($this, $defaults);
} else {
$parsedown = new Parsedown($this, $defaults);
}
$this->content = $parsedown->text($this->content);
}
/**
* Process the Twig page content.
*/
private function processTwig()
{
$twig = Grav::instance()['twig'];
$this->content = $twig->processPage($this, $this->content);
}
/**
* Fires the onPageContentProcessed event, and caches the page content using a unique ID for the page
*/
public function cachePageContent()
{
$cache = Grav::instance()['cache'];
$cache_id = md5('page' . $this->id());
$cache->save($cache_id, ['content' => $this->content, 'content_meta' => $this->content_meta]);
}
/**
* Needed by the onPageContentProcessed event to get the raw page content
*
* @return string the current page content
*/
public function getRawContent()
{
return $this->content;
Arguments
Page {#671}
"""
{% set criterias = [] %}\n
{% set displayBtnBuy = false %}\n
{% set displayBtnRent = false %}\n
\n
{% set agent = getAgentSEO([whereSlugMatchPhrase(uri.basename)]) %}\n
\n
{% if not agent %}\n
{% set agent = getAgentSEO([whereLoginMatchPhrase(uri.basename)]) %}\n
{% endif %}\n
\n
{% set businessConfigIsActive = false %}\n
{% if agent.source.id %}\n
{% set businessConfigIsActive = getConfigActiveByExternalId(agent.source.id, 'OPTIMHOME') %}\n
{% endif %}\n
\n
{{ redirectToAgentListingIfEmpty(agent.source.id) }}\n
\n
{% set criterias = [] %}\n
\n
{% set agentProperties = searchPropertiesSEO(\n
criterias|merge([\n
setMaxResults(200),\n
where("published", true),\n
whereAgentIdMatchPhrase(agent.source.id)\n
])\n
)%}\n
\n
{% set agentPropertiesSorted = getAgentPropertiesSorted(agentProperties.hits)%}\n
\n
{% set agentPropertiesSold = searchPropertiesPublishedOrNot(\n
criterias|merge([\n
setMaxResults(200),\n
where("published", false),\n
where("postCompromisePublication", true),\n
where("sold", true),\n
sortDesc("dateEffectiveSignature"),\n
whereAgentIdMatchPhrase(agent.source.id)\n
])\n
)%}\n
\n
{% set lastNameAgent = agent.identity.last_name|lower|split(' et ') %}\n
{% set agentOptimust = agent.optimust %}\n
{% set propertyTypes = getPropertyTypes(agentProperties.hits) %}\n
{%- set property_types -%}\n
{%- include 'js/property_types.js.twig' -%}\n
{%- endset -%}\n
{% do assets.addInlineJs(property_types, {'priority': 0, 'group': 'bottom'}) %}\n
\n
{% import 'macro/stats-factory.js.twig' as statsFactory %}\n
{% set statsCallJS = statsFactory.sendStats(agentProperties, grav.config['plugins.housing-factory.stats_factory_key_listing']) %}\n
{% do assets.addInlineJs(statsCallJS, {'priority': 0, 'group': 'bottom'}) %}\n
\n
{% do assets.addJs('theme://js/expand-text.js', {priority: 97, group: 'bottom'}) %}\n
{% do assets.addJs('https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js', {'priority': 10, 'group': 'bottom'}) %}\n
{% do assets.addJs('theme://js/conseiller.js', {'priority': 10, 'group': 'bottom'}) %}\n
{% do assets.addJs('theme://js/conseiller-modal.js', {'priority': 10, 'group': 'bottom'}) %}\n
\n
{%- set favorites -%}\n
{%- include 'js/favorites.js.twig' -%}\n
{%- endset -%}\n
{% do assets.addInlineJs(favorites, {'priority': 0, 'group': 'bottom'}) %}\n
{% set filters = {} %}\n
{% set pagination = {'limit': 200} %}\n
{% set orderBy = {'field': 'review_date_timestamp', 'sort': 'DESC'} %}\n
{% set companyCode = grav.config['plugins.avis-verifies-digit.avis-verifies.client.companyCode'] %}\n
{% set listingAvis = getReviewsByAgent(companyCode, agent.source.id, filters, pagination, orderBy) %}\n
{% set averageRates = getAgentStat(companyCode, agent.source.id) %}\n
{% set averageData = 0 %}\n
{% if averageRates is not empty and agent.source.id not in config.site['exclude_avis_agent'] %}\n
{% set averageData = averageRates %}\n
{% endif %}\n
\n
{% set pic_profile = agent.getProfilePicture('maxi') %}\n
{% if pic_profile == '/user/themes/optimhome/images/conseiller_default.jpg' and agent.identity.title == 'MS' %}\n
{% set pic_profile = '/user/themes/optimhome/images/conseiller_default_ms.jpg' %}\n
{% endif %}\n
{% set phoneNumber = formatPhoneNumber(agent.phone.mobile_number|default(agent.phone.landline_number)) %}\n
\n
{% block jsonLD %}\n
{% if averageData > 3 %}\n
\n
<script type="application/ld+json">\n
{\n
"@context": "http://schema.org/",\n
"@type": "RealEstateAgent",\n
"aggregateRating": {\n
"@type": "AggregateRating",\n
"bestRating":"5",\n
"ratingValue":"{{averageData.average_rate|round(2, 'floor')}}",\n
"reviewCount":"{{averageData.nb_reviews}}",\n
"worstRating":"1"\n
\n
},\n
"image":"{{ agent.profile_picture.0.medium}}",\n
"name":"{{ agent.identity.first_name }} {{ agent.identity.last_name|upper }}",\n
"url":"{{ getRoute('conseillers_fiche') }}/{{ getUrlAgent(agent.source.slug) }}",\n
"address":"{{ agent.work_areas.0.city }} ({{ agent.work_areas.0.postal_code }})",\n
"telephone":"{{ phoneNumber }}",\n
"review": [\n
{% for avis in listingAvis.hits %}\n
{\n
"@type": "Review",\n
"author": "{{ avis.firstname }} {{ avis.lastname|first }}.",\n
"datePublished": "{{ avis.review_date|date("Y/m/d") }}",\n
"description": "{{ avis.review|replace({"\n":'', "\r":''}) }}",\n
"reviewRating": {\n
"@type": "Rating",\n
"bestRating": "5",\n
"ratingValue": "{{avis.rate}}",\n
"worstRating": "1"\n
}\n
}{% if not loop.last %},{% endif %}\n
{% endfor %}\n
]\n
}\n
</script>\n
\n
{% endif %}\n
\n
{% endblock %}\n
\n
<div class="container-fluid header_conseiller">\n
<div class="container">\n
<div class="row align-items-end justify-content-end pt-2 pt-md-5 pb-5">\n
<div class="col-12 col-lg-3 col-md-4 text-center text-lg-left relative mb-3 mb-md-0 order-2 order-sm-1">\n
<div class="photo_conseiller">\n
<img src="{{ pic_profile }}"\n
class="img-fluid"\n
alt="{{ agent.identity.first_name }} {{ agent.identity.last_name}}"\n
data-cy="agent-detail_photo_conseiller"\n
/>\n
</div>\n
{% set optimustYearFrom = "now"|date("Y") %}\n
{% set optimustYearTo = optimustYearFrom - 3 %}\n
{% set hasTrophy = false %}\n
{% set diplayCurrentYearTrophy = null %}\n
{% set lastIndexOptimust = agentOptimust|length - 1 %}\n
{% set optimustYear = agentOptimust[lastIndexOptimust] %}\n
{% if agentOptimust and agentOptimust[lastIndexOptimust].end_date is null %}\n
{% if agentOptimust[lastIndexOptimust].level %}\n
{% set hasTrophy = true %}\n
{% set diplayCurrentYearTrophy = optimustYear.level %}\n
{% endif %}\n
{% endif %}\n
{% if diplayCurrentYearTrophy == 'Platine' %}\n
{% set diplayCurrentYearTrophy = 'diamant' %}\n
{% endif %}\n
{% if hasTrophy == true %}\n
<div class="img-optimust">\n
{% if diplayCurrentYearTrophy %}\n
<img src="{{ url('theme://images/optimust/logo_optimust_' ~ (diplayCurrentYearTrophy | lower) ~ '.svg') }} " alt="Optimust" class="img-fluid">\n
{% endif %}\n
</div>\n
{% endif %}\n
</div>\n
<div class="col-12 col-lg-9 col-md-8 text-left text-md-right text-white mt-5 mt-md-0 order-1 order-sm-2">\n
<h1>\n
<span class="prenom">{{ agent.identity.first_name }}</span>\n
<span class="nom font-weight-bold">{{ lastNameAgent.0|upper }}</span>\n
</h1>\n
<h2>\n
{% if ' et ' in agent.identity.first_name|lower %}\n
<span class="d-block">{{ 'CONSEILLER_DETAIL_REAL_ESTATE_CONSULTANT'|t }}</span>\n
{% else %}\n
<span class="d-block">{{ agent.identity.title is same as('MR') ? 'CONSEILLER_DETAIL_REAL_ESTATE_CONSULTANT_H'|t : 'CONSEILLER_DETAIL_REAL_ESTATE_CONSULTANT_F'|t }}</span>\n
{% endif %}\n
<div class="ville">{{ 'CONSEILLER_DETAIL_AT'|t }} <span class="font-weight-bold">{{ agent.work_areas.0.city }} ({{ agent.work_areas.0.postal_code }})</span></div>\n
</h2>\n
<div class="row btn-conseiller justify-content-end pt-3">\n
<div class="col-12 col-md-6 col-lg-4 mb-2">\n
<a href="{{ getRoute('conseillers_estimer') }}/{{ getUrlAgent(agent.source.slug) }}" class="btn btn-primary btn-block font-weight-normal">\n
<img src="{{ url('theme://images/conseillers/icon-calculate.svg') }}" height="20px" class="pr-2 mb-1" />{{ 'CONSEILLER_DETAIL_ESTIMATE_YOU_PROPERTY'|t }}\n
</a>\n
</div>\n
<div class="col-12 col-md-6 col-lg-4 mb-lg-0 mb-3">\n
<a href="{{ getRoute('vendre_conseiller') }}/{{ getUrlAgent(agent.source.slug) }}" class="btn btn-success btn-block font-weight-normal">\n
<img src="{{ url('theme://images/conseillers/icon-sale.svg') }}" height="20ox" class="pr-2" /> {{ 'CONSEILLER_DETAIL_SELL_A_PROPERTY'|t }}\n
</a>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
<div class="container mt-2 mt-lg-5 pt-5">\n
<div class="row align-items-start">\n
<div class="content_conseiller col-12 col-md-7 col-lg-8 my-2 ">\n
<div class="row">\n
<div class="col-12">\n
<h2 class="titre2 mt-2">{{ 'CONSEILLER_DETAIL_PRESENTATION'|t }}</h2>\n
<h3 class="titre4 py-2">\n
<span class="font-weight-bold">\n
{% if agent.identity.title is same as('MR') and ' Et ' not in agent.identity.first_name%}\n
{{'CONSEILLER_DETAIL_SPECIALTY'|t}}\n
{% endif %}\n
{% if ' Et ' in agent.identity.first_name and agent.identity.title is same as('MR')%}\n
{{'CONSEILLER_DETAIL_SPECIALTY_DUO'|t}}\n
{% endif %}\n
{% if ' Et ' in agent.identity.first_name and agent.identity.title is same as('MS')%}\n
{{'CONSEILLER_DETAIL_SPECIALTY_DUO_F'|t}}\n
{% endif %}\n
{% if agent.identity.title is same as('MS') and ' Et ' not in agent.identity.first_name %}\n
{{'CONSEILLER_DETAIL_SPECIALTY_F'|t}}\n
{% endif %}\n
</span>\n
{% if agent.specialities|length > 0 %}\n
{% for specialite in agent.specialities %}\n
<span class="font-weight-bold">{{ specialite|replace({'Ancien': 'Habitation', 'habilité à gérer des ventes en viager': 'viager'}) }}{% if loop.last != 1 %},{% endif %}</span>\n
{% endfor %}\n
{% else %}\n
<span class="font-weight-bold">{{ 'DEFAULT_AGENT_SPECIALITY'|t }}</span>\n
{% endif %}\n
</h3>\n
{% if agentProperties.hits|length > 0 or agentPropertiesSold.hits|slice(0,30)|length > 0 %}\n
<h3 class="font-weight-light number_properties">\n
<a href="#biensvente" class="text-white">{{ 'I_HAVE'|t }} <span class="font-weight-normal">{{ agentProperties.hits|length }} {% if agentProperties.hits|length > 1 %} {{ 'CONSEILLER_DETAIL_OFFERS_AVAILABLE'|t('s') }}{% else %} {{ 'CONSEILLER_DETAIL_OFFERS_AVAILABLE'|t('','') }}{% endif %}</span></a>\n
</h3>\n
{% endif %}\n
<div>\n
<div class="card-header bg_white border-0 p-0">\n
{% if agent.bio.0 is not empty %}\n
<div class="text_description txt_reg" id="text_bio">\n
{% set BioAgent = agent.bio.0 %}\n
{{ BioAgent }}\n
</div>\n
<button class="btn btn-link expand">{{ 'CONSEILLER_DETAIL_VIEW_THE_DETAILED_PRESENTATION'|t }}<i class="pl-2 fal fa-arrow-down"></i></button>\n
<button class="btn btn-link contract hide">{{ 'CONSEILLER_DETAIL_VIEW_THE_DETAILED_PRESENTATION'|t }}<i class="pl-2 fal fa-arrow-up"></i></button>\n
<hr>\n
<div class="txt_med"><b>{{ 'COMMERCIAL_AGENT'|t }} :</b> {{ agent.office.legalinfo.siret_number }}</div>\n
<div class="txt_med"><b>{{ 'CITY_OF_REGISTRY'|t }} :</b> {{ agent.office.legalinfo.registry_city }}</div>\n
{% if agent.status is not empty %}<div class="txt_med"><b>{{ 'ENTREPRENEUR_STATUS'|t }} :</b> {{ lastNameAgent.0|upper }} {{ agent.identity.first_name }} {{ agent.status }}</div>{% endif %}\n
<p class="mt-3 txt_med">Tous les commerciaux du réseau OPTIMHOME sont des agents commerciaux indépendants immatriculés au\n
registre spécial des agents commerciaux.</p>\n
<a href="{{ agent.links.fees_url }}" target="_blank"><i class=" pr-1 fas fa-angle-right"></i>{{ 'CONSEILLER_DETAIL_CONSULT_THE_FEES'|t }}</a>\n
{% else %}\n
<p>Consultant Commercial Indépendant en Immobilier en partenariat avec le réseau OptimHome, je suis votre interlocuteur privilégié, qui a une réelle disponibilité avec des horaires flexibles.\n
Les demandes de mon client sont ma priorité pour mieux répondre à ses attentes.\n
Mon rôle principal est d’informer, conseiller et orienter mon client dans ses démarches et jusqu’à la signature chez le notaire.</p>\n
<div class="txt_med"><b>{{ 'COMMERCIAL_AGENT'|t }} :</b> {{ agent.office.legalinfo.siret_number }}</div>\n
<div class="txt_med"><b>{{ 'CITY_OF_REGISTRY'|t }} :</b> {{ agent.office.legalinfo.registry_city }}</div>\n
{% if agent.status is not empty %}<div class="txt_med"><b>{{ 'ENTREPRENEUR_STATUS'|t }} :</b> {{ lastNameAgent.0|upper }} {{ agent.identity.first_name }} {{ agent.status }}</div>{% endif %}\n
<p class="mt-3 txt_med">Tous les commerciaux du réseau OPTIMHOME sont des agents commerciaux indépendants immatriculés au\n
registre spécial des agents commerciaux.</p>\n
<a href="{{ agent.links.fees_url }}" target="_blank"><i class=" pr-1 fas fa-angle-right"></i>{{ 'CONSEILLER_DETAIL_CONSULT_THE_FEES'|t }}</a>\n
{% endif %}\n
</div>\n
</div>\n
{% if agent.source.id not in config.site['exclude_apporteur_agent'] and businessConfigIsActive %}\n
{% if grav.language.getActive != 'de' %}\n
<div class="block_apporteur_affaire py-4 px-3 px-md-5 mt-5">\n
<div class="row">\n
<div class="col-12">\n
<div class="d-md-flex align-items-center">\n
<div class="inner_img mr-md-5 mb-0">\n
<img class="img-fluid" src="{{ url('theme://images/conseillers/apporteur-affaires/logo-apporteur-affaire-white.svg') }}">\n
</div>\n
<div class="inner_txt_desc">\n
<p class="titre4 c_white font-weight-bold">Une personne de votre entourage souhaite vendre son bien ?</p>\n
<p class="mb-3">Mettez-nous en relation et soyez récompensé(e) !</p>\n
<a class="btn btn-primary-inverse py-2" href="{{ getRoute('conseillers_apporteur_affaires') }}/{{ getUrlAgent(agent.source.slug) }}" title="Recommandez-moi">Mettez-nous en relation</a>\n
</div>\n
</div>\n
</div>\n
</div>\n
</div>\n
{% endif %}\n
{% endif %}\n
</div>\n
</div>\n
</div>\n
<aside class="col-12 col-md-5 col-lg-4 d-none d-lg-inline-block bg_gray_clear">\n
<div class="p-4 p-md-3 p-lg-4 mt-3 form_container">\n
<div class="txt_hight">{{ agent.identity.first_name }} <span class="text-uppercase font-weight-bold">{{ lastNameAgent.0|upper }}</span></div>\n
<div class="ville">{{ agent.work_areas.0.postal_code }} {{ agent.work_areas.0.city}}</div>\n
<ul class="list-social pt-2">\n
{% if agent.links.social.facebook_url is not empty and 'https://' in agent.links.social.facebook_url %}\n
{% set facebook_url = agent.links.social.facebook_url %}\n
<li class="d-inline-block pb-1">\n
<a href="{{ facebook_url }}" target="_blank"\n
title="{{ 'ACCESS'|t }} Facebook">\n
<span class="fa-stack">\n
<i class="fas fa-circle fa-stack-2x"></i>\n
<i class="fab fa-facebook-f fa-stack-1x fa-inverse"></i>\n
</span>\n
</a>\n
</li>\n
{% endif %}\n
{% if agent.links.social.twitter_url is not empty and 'https://' in agent.links.social.twitter_url %}\n
{% set twitter_url = agent.links.social.twitter_url %}\n
<li class="d-inline-block pb-1">\n
<a href="{{ twitter_url }}" target="_blank"\n
title="{{ 'ACCESS'|t }} Twitter">\n
<span class="fa-stack">\n
<i class="fas fa-circle fa-stack-2x"></i>\n
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i>\n
</span>\n
</a>\n
</li>\n
{% endif %}\n
{% if agent.links.social.linkedin_url is not empty and 'https://' in agent.links.social.linkedin_url %}\n
{% set linkedin_url = agent.links.social.linkedin_url %}\n
<li class="d-inline-block">\n
<a href="{{ linkedin_url }}" target="_blank" title="">\n
<span class="fa-stack">\n
<i class="fas fa-circle fa-stack-2x"></i>\n
<i class="fab fa-linkedin-in fa-stack-1x fa-inverse"></i>\n
</span>\n
</a>\n
</li>\n
{% endif %}\n
{% if agent.links.social.google_my_business_url is not empty and 'https://' in agent.links.social.google_my_business_url %}\n
<li class="d-inline-block">\n
<a href="{{ agent.links.social.google_my_business_url }}"\n
target="_blank" title="">\n
<span class="fa-stack">\n
<i class="fas fa-circle fa-stack-2x"></i>\n
<i class="fab fa-google fa-stack-1x fa-inverse"></i>\n
</span>\n
</a>\n
</li>\n
{% endif %}\n
{% if agent.links.social.instagram_url is not empty and 'https://' in agent.links.social.instagram_url %}\n
{% set instagram_url = agent.links.social.instagram_url %}\n
<li class="d-inline-block pb-1">\n
<a href="{{ instagram_url }}" target="_blank"\n
title="{{ 'ACCESS'|t }} Instagram">\n
<span class="fa-stack">\n
<i class="fas fa-circle fa-stack-2x"></i>\n
<i class="fab fa-instagram fa-stack-1x fa-inverse"></i>\n
</span>\n
</a>\n
</li>\n
{% endif %}\n
</ul>\n
{% if averageData.average_rate > 2 and agent.source.id not in config.site['exclude_avis_agent'] %}\n
<div class="avis_verfie mt-3">\n
<div class="row justify-content-center align-items-center">\n
<div class="text-center"></div>\n
<div>\n
{% include 'inc/rating-stars.html.twig' with {rate: averageData.average_rate} %}\n
</div>\n
<div class="px-2 w-100">\n
<a href="#agent-rating"> {{ 'SEE_THE_REVIEWS'|t }} ({{ listingAvis.hits|length }})</a>\n
</div>\n
<div class="w-50 mt-4">\n
<img src="{{ url('theme://images/immodvisor-logo.png') }}" alt="Immodvisor" class="w-100"/>\n
</div>\n
</div>\n
</div>\n
{% endif %}\n
<div class="flip-container my-4">\n
<div class="flipper" onclick="$('#voir-telephone-0').hide(); $('#voir-telephone-1').show(); ">\n
<button type="button" id="voir-telephone-0" class="btn btn-green intention_appel front mt-2 mb-2" data-tel="" data-agence="0">\n
<i class="fal fa-phone-volume"></i>\n
<span class="intention_appel_txt" data-cy="agent-detail_phonenumber_btn_text">{{ 'CONSEILLER_DETAIL_SEE_THE_PHONE'|t }}</span>\n
</button>\n
{% set phoneNumber = formatPhoneNumber(agent.phone.mobile_number|default(agent.phone.landline_number)) %}\n
<div id="voir-telephone-1" class="btn btn-green intention_appel front mt-2 mb-2" style="display: none;" >\n
<a href="tel:{{ phoneNumber }}" class="phone-link tel-phone-link">\n
<i class="fal fa-phone-volume"></i>\n
<span class="intention_appel_txt" data-cy="agent-detail_phonenumber_btn_number">{{ phoneNumber }}</span>\n
</a>\n
<a href="sms:{{ phoneNumber }}" class="phone-link sms-phone-link TRAC_sms-phone-link">\n
<i class="fal fa-sms"></i>\n
</a>\n
</div>\n
</div>\n
</div>\n
<div id="form-response-contact-agent-"></div>\n
{% include "forms/form_contact-agent.html.twig" with { form: forms('agent-contact-form') } %}\n
<div class="my-3 text-right">\n
{% include 'inc/required_fields.html.twig' %}\n
</div>\n
<div class="rgpd text-left">\n
{% include 'inc/politique-confidentialite.html.twig' %}\n
</div>\n
</div>\n
</aside>\n
</div>\n
</div>\n
{% if agentProperties.hits is not empty %}\n
<div class="container-fluid pt-5 bg_gray_transparent" id="biensvente">\n
<div class="container listing_annonces">\n
<div class="row">\n
<div class="col-12 mb-3">\n
<h2 class="title2 text-uppercase"> {{ agentProperties.hits|length }} {% if agentProperties.hits|length > 1 %}{{ 'CONSEILLER_DETAIL_REAL_ESTATE_PROPERTY'|t('s','s') }}{% else %}{{ 'CONSEILLER_DETAIL_REAL_ESTATE_PROPERTY'|t('','') }}{% endif %}</h2>\n
</div>\n
{% for property in agentPropertiesSorted %}\n
<div class="col-12 col-md-6 col-lg-4 propertyType_{{ property.properties.property_type.family_code }} propertyType_{{ property.posting.offer_type }}" id="se-hits">\n
<article class="bg-white mb-4">\n
{% include 'inc/property-item.html.twig' %}\n
</article>\n
</div>\n
{% endfor %}\n
</div>\n
</div>\n
</div>\n
{% endif %}\n
{% if agentPropertiesSold.hits|slice(0,30) is not empty %}\n
<div class="container-fluid py-5" >\n
<div class="biensvendus container">\n
<div class="row">\n
<div class="col-12 pb-3">\n
<h2 id="soldproperties" class="title2 text-uppercase">{{ 'MY_LAST_PROPERTY_SOLD'|t }} </h2>\n
</div>\n
{% for property in agentPropertiesSold.hits|slice(0,30) %}\n
<div class="col-12 col-md-6 col-lg-4 " id="se-hits">\n
<article class="bg-white mb-4">\n
{% include 'inc/property-item.html.twig' %}\n
</article>\n
</div>\n
{% endfor %}\n
</div>\n
</div>\n
</div>\n
{% endif %}\n
{% if averageData and listingAvis.hits is not empty and agent.source.id not in config.site['exclude_avis_agent'] %}\n
<div id="agent-rating" class="container pt-5 pb-5">\n
<div class="row">\n
<div class="col-12">\n
<h2 class="title2 text-uppercase" data-cy="agent-detail_h2_avis_client">{{ 'CONSEILLER_DETAIL_MY_CUSTOMER_REVIEW'|t }}\n
<div data-toggle="modal" data-target="#avisverifie"> <small role="button">Avis soumis à un contrôle<i class="fal fa-question-circle ml-2"></i></small></div>\n
</h2>\n
<div class="row mt-5">\n
{% for avis in listingAvis.hits %}\n
{% if avis.rate|number_format > 2 %}\n
{% include 'inc/customer-review.html.twig' %}\n
{% endif %}\n
{% endfor %}\n
</div>\n
</div>\n
</div>\n
</div>\n
{% endif %}\n
\n
<!-- menu responsive -->\n
<div class="menu-mobile d-lg-none d-inline-block">\n
<div class="row no-gutters align-items-center">\n
<div class="col col-sm-2">\n
<a class="agent_link"\n
href="{{ getRoute('conseillers_fiche') }}/{{ getUrlAgent(agent.source.slug) }}">\n
<div class="photo_conseiller photo_no-border ">\n
<img src="{{ agent.getProfilePicture('medium') }}"\n
class="img-fluid agent_picture_img"\n
alt="{{ agent.identity.first_name }} {{ agent.identity.last_name }}"/>\n
</div>\n
</a>\n
</div>\n
<div class="col-5 col-xs-6 col-sm-6">\n
{% if active_language == 'fr' %}\n
<small class="font-weight-bold"><span class="badge_chat"></span>{{ 'AVAILABLE_TO_DISCUT'|t }}</small>\n
{% endif %}\n
<div class="txt_high d-block">\n
<span class="prenom">{{ agent.identity.first_name }}</span>\n
<span class="nom font-weight-bold text-uppercase">{{ agent.identity.last_name }}</span>\n
<div class="mt-1">\n
{% include 'inc/rating-stars.html.twig' with {rate: averageData.average_rate} %}\n
</div>\n
</div>\n
</div>\n
<div class="col">\n
<a href="tel:{{ phoneNumber }}">\n
<div class="bg_green cta-mobile">\n
<i class="fal fa-phone-volume text-white"></i>\n
</div>\n
</a>\n
</div>\n
<div class="col">\n
<a href="#" data-toggle="modal" data-target="#form-agent-modal" class=" mx-auto" id="form-agent-mobile" >\n
<div class="bg_orange cta-mobile">\n
<i class="fal fa-envelope text-white"></i>\n
</div>\n
</a>\n
</div>\n
</div>\n
</div>\n
\n
<div class="modal fade show" id="avisverifie">\n
<div class="modal-dialog modal-dialog-centered" role="document">\n
<div class="modal-content">\n
<div class="modal-header">\n
<button type="button" class="close" data-dismiss="modal" aria-label="Close">\n
<span aria-hidden="true">×</span>\n
</button>\n
</div>\n
<div class="modal-body">\n
<p>Avis clients authentiques et modérés conformément à la norme NF ISO 20488, délivrée par AFNOR Certification. Pour plus d’informations sur les caractéristiques du contrôle des avis et la possibilité de contacter l’auteur de l’avis, merci de consulter les <a class="ql-link btn-link" href="https://www.immodvisor.com/conditions-generales-utilisation" rel="noopener noreferrer" target="_blank">CGU</a></p>\n
<p>Aucune contrepartie n’a été fournie en échange des avis.</p>\n
<p>Les avis sont publiés et conservés pendant une durée de cinq ans.</p>\n
<p>Si un client souhaite modifier son avis, il doit contacter Immodvisor à\n
<a class="ql-link btn-link" href="mailto:[email protected]">\n
[email protected]</a>.<p>\n
<p>Les avis sont affichés de manière chronologique, du plus récent au plus ancien.</p>\n
</div>\n
<div class="modal-footer">\n
<button type="button" class="btn btn-primary" data-dismiss="modal">Fermer</button>\n
</div>\n
</div>\n
</div>\n
</div>\n
\n
{% include "inc/modal/form-contact-agent.html.twig" with { id: "form-agent",form: forms('form-agent-modal'), title: 'Demande de contact'|t, size: 'lg' } %}\n
"""
/var
/app
/current
/system
/src
/Grav
/Common
/Page
/Page.php
// if no cached-content run everything
if ($never_cache_twig) {
if ($this->content === false || $cache_enable === false) {
$this->content = $this->raw_content;
Grav::instance()->fireEvent('onPageContentRaw', new Event(['page' => $this]));
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
if ($cache_enable) {
$this->cachePageContent();
}
}
if ($process_twig) {
$this->processTwig();
}
} else {
if ($this->content === false || $cache_enable === false) {
$this->content = $this->raw_content;
Grav::instance()->fireEvent('onPageContentRaw', new Event(['page' => $this]));
if ($twig_first) {
if ($process_twig) {
$this->processTwig();
}
if ($process_markdown) {
$this->processMarkdown();
}
// Content Processed but not cached yet
Grav::instance()->fireEvent('onPageContentProcessed', new Event(['page' => $this]));
} else {
if ($process_markdown) {
/var
/app
/current
/system
/src
/Grav
/Common
/Twig
/Twig.php
return $output;
}
/**
* Twig process that renders the site layout. This is the main twig process that renders the overall
* page and handles all the layout for the site display.
*
* @param string $format Output format (defaults to HTML).
*
* @return string the rendered output
* @throws \RuntimeException
*/
public function processSite($format = null, array $vars = [])
{
// set the page now its been processed
$this->grav->fireEvent('onTwigSiteVariables');
$pages = $this->grav['pages'];
$page = $this->grav['page'];
$content = $page->content();
$twig_vars = $this->twig_vars;
$twig_vars['theme'] = $this->grav['config']->get('theme');
$twig_vars['pages'] = $pages->root();
$twig_vars['page'] = $page;
$twig_vars['header'] = $page->header();
$twig_vars['media'] = $page->media();
$twig_vars['content'] = $content;
$ext = '.' . ($format ?: 'html') . TWIG_EXT;
// determine if params are set, if so disable twig cache
$params = $this->grav['uri']->params(null, true);
if (!empty($params)) {
$this->twig->setCache(false);
}
// Get Twig template layout
$template = $this->template($page->template() . $ext);
/var
/app
/current
/system
/src
/Grav
/Common
/Service
/OutputServiceProvider.php
namespace Grav\Common\Service;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Common\Twig\Twig;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class OutputServiceProvider implements ServiceProviderInterface
{
public function register(Container $container)
{
$container['output'] = function ($c) {
/** @var Twig $twig */
$twig = $c['twig'];
/** @var PageInterface $page */
$page = $c['page'];
return $twig->processSite($page->templateFormat());
};
}
}
Arguments
/var
/app
/current
/vendor
/pimple
/pimple
/src
/Pimple
/Container.php
{
if (!isset($this->keys[$id])) {
throw new UnknownIdentifierException($id);
}
if (
isset($this->raw[$id])
|| !\is_object($this->values[$id])
|| isset($this->protected[$this->values[$id]])
|| !\method_exists($this->values[$id], '__invoke')
) {
return $this->values[$id];
}
if (isset($this->factories[$this->values[$id]])) {
return $this->values[$id]($this);
}
$raw = $this->values[$id];
$val = $this->values[$id] = $raw($this);
$this->raw[$id] = $raw;
$this->frozen[$id] = true;
return $val;
}
/**
* Checks if a parameter or an object is set.
*
* @param string $id The unique identifier for the parameter or object
*
* @return bool
*/
public function offsetExists($id)
{
return isset($this->keys[$id]);
}
/**
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/RenderProcessor.php
namespace Grav\Common\Processors;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class RenderProcessor extends ProcessorBase
{
public $id = 'render';
public $title = 'Render';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$container = $this->container;
$output = $container['output'];
if ($output instanceof ResponseInterface) {
return $output;
}
ob_start();
// Use internal Grav output.
$container->output = $output;
$container->fireEvent('onOutputGenerated');
echo $container->output;
// remove any output
$container->output = '';
$this->container->fireEvent('onOutputRendered');
$html = ob_get_clean();
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#908}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/DebuggerAssetsProcessor.php
namespace Grav\Common\Processors;
use Grav\Framework\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerAssetsProcessor extends ProcessorBase
{
public $id = 'debugger_assets';
public $title = 'Debugger Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->addAssets();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#910}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/PagesProcessor.php
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()}) [Not Found fallback]");
} else {
$this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()})");
$task = $this->container['task'];
$action = $this->container['action'];
if ($task) {
$event = new Event(['task' => $task, 'page' => $page]);
$this->container->fireEvent('onPageTask', $event);
$this->container->fireEvent('onPageTask.' . $task, $event);
} elseif ($action) {
$event = new Event(['action' => $action, 'page' => $page]);
$this->container->fireEvent('onPageAction', $event);
$this->container->fireEvent('onPageAction.' . $action, $event);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#466}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/TwigProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class TwigProcessor extends ProcessorBase
{
public $id = 'twig';
public $title = 'Twig';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['twig']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#258}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/AssetsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class AssetsProcessor extends ProcessorBase
{
public $id = '_assets';
public $title = 'Assets';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['assets']->init();
$this->container->fireEvent('onAssetsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#255}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/SchedulerProcessor.php
namespace Grav\Common\Processors;
use RocketTheme\Toolbox\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class SchedulerProcessor extends ProcessorBase
{
public $id = '_scheduler';
public $title = 'Scheduler';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$scheduler = $this->container['scheduler'];
$this->container->fireEvent('onSchedulerInitialized', new Event(['scheduler' => $scheduler]));
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#225}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/BackupsProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class BackupsProcessor extends ProcessorBase
{
public $id = '_backups';
public $title = 'Backups';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$backups = $this->container['backups'];
$backups->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#222}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/TasksProcessor.php
}
$this->stopTimer();
return $response;
} catch (NotFoundException $e) {
// Task not found: Let it pass through.
}
}
if ($task) {
$this->container->fireEvent('onTask.' . $task);
} elseif ($action) {
$this->container->fireEvent('onAction.' . $action);
}
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#220}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/RequestProcessor.php
$uri = $request->getUri();
$ext = mb_strtolower(pathinfo($uri->getPath(), PATHINFO_EXTENSION));
$request = $request
->withAttribute('grav', $this->container)
->withAttribute('time', $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME)
->withAttribute('route', Uri::getCurrentRoute()->withExtension($ext))
->withAttribute('referrer', $this->container['uri']->referrer());
$event = new RequestHandlerEvent(['request' => $request, 'handler' => $handler]);
/** @var RequestHandlerEvent $event */
$event = $this->container->fireEvent('onRequestHandlerInit', $event);
$response = $event->getResponse();
$this->stopTimer();
if ($response) {
return $response;
}
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#215}
RequestHandler {#213}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/ThemesProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ThemesProcessor extends ProcessorBase
{
public $id = 'themes';
public $title = 'Themes';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['themes']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#205}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/PluginsProcessor.php
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class PluginsProcessor extends ProcessorBase
{
public $id = 'plugins';
public $title = 'Plugins';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
// TODO: remove in 2.0.
$this->container['accounts'];
$this->container['plugins']->init();
$this->container->fireEvent('onPluginsInitialized');
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#143}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/InitializeProcessor.php
}
/** @var Uri $uri */
$uri = $this->container['uri'];
$uri->init();
// Redirect pages with trailing slash if configured to do so.
$path = $uri->path() ?: '/';
if ($path !== '/'
&& $config->get('system.pages.redirect_trailing_slash', false)
&& Utils::endsWith($path, '/')) {
$redirect = (string) $uri::getCurrentRoute()->toString();
$this->container->redirect($redirect);
}
$this->container->setLocale();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#136}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/DebuggerProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class DebuggerProcessor extends ProcessorBase
{
public $id = '_debugger';
public $title = 'Init Debugger';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['debugger']->init();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#134}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/ErrorsProcessor.php
*/
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ErrorsProcessor extends ProcessorBase
{
public $id = '_errors';
public $title = 'Error Handlers Reset';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['errors']->resetHandlers();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#122}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/LoggerProcessor.php
/** @var Config $config */
$config = $grav['config'];
switch ($config->get('system.log.handler', 'file')) {
case 'syslog':
$log = $grav['log'];
$log->popHandler();
$facility = $config->get('system.log.syslog.facility', 'local6');
$logHandler = new SyslogHandler('grav', $facility);
$formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%");
$logHandler->setFormatter($formatter);
$log->pushHandler($logHandler);
break;
}
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#100}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Processors
/ConfigurationProcessor.php
namespace Grav\Common\Processors;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ConfigurationProcessor extends ProcessorBase
{
public $id = '_config';
public $title = 'Configuration';
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$this->startTimer();
$this->container['config']->init();
$this->container['plugins']->setup();
$this->stopTimer();
return $handler->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
private $handler;
/** @var ContainerInterface|null */
private $container;
/**
* {@inheritdoc}
* @throws InvalidArgumentException
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
$middleware = array_shift($this->middleware);
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
ServerRequest {#68}
RequestHandler {#93}
/var
/app
/current
/system
/src
/Grav
/Framework
/RequestHandler
/Traits
/RequestHandlerTrait.php
// Use default callable if there is no middleware.
if ($middleware === null) {
return \call_user_func($this->handler, $request);
}
if ($middleware instanceof MiddlewareInterface) {
return $middleware->process($request, clone $this);
}
if (null === $this->container || !$this->container->has($middleware)) {
throw new InvalidArgumentException(
sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
$middleware
);
}
array_unshift($this->middleware, $this->container->get($middleware));
return $this->handle($request);
}
}
Arguments
/var
/app
/current
/system
/src
/Grav
/Common
/Grav.php
},
'debuggerAssetsProcessor' => function () {
return new DebuggerAssetsProcessor($this);
},
'renderProcessor' => function () {
return new RenderProcessor($this);
},
]
);
$default = function (ServerRequestInterface $request) {
return new Response(404);
};
/** @var Debugger $debugger */
$debugger = $this['debugger'];
$collection = new RequestHandler($this->middleware, $default, $container);
$response = $collection->handle($this['request']);
$this->header($response);
echo $response->getBody();
$debugger->render();
register_shutdown_function([$this, 'shutdown']);
}
/**
* Set the system locale based on the language and configuration
*/
public function setLocale()
{
// Initialize Locale if set and configured.
if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) {
$language = $this['language']->getLanguage();
setlocale(LC_ALL, \strlen($language) < 3 ? ($language . '_' . strtoupper($language)) : $language);
} elseif ($this['config']->get('system.default_locale')) {
setlocale(LC_ALL, $this['config']->get('system.default_locale'));
Arguments
/var
/app
/current
/index.php
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
// Set internal encoding if mbstring loaded
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
mb_internal_encoding('UTF-8');
// Get the Grav instance
$grav = Grav::instance(
array(
'loader' => $loader
)
);
// Process the page
try {
$grav->process();
} catch (\Error $e) {
$grav['log']->error('Error.' . __CLASS__ . ':' . __METHOD__ . ': ' . print_r([
'msg' => $e->getMessage(),
'url' => $grav['page']->url(),
'uri' => $grav['uri']->route(),
'trace' => $e->getTraceAsString(),
], true));
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
} catch (\Exception $e) {
$grav['log']->error('Exception.' . __CLASS__ . ':' . __METHOD__ . ': ' . print_r([
'msg' => $e->getMessage(),
'url' => $grav['page']->url(),
'uri' => $grav['uri']->route(),
'trace' => $e->getTraceAsString(),
], true));
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
throw $e;
}