Lấy ra một trường trong user

Events happening in the community are now at Drupal community events on www.drupal.org.
chuyennv's picture

Chào các bạn,

Lấy ra một trường trong user:

Mình vào Configuration --> Account settings --> Manage fields.
Rồi tạo thêm một trường cho user như sau:

| Label -------| Name
| birthday ----| field_date

Bây giờ mình muốn viết một module tạo ra một block và hiển thị lời chào đến thành viên vào đúng ngày sinh nhật thì phải làm thế nào?

function birthday_block_view($delta = '') {
  $block['subject'] = t('- Birthday -');

//Neu hom nay la ngay sinh nhat cua thanh vien dang online thi hien thi: "Chuc mung sinh nhat!".
  $block['content'] = $user->birthday;
  return $block;
}

Comments

Chào bạn, Bạn dùng global

nguyentran's picture

Chào bạn,

Bạn dùng global $user;

Sau đó $user->machinenamefieldbirthday sẽ ra ngày sinh nhật, sau đó muốn làm gì thì làm.

Biến chính xác ở đây gì, mình

chuyennv's picture

Biến chính xác ở đây là gì, mình thử nhiều kiểu không được!!!

$user->machinenamefieldbirthday

thanks

$user->field_date["und"][0]['

MinhVN's picture

$user->field_date["und"][0]['value']

Mà mấy cài này bạn print_r($user) ra là bạn thấy thôi mà.

Xin chào, Sorrry, cái đó gọi

nguyentran's picture

Xin chào,

Sorrry, cái đó gọi là machine name là tên mà bạn đặt cho field khi tạo field, còn lấy ra như thế nào bạn chỉ cần in ra dùng print_r dựa trên machine name, khi bạn in ra sẽ thấy dạng mãng (array). Bạn dựa trên đó mà lấy ra. Giống như cách bạn MinhVN trình bày. Đại loại như vậy, nếu bạn vẫn chưa rõ thì mình sẽ demo cho bạn coi nếu cần.

Thanks.

Mình đã thử nhiều cách và

chuyennv's picture

Xin chào,

Mình đã thử nhiều cách và cuối cùng đã làm được theo cách sau:
.
.

function birthday_block_view($delta = '') {
  global $user;
  $u = db_select('field_data_field_date')->fields('field_data_field_date', array('field_date_value'))->condition('entity_id', $user->uid)->execute();
  foreach ($u as $us) {
    $birthday = $us->field_date_value;
  }
  $block['subject'] = t('- Birthday -');
  $block['content'] = format_date($birthday, 'custom', 'D, d M Y');
  return $block;
}

làm được rồi

luatviettin's picture

Vừa thiết kế một diễn đàn, nhờ các bạn đã tư vấn cho bạn chủ thớt mà mình đã làm được ! cảm ơn mọi người !