Темизация Drupal урок 8 Темизация страницы пользователя user-profile.tpl.php

В этом уроке мы разберем как темизировать страницу пользователей. Мы будем использовать шаблон user-profile.tpl.php.

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Не смог найти в поиске на

Не смог найти в поиске на сайте упоминаний о хлебных крошках, поэтому решил сразу спросить какой модуль лучше всего использовать для создания хлебных крошек?  Будет существовать 4 уровня материала: главная-продукция-мячи-наименование. Первый и последний пункт он мне выводит без проблем а вот с теми двумя что по середине проблема.

Это можно сделать проще всего

Это можно сделать проще всего в через сниппет (то есть php-код), этот код можно вставить в tempate.php темы:

function dml_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];
  if(arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){
    $term = taxonomy_term_load(arg(2));
    if($term->vocabulary_machine_name == 'catalog'){
      $last_bread = array_pop($breadcrumb);
    }
  }
  
  if(arg(0) == 'documentation' && is_numeric(arg(1))){
    $breadcrumb = array();
    $breadcrumb[] = '<a href="/">Главная</a>';
    $breadcrumb[] = '<a href="/documentation">Техническая документация</a>';
    
    $brand = node_load(arg(1));
    //dsm($brand);
    if(!empty($brand) && $brand->type == 'brand'){
       $breadcrumb[] = l($brand->field_brand_name['und'][0]['value'], 'node/'.$brand->nid);
       drupal_set_title('Техническая документация ' . $brand->field_brand_name['und'][0]['value']);
    }
  }
  
  
  /* если для ноды
  if(arg(0) == 'node' && is_numeric(arg(1))){
    $node = node_load(arg(1)){
      if(!empty($node) && $node->type == 'documentation'){
        
      }
    }
  }
  */
  
  
  if (!empty($breadcrumb)) {
    // Provide a navigational heading to give context for breadcrumb links to
    // screen-reader users. Make the heading invisible with .element-invisible.
    $output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';

    $output .= '<div class="breadcrumb">' . implode('<img src="/sites/all/themes/dml/images/breadcrumb.gif" hspace=10>', $breadcrumb) . '</div>';
    return $output;
  }
}

Естественно у вас будут свои именна полей, так что используйте модуль devel и его dsm(), чтобы распечатывать ноду и смотреть какие значения полей и выводить их.

Можно более подробно, а то я

Можно более подробно, а то я не понимаю.
У меня к примеру на сайте нет терминов таксономии, использовать их обязательно?  Если нет - нужно раскоментировать вывод ноды и туда используя модуль devel и dms  вставить значения полей? dms чего нужно выводить dsm($page) я php впринципе не знаю поэтому делаю лишь то что описано в уроках.

Добрый день!

Добрый день!

А в каком файле или как темезировать форму редактирования пользователя и верхнее меню (просмотр, редактировать и тп..).

Можно ли туда вывести категории в которых пользователь публиковал материалы и личные сообщение?

Здравствуйте, в табы можно

Здравствуйте, в табы можно вывести страницы, просто ссылки вряд ли получится. Нужно чтобы путь был такой:
user/%/messages
user/%/content
это можно сделать через Views или свой кастомный route в своем модуле.

Форму редактирования пользователя можно менять через настройки полей пользователя. Также можно исползовать hook_form_alter() в своем модуле.

Пока я еще не делал видео по программированию своих модулей, но уже на drupal.org предостаточно документации по этому.

Со своим шаблоном

Со своим шаблоном редактирования профилия пользователя разобрался по этой статье https://buildingwebs.wordpress.com/2011/05/11/customizing-edit-user-page-in-drupal-7/

А по табам/меню получается лучше сделать через views указав id пользователя в ссылках.. а как тогда убрать текущие пункты?