После того как я добавил «изменено» на узлах, мне нужно отобразить пользователя, который изменил каждый узел, в node_admin_content
форме (в admin/content
) прямо рядом со столбцом «Автор».
Мне удалось легко решить эту проблему, изменив node.admin.inc и добавив всего 2 строки кода:
...
'changed_by' => t('Changed By'),
...
...
'changed_by' => theme('username', array('account' => user_load($node->changed_by))),
...
Это, конечно, не правильное решение, поскольку оно меняет ядро.
Поэтому я попытался изменить форму с помощью:
function hook_form_node_admin_content_alter(&$form, &$form_state, $form_id) {
$form['admin']['nodes']['#header']['changed_by'] = t('Changed By');
// ... ?
}
Используя dpm
я могу видеть, что форма имеет узлы в опциях. Проблема в том, что это результат рендеринга узлов в виде параметров таблицы. У меня нет доступа к исходным узлам, и я не хочу повторно выполнять запрос выборки узлов, чтобы получить информацию «изменено». Я предполагаю, что выполнение этого в форме ловушки не решило бы это в правильном слое. Или это?
Итак, что является хорошим способом изменить node_admin_content
форму, чтобы добавить больше данных, которые существуют на узлах?
Просто замените admin / content на View, а затем добавьте те поля, которые вы хотите. Admin Views даже сделает это за вас.
источник
hook_schema()
/hook_schema_alter()
реализаций?Немного не по теме, но этот ответ показывает, как вы можете сделать это программно (например, добавив его в качестве обновления модуля в файл MY_MODULE.install.)
Вам понадобится немного больше работы, если вы хотите добавить новое поле перед последним существующим полем. Объедините его до конца массива $ view-> display ['default'] -> display_options ['fields'].
источник