protected function StaticGenerator::filterInvokePaths in Tome 8
Filters invoke paths to remove any external or cached paths.
Parameters
array $invoke_paths: An array of paths returned by requestPath or exportPaths.
\Symfony\Component\HttpFoundation\Request $request: A request object.
Return value
array An array of paths to invoke.
2 calls to StaticGenerator::filterInvokePaths()
- StaticGenerator::exportPaths in modules/
tome_static/ src/ StaticGenerator.php - Exports multiple paths.
- StaticGenerator::requestPath in modules/
tome_static/ src/ StaticGenerator.php - Requests and exports a given path.
File
- modules/
tome_static/ src/ StaticGenerator.php, line 279
Class
- StaticGenerator
- Handles static site generation.
Namespace
Drupal\tome_staticCode
protected function filterInvokePaths(array $invoke_paths, Request $request) {
$invoke_paths = preg_replace([
'/^#.*/',
'/#.*/',
], [
'/',
'',
], $invoke_paths);
foreach ($invoke_paths as $i => &$invoke_path) {
$invoke_path = $this
->makeExternalUrlLocal($invoke_path);
if (UrlHelper::isExternal($invoke_path) || strpos($invoke_path, 'data:') === 0) {
unset($invoke_paths[$i]);
continue;
}
$components = parse_url($invoke_path);
if (isset($components['query'])) {
parse_str($components['query'], $query);
if (isset($query['destination'])) {
unset($query['destination']);
}
$query = http_build_query($query);
$invoke_path = $components['path'];
if (!empty($query)) {
$invoke_path .= '?' . $query;
}
}
}
$invoke_paths = $this->cache
->filterUncachedPaths($request
->getSchemeAndHttpHost(), $invoke_paths);
return array_values(array_unique($invoke_paths));
}