Đặt mã thông báo làm giá trị mặc định của trường mới


8

Trong Drupal 7, bạn có thể đặt giá trị mặc định cho hầu hết các trường. Có thể đặt mã thông báo làm giá trị mặc định.

Tôi nhớ điều này là có thể trong Drupal 6, nhưng dường như không thể có trong Drupal 7.

Có một chủ đề ở đây thảo luận về khả năng, nhưng không rõ liệu nó đã được giải quyết chưa.


Có một yêu cầu tính năng mở cho mã này trong mã thông báo mô-đun ( drupal.org/node/1070878 )
Refineo

Một cách giải quyết có thể có ở đây: drupal.org/node/1070878#comment-5103914
Refineo

1
Dưới đây là bản vá 8 lõi Drupal liên quan cho việc này ( drupal.org/node/1308564 ).
Refineo

Câu trả lời:


1

Bạn cố lấy thông tin gì ??

Trong một trong các Loại Nội dung của tôi, tôi cần truy xuất ID nút. Tôi thấy rằng mã thông báo cho ID nút hiện tại là:

[current-page:url:args:last]

Đã thử nghiệm và làm việc cho tôi !!


0

Đó là làm việc cho tôi:

/**
 * Implements hook_field_widget_form_alter().
 */
function MODULE_hook_field_widget_form_alter(&$element, &$form_state, $context) {
  // Prevent replace tokens on field admin ui form.
  if (!is_null($element['#entity'])) {
    // Determine the $user. If entity has uid, try to load. If can't, use the
    // global $user.
    if (isset($element['#entity']->uid)) {
      if (!$user = user_load($element['#entity']->uid)) {
        global $user;
      }
    }

    // Build data for token replacement.
    $data = array(
      $element['#entity_type'] => $element['#entity'],
      'user' => $user,
    );
    // Eg. the body field, the default value is stored in
    // $element['#default_value']
    if (isset($element['#default_value']) && !is_array($element['#default_value'])) {
      $element['#default_value'] = token_replace($element['#default_value'], $data);
    }
    // Eg. the link field, the default value is stored in
    // $element['#default_value']['url']
    else if (is_array($element['#default_value'])) {
      foreach ($element['#default_value'] as $key => $value) {
        if (is_string($value)) {
          $element['#default_value'][$key] = token_replace($value, $data);
        }
      }
    }
    // Eg. the text field, the default value is stored in
    // $element['value']['#default_value']
    else if (isset($element['value'])) {
      if (isset($element['value']['#default_value']) && !is_array($element['value']['#default_value'])) {
        $element['value']['#default_value'] = token_replace($element['value']['#default_value'], $data);
      }
    }
  }
}

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.