Bev*_*van 2 themes drupal drupal-6
在我的Drupal驱动的网站上,我想列出节点页面顶部的可用下载(在一个狭窄的浮动内:右边<div>),而不是它们通常出现的底部.
在我的主题中,我已经覆盖了theme_upload_attachments()函数以生成<div>宽度为40%的函数,但这显示在页面底部.
在该upload.module文件中是控制页面上列出附件的位置的代码:
// function upload_nodeapi(), line #284 of upload.module
$node->content['files'] = array(
'#value' => theme('upload_attachments', $node->files),
'#weight' => 50,
);
Run Code Online (Sandbox Code Playgroud)
如果我手动将这个#weight修改为-1,我的自定义附件列表会显示我想要的位置,浮动在内容区域顶部的右侧.
但是,我不想手动破解核心文件upload.module,因为我的更改将在下次应用升级时丢失(例如,对于安全补丁).
如何/在哪里修改content['files']主题代码中的#weight ?
或者,我是否采取了错误的方式?
你需要一个模块才能做到这一点,而不仅仅是一个主题.模块可以实现hook_nodeapi(),这将使它有机会在呈现之前更改该$ node-> content数组的内容.例如,如果您的模块名为"upload_tweaker",则使用以下函数:
function upload_tweaker_nodeapi(&$node, $op) {
if ($op == 'view') {
$node->content['files']['#weight'] = -1;
}
}
Run Code Online (Sandbox Code Playgroud)
在此"nodeapi"事件期间,每个模块都会在更改节点时遇到问题; 如果要更改由一个模块添加的内容,则需要确保模块在其后加载.这可以通过命名类似'zzz',或通过更改站点数据库的系统表中的"权重"字段来完成.模块可以像表单元素一样加权.
api.drupal.org有更多信息.