Skip to main content
Category:

In this article, I'll show you how to create Token Drupal to return absolute url without language prefix.

Follow the instructions below:

Create absolute_url.info.yml file:

name: Absolute URL
type: module
description: "Returns absolute url of the site, no language prefix garanted"
package: Custom
core_version_requirement: ^8 || ^9

Create absolute_url.module file:

The first thing we’ll need in this file is, hook_tokens_info() This is where we’ll define our tokens for Drupal. Which will make your new token available in UI.

In the second half of the code, the hook_tokens() function is used to actually make the token perform its desired function.

<?php

use Drupal\Core\Render\BubbleableMetadata;

/**
 * Implements hook_token_info()
 */

function absolute_url_token_info()
{

  $info['tokens']['site']['absolute_url'] = array(
    'name' => t('Absolute URL'),
    'description' => t('Url of the site, no language prefix garanted'),
  );

  return $info;
}


/**
 * Implements hook_tokens()
 */

function absolute_url_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata)
{
  $replacements = array();
  global $base_root;


  foreach ($tokens as $name => $original) {
    switch ($name) {
      case 'absolute_url':
        $replacements[$original] = $base_root;
        break;
    }
  }


  return $replacements;
}

 

Clear your Drupal 8 caches, and then your new token will be available in UI.

custom token in drupal 8

Next steps

  • Clear your Drupal caches. To do this I use this Drush command: drush cr if you don’t currently use Drush, I highly recommend using it, or the Drupal Console.
  • Now, go back to your site, and you should be able to see the new custom token.
  • I hope you found this article useful. let me know if you have any questions and I’ll be happy to answer them.

 

 

Riadh Rahmi

Senior Web Developer PHP/Drupal & Laravel

I am a senior web developer, I have experience in planning and developing large scale dynamic web solutions especially in Drupal & Laravel.

Web Posts

Search

Page Facebook