Могу ли я добавить ссылку на ссылку на узел при использовании виджета автозаполнения?


Мне нравится виджет автозаполнения для модуля ссылок в Drupal 7, но мне кажется странным, что он не содержит ссылки на указанный узел (просмотр или редактирование)?

Есть ли какой-нибудь способ в hook_form_alter, чтобы я мог как-то это добавить?


Я могу сделать это:

$form['field_lessons']['und'][0]['#suffix'] = '<a href="#">Edit</a>';

И в поле автозаполнения под ним есть ссылка на редактирование, но это не работает:

foreach($form['field_lessons']['und'] AS $lesson) {
  $lesson['#suffix'] = '<a href="#">Edit</a>';
}

, А также циклы 10+ раз, хотя у меня есть только 1 ссылка на узел в настоящее время: s


Мне это не обязательно нравится, но я могу сделать это на Javascript вот так, и перетаскивание все еще работает:

$('#edit-field-lessons .form-item').each(function(i) {
  var lesson_nid = $(this).find('input[type="text"]').val();
  lesson_nid = lesson_nid.substring(lesson_nid.indexOf('[nid:')+5, lesson_nid.indexOf(']'));

  $(this).append('<a class="view" href="node/' + lesson_nid + '">View</a>');
  $(this).append('<a class="edit" href="node/' + lesson_nid + '/edit">Edit</a>');
});
Author: SomethingOn, 2012-05-31

1 answers

Это сработает (на этот раз я проверил это;)):

foreach($form['field_lessons'][LANGUAGE_NONE] as $key => $lesson) {
  // If we have a default value for the nid, we have a populated node reference
  if (isset($lesson['nid']) && is_array($lesson['nid']) && $lesson['nid']['#default_value'])) {
    // Get the nid
    $nid = $lesson['nid']['#default_value'];

    // Create an edit link
    $link = l('Edit', "node/$nid/edit");

    // Add it to the element
    $form['field_lessons'][LANGUAGE_NONE][$key]['nid']['#suffix'] = $link;
  }
}
 1
Author: Clive, 2012-05-31 23:44:30