Использование нескольких форм просмотра или редактирования записи (SuiteCRM)

В зависимости от роли пользователя или статуса записи может потребоваться возможность использовать разные формы для ее отображения. Эта функция работает как с режимом просмотра, так и с режимом редактирования (detailviewdefs.php или editviewdefs.php).

Предположим, что надо создать две формы редактирования для модуля CustomNewModules. Одна из форм содержит несколько полей доступных только для чтения. Создайте два файла:

custom/modules/CustomNewModules/metadata/editviewdefs.php
custom/modules/CustomNewModules/metadata/edit_readonlyfields_viewdefs.php

Для управления этими формами создайте или отредактируйте файл:

custom/modules/CustomNewModules/views/view.edit.php

Создайте имя класса по шаблону и включите две функции.

<?php
if (!defined('sugarEntry') || !sugarEntry) {
    die('Not A Valid Entry Point');
}
class CustomNewModulesViewEdit extends ViewEdit
{
    public function getMetaDataFile()
    {
        $oldType = $this->type;
        if ($this->bean->status === 'close' ) {
            $this->type = $oldType . '_readonlyfields_';
        }
        $metadataFile = parent::getMetaDataFile();
        $this->type = $oldType;
        
        return $metadataFile;
    }
    public function display()
    {
        $_SESSION['developerMode']=true;
        parent::display();
        $_SESSION['developerMode']=false;
    }
}