【发布时间】:2023-03-19 19:20:01
【问题描述】:
我有一种情况,我希望一组用户(员工)能够创建一个节点,但要将 uid(用户 ID)替换为当前显示的用户配置文件的用户 ID。
换句话说,我有一个为内容类型调用表单的块。如果员工(uid = 20)进入客户页面(uid = 105)并填写表格,我希望与表格关联的 uid 是客户的(105),而不是员工的。
我正在使用 arg(1) 来获取客户端的 uid - 这就是我所拥有的......
<?php
function addSR_form_service_request_node_form_alter(&$form, $form_state) {
if (arg(0) == 'user' && is_numeric(arg(1))) {
$form['#submit'][] = 'addSR_submit_function';
}
}
function addSR_submit_function($form, $form_state) {
$account = user_load(arg(1));
$form_state['values']['uid'] = $account->uid;
$form_state['values']['name'] = $account->name;
}
?>
表单正在块中加载,但提交时仍显示员工 uid。我不想使用 hook_form_alter 因为我不想修改实际的表格,因为客户可以直接填写表格,在这种情况下,我根本不想修改表格。
我也很惭愧我把它放在一个块中,但我想不出一种方法把它放在一个模块中,所以任何关于这方面的建议也将不胜感激......
【问题讨论】: