Merge branch 'develop' of github.com:getgrav/grav into develop

This commit is contained in:
Andy Miller
2022-03-18 13:15:44 -06:00
2 changed files with 12 additions and 9 deletions

View File

@@ -557,7 +557,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface
public function replaceLastFilter($str, $search, $replace)
{
if (is_string($str) && ($pos = mb_strrpos($str, $search)) !== false) {
$str = substr_replace($str, $replace, $pos, mb_strlen($search));
$str = mb_substr($str, 0, $pos) . $replace . mb_substr($str, $pos + mb_strlen($search));
}
return $str;

View File

@@ -78,19 +78,12 @@ abstract class Utils
$grav = Grav::instance();
// is this a page?
/** @var Pages $pages */
$pages = $grav['pages'];
$page = $pages->find($input, true);
if ($page && $page->routable()) {
return $page->url($domain);
}
/** @var Uri $uri */
$uri = $grav['uri'];
$resource = false;
if (static::contains((string)$input, '://')) {
// Url contains a scheme (https:// , user:// etc).
/** @var UniformResourceLocator $locator */
$locator = $grav['locator'];
@@ -142,6 +135,16 @@ abstract class Utils
$resource = $locator->findResource($input, false);
}
} else {
// Just a path.
/** @var Pages $pages */
$pages = $grav['pages'];
// Is this a page?
$page = $pages->find($input, true);
if ($page && $page->routable()) {
return $page->url($domain);
}
$root = preg_quote($uri->rootUrl(), '#');
$pattern = '#(' . $root . '$|' . $root . '/)#';
if (!empty($root) && preg_match($pattern, $input, $matches)) {