【发布时间】:2017-06-02 11:00:33
【问题描述】:
我想在编辑配置文件 Joomla 中禁用字段、姓名和姓氏,以便用户无法修改它们。我该如何更改?
【问题讨论】:
我想在编辑配置文件 Joomla 中禁用字段、姓名和姓氏,以便用户无法修改它们。我该如何更改?
【问题讨论】:
最好但不是最简单的方法是创建一个用户插件来使用 onContentPrepareForm 方法覆盖表单:
public function onContentPrepareForm($form, $data){
if (!($form instanceof JForm)){
$this->_subject->setError('JERROR_NOT_A_FORM');
return false;
}
$form->setFieldAttribute('name', 'readonly', 'true');
$form->setFieldAttribute('lastname', 'readonly', 'true');
return true;
}
【讨论】:
没有实现此目的的配置设置。 所以最简单的方法是为用户视图创建一个模板覆盖。
在管理员中,打开菜单 Extensions-Templates-Templates,然后选择您的模板并在顶部选项卡中选择“创建覆盖”:
在中心栏中,选择 com_users - profile 和 edit.php
显示是通过循环完成的,从第 59 行开始(从 v. 3.6.5 开始),您要添加代码来标识您希望保持只读的字段,并简单地设置它们的只读属性。
这是从第 59 行开始添加的代码:
<?php foreach ($fields as $field) : ?>
<?php
if ($field->name == 'jform[name]') {
$field->readonly = true;
}
?>
<?php // If the field is hidden, just display the input. ?>
我们通过名称来识别它(当然是通过它的字段名称),然后设置它的readonly 属性。
【讨论】: