Показать блок только на странице профиля пользователя

10

Я хочу показать блок, когда пользователь заходит на страницу своего профиля в / user. Публичные профили пользователей имеют пути "/ member / [username]".

Когда я ограничу блок «пользователем», он не будет отображаться. Когда я ограничиваю его до "member / *", он будет отображаться как в собственном профиле, так и в общедоступных профилях.

URL пользователя является чем-то особенным?

Уве
источник
2
Это также работает для "user / *", что заставляет меня думать, что внутренний псевдоним userстраницы на самом деле user/[uid]... возможно, придется прибегнуть к PHP для этого: /
Clive
7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);сделает свое дело
Клайв
1
@Clive Как обычно, бросая
огонь
@Clive, просто хотел дать вам дополнительные реквизиты для этого ответа. Через год я снова нашел эту страницу. Еще раз спасибо!
hockey2112

Ответы:

2

То, что упомянул @clive, замечательно, если вы хотите использовать /userдля этого, но с разных точек зрения, я действительно не люблю использовать его вообще для такого рода вещей. Я хотел бы сказать, в основном, с точки зрения стиля, но на самом деле больше с точки зрения связывания, например, по электронной почте или посту, который включает в себя check out my cool profile on mototribe: www.mototribe.com/userразличные вещи.

Итак, когда я сделал что-то подобное, я включил php-логику в мой блочный вид по следующей схеме:

$global $user;
$block=array();
$node=menu_get_object();

if ($node->type==THENODETYPEWEARELOOKINGFOR && $node->uid==$user->uid) {
  // generate the block here
} else {
  // don't generate anything (or put something else in it's place)
}

return $block;

таким образом, блок генерируется только тогда, когда текущий вошедший в систему пользователь просматривает определенный тип узла, которым он / она владеет. Очевидно, я не выделил все isset () или empty (), необходимые в прайм-тайм для вышеупомянутого, но я уверен, что вы получите jist.

Конечно, я мог бы также говорить об этом, если пользовательские профили D7 не являются узлами, но это прекрасно работает в D6 с профилями контента :)

Jimajamma
источник
это отличный момент и причина не использовать / пользователь. Я думаю, что я могу использовать некоторый PHP, чтобы проверить, просматривает ли вошедший в себя пользователь свой профиль, чтобы показать дополнительный блок. Спасибо
Уве
Комбинация вашего кода и кода Клайва: global $ user; return arg (0) == 'пользователь' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Еще раз спасибо!!!
Уве