Показати блок лише на сторінці профілю користувача


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 Як завжди, кидаючи ВІГА у коментарі = D
Цифрова пожежа

@Clive, просто хотів дати вам подальший реквізит для цієї відповіді. Через рік я знову знайшов цю сторінку. Знову дякую!
хокей2112

Відповіді:


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;

тож блок генерується лише тоді, коли користувач, який увійшов у даний момент, переглядає певний тип вузла, який йому належить. Очевидно, що я не промальовував усіх необхідних для перерахованих часів набору () або порожніх (), але я впевнений, що ви отримаєте суєту.

Звичайно, я можу також говорити про загальний присмак тут, якщо профілі користувачів D7 не є вузлами, але це добре працює в D6 зі змістовими профілями :)


це чудовий момент і причина не використовувати / користувача. Я думаю, я можу використовувати деякий PHP, щоб перевірити, чи зареєстрований користувач переглядає свій власний профіль, щоб показати додатковий блок. Спасибі
uwe

Поєднання вашого та коду Clive: глобальний користувач $; return arg (0) == 'user' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Знову дякую!!!
uwe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.