답변:
예, 당신은 이것을 할 수 있습니다.
우리는 "계획"이라는 개념을 가진 구성 요소를 가지고 있으며, 다른 액세스 수준에 대해 동일한보기를 사용하지만 사용자 그룹에 따라 필드에 액세스 할 수 있는지 여부를 결정합니다.
따라서 계획을 "실행"할 수 있지만 편집 할 수없는 용도의 경우 여러 필드를 "끄기"로 설정합니다. 필드 유형에 따라 여러 필드 속성을 설정해야합니다. 예 :
$this->form->setFieldAttribute('name', 'class', 'readonly');
$this->form->setFieldAttribute('name', 'readonly', 'true');
$this->form->setFieldAttribute('description', 'class', 'readonly');
$this->form->setFieldAttribute('description', 'disabled', 'true');
$this->form->setFieldAttribute('description', 'type', 'text');
$this->form->setFieldAttribute('published', 'class', 'readonly');
$this->form->setFieldAttribute('published', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'class', 'readonly');
$this->form->setFieldAttribute('publish_up', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_up', 'filter', 'user_utc');
$this->form->setFieldAttribute('publish_down', 'class', 'readonly');
$this->form->setFieldAttribute('publish_down', 'readonly', 'true');
$this->form->setFieldAttribute('publish_down', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_down', 'filter', 'user_utc');
따라서 myReadOnlyCode
필드가 무엇인지에 따라 위와 같이 하나 이상의 속성을 설정 하여 필드를 수행 할 수 있습니다 (예 : 표준 텍스트 입력 인 경우).
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');
Joomla 핵심 기사 편집을 비교하십시오. 관리자-article.php-메소드 getForm.
"백도어"업데이트를 방지하기 위해 필터에주의하십시오.
$user = JFactory::getUser();
// Check for existing article.
// Modify the form based on Edit State access controls.
if ($id != 0 && (!$user->authorise('core.edit.state', 'com_content.article.' . (int) $id))
|| ($id == 0 && !$user->authorise('core.edit.state', 'com_content'))
)
{
// Disable fields for display.
$form->setFieldAttribute('featured', 'disabled', 'true');
$form->setFieldAttribute('ordering', 'disabled', 'true');
$form->setFieldAttribute('publish_up', 'disabled', 'true');
$form->setFieldAttribute('publish_down', 'disabled', 'true');
$form->setFieldAttribute('state', 'disabled', 'true');
// Disable fields while saving.
// The controller has already verified this is an article you can edit.
$form->setFieldAttribute('featured', 'filter', 'unset');
$form->setFieldAttribute('ordering', 'filter', 'unset');
$form->setFieldAttribute('publish_up', 'filter', 'unset');
$form->setFieldAttribute('publish_down', 'filter', 'unset');
$form->setFieldAttribute('state', 'filter', 'unset');
}