Andrew Fletcher published: 20 June 2022 2 minutes read
In this instance, I'll check the beginning of the string. I want to focus on the href's that start with /node/. Which has been added using the variable $catchPhrase.
Using the Drupal service path_alias to return the node.nid as follows:
/**
* Load the node nid from the URL alias.
*
* @param string $url URL string.
*
* @return any
*/
public function getNodeNidFromAlias($url, $phrase)
{
// Default values.
$nid = null;
$path = \Drupal::service('path_alias.manager')->getPathByAlias($url);
$strlen = strlen($phrase);
if (substr($path, 0, $strlen) === $phrase) {
$nid = substr($path, $strlen, strlen($path) - $strlen);
}
return $nid;
}
If you are using PHP8, then instead you can use
str_starts_with('https://www.codebales.com', 'https')
How was the getNodeNidFromAlias() used?
The initial call came from
$nid = $this->helper->getNodeNidFromAlias($link['href'], '/node');
$type = $this->helper->getTypeFromNid($nid);
The section of the helper file was
/**
* Load the node nid from the URL alias.
*
* @param string $url URL string.
*
* @return any
*/
public function getNodeNidFromAlias($url, $phrase)
{
// Default values.
$nid = null;
$path = \Drupal::service('path_alias.manager')->getPathByAlias($url);
$strlen = strlen($phrase);
if (substr($path, 0, $strlen) === $phrase) {
$nid = substr($path, $strlen, strlen($path) - $strlen);
}
return $nid;
}
/**
* Get the node type.
*
* @param any $nid Node nid.
*
* @return any
*/
public function getTypeFromNid($nid)
{
if (is_null($nid)) {
return null;
}
$node = \Drupal\node\Entity\Node::load($nid);
return $node->getType();
}
Related articles
Andrew Fletcher
•
11 Nov 2024
How to resolve the "filemtime(): stat failed" warning in Drupal 10 / 11
If you’re running a website on Drupal 10.x or 11.x, you might encounter a warning like this in your logs:> "Warning: filemtime(): stat failed for sites/default/files/php/twig/67312f8c6d7ee_paragraph.html.twig_oBJkUYn5Hj1Gltpsh3AXvAcSC/ErOs4_HSnzbWqmYFWDDuM3htp2ANqUUtX84lTbfu2Bg.php in...
Andrew Fletcher
•
10 Sep 2024
Resolving PHP GD library issues in Drupal
IntroductionFor a while now, one persistent issue has been bugging me: a warning on Drupal's 'status report' page that reads:GD librarylibrary bundled (2.1.0 compatible)Supported image file formats: GIF, PNG.Unsupported image file formats: JPEG, WEBP.Check the PHP GD installation documentation if...
Andrew Fletcher
•
03 Sep 2024
Best practices and methods on how to create a Drupal 10 patch
When working on Drupal projects, especially in a collaborative environment, it’s crucial to follow best practices for creating and managing patches. Patches are essential for contributing back to the community, applying quick fixes, or sharing custom changes with your team. In this article, we'll...