Увеличить ограничение на отображаемое количество символов имени пользователя

Главные вкладки

Аватар пользователя DD 85 DD 85 29 января 2020 в 11:52

На странице /admin/people отображается список имён пользователей. Мне нужно увеличить ограничение на отображаемое количество символов имени пользователя.
Из файла /core/modules/user/user.module копирую этот код, вставляю в файл .theme своей темы, увеличиваю ограничения в два раза (меняю 20 на 40, 15 на 30) заменяю template на машинное имя своей темы.
Сайт падает. Что я делаю не так? Почему это не работает? Как надо?

<?php
/**
 * Prepares variables for username templates.
 *
 * Default template: username.html.twig.
 *
 * Modules that make any changes to variables like 'name' or 'extra' must ensure
 * that the final string is safe.
 *
 * @param array $variables
 *   An associative array containing:
 *   - account: The user account (\Drupal\Core\Session\AccountInterface).
 */
function template_preprocess_username(&$variables) {
  
$account $variables['account'] ?: new AnonymousUserSession();

  

$variables['extra'] = '';
  
$variables['uid'] = $account->id();
  if (empty(
$variables['uid'])) {
    if (
theme_get_setting('features.comment_user_verification')) {
      
$variables['extra'] = ' (' t('not verified') . ')';
    }
  }

  

// Set the name to a formatted name that is safe for printing and
  // that won't break tables by being too long. Keep an unshortened,
  // unsanitized version, in case other preprocess functions want to implement
  // their own shortening logic or add markup. If they do so, they must ensure
  // that $variables['name'] is safe for printing.
  
$name $account->getDisplayName();
  
$variables['name_raw'] = $account->getAccountName();
  if (
mb_strlen($name) > 20) {
    
$name Unicode::truncate($name15FALSETRUE);
    
$variables['truncated'] = TRUE;
  }
  else {
    
$variables['truncated'] = FALSE;
  }
  
$variables['name'] = $name;
  if (
$account instanceof AccessibleInterface) {
    
$variables['profile_access'] = $account->access('view');
  }
  else {
    
$variables['profile_access'] = \Drupal::currentUser()->hasPermission('access user profiles');
  }

  

$external FALSE;
  
// Populate link path and attributes if appropriate.
  
if ($variables['uid'] && $variables['profile_access']) {
    
// We are linking to a local user.
    
$variables['attributes']['title'] = t('View user profile.');
    
$variables['link_path'] = 'user/' $variables['uid'];
  }
  elseif (!empty(
$account->homepage)) {
    
// Like the 'class' attribute, the 'rel' attribute can hold a
    // space-separated set of values, so initialize it as an array to make it
    // easier for other preprocess functions to append to it.
    
$variables['attributes']['rel'] = 'nofollow';
    
$variables['link_path'] = $account->homepage;
    
$variables['homepage'] = $account->homepage;
    
$external TRUE;
  }
  
// We have a link path, so we should generate a URL.
  
if (isset($variables['link_path'])) {
    if (
$external) {
      
$variables['attributes']['href'] = Url::fromUri($variables['link_path'], $variables['link_options'])
        ->
toString();
    }
    else {
      
$variables['attributes']['href'] = Url::fromRoute('entity.user.canonical', [
        
'user' => $variables['uid'],
      ])->
toString();
    }
  }
}
?>

Лучший ответ

Аватар пользователя marassa marassa 29 января 2020 в 14:52

Из файла /core/modules/user/user.module копирую этот код, вставляю в файл .theme своей темы

Вот уж воистину трансректальная тонзиллэктомия Wink
Страница admin/people это самое обыкновенное view.
Вот его определение: admin/structure/views/view/user_admin_people
Просто меняете форматтер поля User: Name на Plain text, и все дела.

Комментарии

Аватар пользователя marassa marassa 29 января 2020 в 14:52

Из файла /core/modules/user/user.module копирую этот код, вставляю в файл .theme своей темы

Вот уж воистину трансректальная тонзиллэктомия Wink
Страница admin/people это самое обыкновенное view.
Вот его определение: admin/structure/views/view/user_admin_people
Просто меняете форматтер поля User: Name на Plain text, и все дела.

Аватар пользователя DD 85 DD 85 30 января 2020 в 15:43

Не привык ещё ко всем чудесам восьмёрки и продолжаю пользоваться знакомыми методами из семёрки.