. namespace core_communication; /** * Interface form_provider to manage communication provider form options from provider plugins. * * Every provider plugin should implement this class to return the implemented form elements for custom data. * * @package core_communication * @copyright 2023 Safat Shahin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ interface form_provider { /** * Set the form data to the instance if any data is available. * * @param \stdClass $instance The actual instance to set the data */ public function save_form_data(\stdClass $instance): void; /** * Set the form data to the instance if any data is available. * * @param \stdClass $instance The actual instance to set the data */ public function set_form_data(\stdClass $instance): void; /** * Set the form definitions. * * @param \MoodleQuickForm $mform The form object */ public static function set_form_definition(\MoodleQuickForm $mform): void; }