Chỉ hiển thị khối trên / trang hồ sơ người dùng


10

Tôi muốn hiển thị một khối khi người dùng truy cập trang hồ sơ của chính họ tại / người dùng. Hồ sơ người dùng công cộng có đường dẫn "/ thành viên / [tên người dùng]".

Khi tôi giới hạn khối thành "người dùng", nó sẽ không hiển thị. Khi tôi giới hạn ở "thành viên / *", nó sẽ hiển thị cả trên hồ sơ cá nhân và trên hồ sơ công khai.

Url "người dùng" có gì đặc biệt không?


2
Nó cũng hoạt động cho "user / *" khiến tôi nghĩ bí danh nội bộ của usertrang thực sự user/[uid]... có thể phải dùng đến PHP cho cái này: /
Clive

7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);sẽ thực hiện mánh khóe
Clive

1
@Clive Như thường lệ, giảm
lửa

@Clive, chỉ muốn cung cấp cho bạn thêm đạo cụ cho câu trả lời này. Một năm sau, và tôi tìm thấy trang này một lần nữa. Cảm ơn một lần nữa!
khúc côn cầu2112

Câu trả lời:


2

Những gì @clive đã đề cập là tuyệt vời nếu bạn muốn sử dụng /usercho việc này, nhưng từ một số góc độ, tôi thực sự không thích sử dụng nó cho loại điều này. Tôi muốn nói chủ yếu từ góc độ phong cách, nhưng thực sự nhiều hơn từ góc độ liên kết, ví dụ, một email hoặc bài đăng bao gồm check out my cool profile on mototribe: www.mototribe.com/usernhững điều boll trộn lên.

Vì vậy, khi tôi đã thực hiện những thứ như thế này, tôi đưa logic php vào chế độ xem khối của mình dọc theo dòng:

$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;

vì vậy, khối chỉ được tạo khi người dùng hiện đang đăng nhập nhìn vào một loại nút nhất định mà họ sở hữu. Rõ ràng là tôi đã không đưa ra tất cả những gì cần thiết () hoặc trống () trong thời gian chính cho những điều trên nhưng tôi chắc chắn rằng bạn sẽ nhận được ý chính.

Tất nhiên, tôi cũng có thể nói về tổng số cú đánh ở đây nếu hồ sơ người dùng D7 không có nút, nhưng điều này hoạt động rất tốt trong D6 với hồ sơ nội dung :)


đó là một điểm tuyệt vời và một lý do để không sử dụng / người dùng. Tôi đoán rằng tôi có thể sử dụng một số PHP để kiểm tra xem người dùng đã đăng nhập có đang xem hồ sơ của chính họ để hiển thị khối bổ sung hay không. Cảm ơn
uwe

Kết hợp mã của bạn và mã Clive: toàn cầu $ user; return arg (0) == 'user' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Cảm ơn một lần nữa !!!
uwe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.