Andrew Fletcher published: 9 June 2021 (updated) 4 January 2022 1 minute read
Creating URL's in Drupal programmatically:
Internal path
use Drupal\Core\Link; use Drupal\Core\Url; $internal_link = Link::fromTextAndUrl(t('Drupal nodes'), Url::fromUri('internal:/node', $options))->toString();
External Url
use Drupal\Core\Link; use Drupal\Core\Url; $external_link = Link::fromTextAndUrl(t('Codebales'), Url::fromUri('http://www.codebales.com/'))->toString();
Url with options
use Drupal\Core\Link; use Drupal\Core\Url; $options = array( 'query' => ['type' => 'article', 'status' => 1], 'fragment' => 'article-list', 'attributes' => ['class' => ['btn', 'btn-mini']], 'absolute' => TRUE, ); $link = Link::fromTextAndUrl(t('Drupal node articles'), Url::fromUri('internal:/node', $options))->toString();
Render type Link
use Drupal\Core\Url; $render_array['link'] = array( '#title' => $this->t('Link Text Goes Here!'), '#type' => 'link', '#url' => Url::fromRoute('entity.node.canonical', ['node' => 1]), );
Related articles
Andrew Fletcher
•
22 Apr 2024
Streamlined Drupal 10 Deployment: Best Practices for Stability and Security
Have you ever walked into a situation and marveled at how a site is still operational? Deployments that are riddled with fail-safes piled atop a shaky foundation. The real challenge lies in gradually persuading the team to embrace change to build a stable, robust deployment process aligned with...
Andrew Fletcher
•
21 Apr 2024
This command will help you spot any unusually large directories
The red flag was when I saw the server disk space is showing a site is taking up 57992.5 MB, where locally the site size is showing 957MB. There is something serious happening here and I need to establish the problem quickly. When dealing with a significant discrepancy in site size...
Andrew Fletcher
•
19 Apr 2024
Extending a Contrib Module's Configuration in Drupal 10: A Case Study with Sitewide Alert
Extending the functionality of a contrib module in Drupal can enhance its usefulness without altering the original codebase. This article provides a step-by-step guide on how to add custom configuration options to an existing contrib module, using the sitewide_alert module as an example. We will...