ตั้งโทเค็นเป็นค่าเริ่มต้นของเขตข้อมูลใหม่


8

ใน Drupal 7 คุณสามารถตั้งค่าเริ่มต้นสำหรับฟิลด์ส่วนใหญ่ เป็นไปได้ไหมที่จะตั้งโทเค็นเป็นค่าเริ่มต้น

ฉันจำได้ว่าสิ่งนี้เป็นไปได้ใน Drupal 6 แต่ดูเหมือนจะเป็นไปไม่ได้ใน Drupal 7

มีเธรดที่นี่ที่พูดถึงความเป็นไปได้ แต่มันไม่ชัดเจนหากแก้ไข


มีการร้องขอคุณสมบัติแบบเปิดสำหรับสิ่งนี้ในโมดูลโทเค็น ( drupal.org/node/1070878 )
ปรับแต่ง

วิธีแก้ปัญหาที่เป็นไปได้อยู่ที่นี่: drupal.org/node/1070878#comment-5103914
ปรับแต่ง

1
นี่คือ Drupal 8 core patch ที่เกี่ยวข้องสำหรับเรื่องนี้ ( drupal.org/node/1308564 )
Refineo

คำตอบ:


1

คุณพยายามรับข้อมูลอะไร?

ในหนึ่งในประเภทเนื้อหาของฉันฉันต้องดึง ID โหนด ฉันพบว่าโทเค็นสำหรับ ID โหนดปัจจุบันคือสิ่งนี้:

[current-page:url:args:last]

ผ่านการทดสอบและใช้งานได้สำหรับฉัน !!


0

มันใช้งานได้สำหรับฉัน:

/**
 * 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);
      }
    }
  }
}

-1

ติดตั้งโมดูลโทเค็นเริ่มต้นของฟิลด์

โมดูลนี้ช่วยให้สามารถใช้โทเค็นเป็นค่าเริ่มต้นของฟิลด์ การอภิปรายหลัก: # 1070878: อนุญาตให้ราชสกุลที่จะใช้ในค่าเริ่มต้นของเขตข้อมูล


โมดูลดูเหมือนจะไม่ได้รับการสนับสนุนที่ดีและมีปัญหาเปิดจำนวนมาก
mbomb007
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.