【发布时间】:2011-10-16 19:46:49
【问题描述】:
我想向内容管理概述页面添加一个字段/列,但似乎最简单的主题覆盖已被 D7 弃用。
在 D6 中,我可以重写该方法:
theme_node_admin_nodes($form)
但 D7 不再存在此方法。什么是等效的替换,或者我现在实际上需要挂钩 node_admin_nodes() 并直接修改表单?
【问题讨论】:
标签: drupal drupal-7 drupal-theming drupal-hooks
我想向内容管理概述页面添加一个字段/列,但似乎最简单的主题覆盖已被 D7 弃用。
在 D6 中,我可以重写该方法:
theme_node_admin_nodes($form)
但 D7 不再存在此方法。什么是等效的替换,或者我现在实际上需要挂钩 node_admin_nodes() 并直接修改表单?
【问题讨论】:
标签: drupal drupal-7 drupal-theming drupal-hooks
对我来说,使用这两个模块非常简单:
安装并激活这两个模块后,您可以转到您的视图(管理员/结构/视图),现在出现 3 个附加视图(管理 cmets、管理节点、管理用户)。然后,您只需要编辑视图“管理节点”,您可以在其中添加和安排您想要的所有内容,就像通常使用视图一样。
我想添加一列显示所有内容的 nid。效果非常好!
【讨论】:
你必须钩入表单,主题元素已在 Drupal 7 中完全删除 node_admin_nodes()。
实际上是node_admin_content(),因为node_admin_nodes() 不再是表单函数,它只是构建node_admin_content() 使用的元素。
幸运的是,node_admin_nodes() 和 node_filter_form()(node_admin_content() 中用于构建页面的两个函数)中的元素结构良好,很容易覆盖。
【讨论】:
我已经能够在表格底部添加一个元素。虽然我不确定您如何在表格主体中添加一个列?
function seven_form_alter(&$form, &$form_state, $form_id) {
drupal_set_message("Form ID is : " . $form_id);
//get node_admin_content
//$nodeAdmin = drupal_get_form("node_admin_content");
// Add a checkbox to registration form about agreeing to terms of use.
$form['node_admin_content']['poland'] = array(
'#type' => 'checkbox',
'#title' => t("I agree with the website's terms and conditions."),
'#required' => TRUE,
);
}
【讨论】:
Administration Views 模块将许多管理员列表替换为真实视图(如 Views module),您可以根据需要对其进行编辑和配置。
【讨论】: