Я использовал модули field_collection и field_collection_fieldset из drupal-7. Я настроил поле field collection (неограниченное количество элементов) для типа контента. Поэтому, когда я просматриваю узел, его содержимое отображается со всеми полями, включая элементы коллекции полей.
Теперь я хочу изменить сообщение, отображаемое на странице, когда у элемента коллекции полей запрашивается подтверждение для его удаления и когда он удаляется успешно. (В частности, я хочу изменить Метку удаляемого элемента).
Потому что в настоящее время метка элемента коллекции полей отображается неправильно (когда я пытаюсь удалить его и когда он удаляется). Кроме того, после удаления метки отображается другое сообщение. Так что я хочу это изменить.
Для этого я обнаружил, что могу напрямую изменить 2 функции в файле field_collection.pages.inc. Они есть:
- field_collection_item_delete_confirm
- field_collection_item_delete_confirm_submit
Пример: измените следующую строку:
t('Are you sure you want to delete %label?', array('%label' => $field_collection_item->label()))
К этому:
t('Are you sure you want to delete %label?', array('%label' => 'First Collection'))
И это:
drupal_set_message(t('%label has been deleted.', array('%label' => drupal_ucfirst($field_collection_item->label()))));
К этому:
drupal_set_message(t('%label has been deleted.', array('%label' => 'First Collection')));
Но я считаю, что это нестандартный подход. Поэтому я хотел бы использовать ловушку в моем пользовательском модуле, чтобы переопределить эти функции. Я не уверен, какие хуки использовать в моем пользовательском модуле. Может кто-то помочь мне с этим ?
hook_form_alter()
илиhook_form_FORM_ID_alter()
- это то, что вы ищете - person Clive   schedule 16.01.2015field_collection_menu
), скопируйте эту функцию формы в свой собственный модуль и переименуйте ее, отредактируйте и т. д. Затем реализуйтеhook_menu_alter()
и замените первый изpage arguments
для этого пути именем вашей новой функции. - person Clive   schedule 16.01.2015