/** * @param array $schema */ protected static function prepareConfigSchemaField(array &$schema) { parent::prepareConfigSchemaField($schema); $roleList = [['label' => '', 'name' => null]]; $emailSvcList = [['label' => '', 'name' => null]]; $templateList = [['label' => '', 'name' => null]]; switch ($schema['name']) { case 'open_reg_role_id': $roles = Role::whereIsActive(1)->get(); foreach ($roles as $role) { $roleList[] = ['label' => $role->name, 'name' => $role->id]; } $schema['type'] = 'picklist'; $schema['values'] = $roleList; $schema['label'] = 'Open Reg Role'; $schema['description'] = 'Select a role for self registered users.'; break; case 'open_reg_email_service_id': case 'invite_email_service_id': case 'password_email_service_id': $label = substr($schema['label'], 0, strlen($schema['label']) - 11); $services = Service::whereIsActive(1)->whereIn('type', ['aws_ses', 'smtp_email', 'mailgun_email', 'mandrill_email', 'local_email'])->get(); foreach ($services as $service) { $emailSvcList[] = ['label' => $service->label, 'name' => $service->id]; } $schema['type'] = 'picklist'; $schema['values'] = $emailSvcList; $schema['label'] = $label . ' Service'; $schema['description'] = 'Select an Email service for sending out ' . $label . '.'; break; case 'open_reg_email_template_id': case 'invite_email_template_id': case 'password_email_template_id': $label = substr($schema['label'], 0, strlen($schema['label']) - 11); $templates = EmailTemplate::get(); foreach ($templates as $template) { $templateList[] = ['label' => $template->name, 'name' => $template->id]; } $schema['type'] = 'picklist'; $schema['values'] = $templateList; $schema['label'] = $label . ' Template'; $schema['description'] = 'Select an Email template to use for ' . $label . '.'; break; } }