<?php

/**
 * Preprocess functions for GEO site.
 */

/**
 * Implements hook_preprocess_page_title();
 *
 * @param $variables
 */
function geofresco_preprocess_page_title(&$variables) {
  // WE SHALL BE SHAMELESS.
  if (!isset($variables['title']) || !is_array($variables['title'])) {
    // The pages we're interested in have title as markup, so bail if it's not.
    return;
  }
  $string = isset($variables['title']['#markup']) ? $variables['title']['#markup'] : FALSE;
  if ($string && strlen($string) > 7 && $pos = strpos($string, "'s blog", -7)) {
    $uid = substr($string, 0, $pos);
    if (is_numeric($uid) && $account = \Drupal\user\Entity\User::load($uid)) {
      $variables['title'] = [
        '#markup' => t("@username's blog",
          ['@username' => $account->getDisplayName()])
      ];
    }
  }
}

/**
 * Implements hook_preprocess_HOOK() for comment.
 *
 * Shortens and stacks username and submitted date.
 */
function geofresco_preprocess_comment(array &$variables) {
  $comment = $variables['elements']['#comment'];
  if (isset($comment->in_preview)) {
    $variables['permalink_url'] = new Url('<front>');
  }
  else {
    $variables['permalink_url'] = $comment->permalink();
  }
}
