getServicePropertiesAttribute('name') ); if(empty($params['name'])) { $serviceCode = bin2hex(random_bytes(3)); try { Capsule::table('tblhostingaddons') ->where('id', '=', $params['addonId']) ->update( array( 'name' => $serviceCode, ) ); } catch (\Exception $e) { logModuleCall( 'serviceAddon', __FUNCTION__, $params, 'Error: could save servcieCode in database', $e->getMessage() ); return 'Error: could save servcieCode in database'; } } else { $serviceCode = $params['name']; } if($params['Create_Mail'] > 0) { return serviceAddonSendEmail($emailTemplates[$params['Create_Mail']], $params['serviceid'], $serviceCode); } return 'success'; } function serviceAddon_SuspendAccount(array $params) { $emailTemplates = serviceAddonGetEmailTemplatesArray(); if($emailTemplates[0] != 'none') { return $emailTemplates[0]; } if($params['Suspend_Mail'] > 0) { return serviceAddonSendEmail($emailTemplates[$params['Suspend_Mail']], $params['serviceid'], $params['name']); } return 'success'; } function serviceAddon_UnsuspendAccount(array $params) { $emailTemplates = serviceAddonGetEmailTemplatesArray(); if($emailTemplates[0] != 'none') { return $emailTemplates[0]; } if($params['Unsuspend_Mail'] > 0) { return serviceAddonSendEmail($emailTemplates[$params['Unsuspend_Mail']], $params['serviceid'], $params['name']); } return 'success'; } function serviceAddon_TerminateAccount(array $params) { $emailTemplates = serviceAddonGetEmailTemplatesArray(); if($emailTemplates[0] != 'none') { return $emailTemplates[0]; } if($params['Terminate_Mail'] > 0) { return serviceAddonSendEmail($emailTemplates[$params['Terminate_Mail']], $params['serviceid'], $params['name']); } return 'success'; } function serviceAddon_ChangePackage(array $params) { $emailTemplates = serviceAddonGetEmailTemplatesArray(); if($emailTemplates[0] != 'none') { return $emailTemplates[0]; } if($params['ChangePackage_Mail'] > 0) { return serviceAddonSendEmail($emailTemplates[$params['ChangePackage_Mail']], $params['serviceid'], $params['name']); } return 'success'; } function serviceAddon_TestConnection(array $params) { return 'success'; } function serviceAddon_UsageUpdate(array $params) { return 'success'; } function serviceAddon_ConfigOptions(array $params) { $emailTemplates = serviceAddonGetEmailTemplatesArray(); if($emailTemplates[0] != 'none') { return array( "error" => [ "Type" => "text", "Default" => $emailTemplates[0], ] ); } $configOptions = array( "Create_Mail" => [ "Type" => "dropdown", "Options" => $emailTemplates, "Description" => "E-Mail Template auswählen", "Default" => "option1" ], "Suspend_Mail" => [ "Type" => "dropdown", "Options" => $emailTemplates, "Description" => "E-Mail Template auswählen", "Default" => "option1" ], "Unsuspend_Mail" => [ "Type" => "dropdown", "Options" => $emailTemplates, "Description" => "E-Mail Template auswählen", "Default" => "option1" ], "ChangePackage_Mail" => [ "Type" => "dropdown", "Options" => $emailTemplates, "Description" => "E-Mail Template auswählen", "Default" => "option1" ], "Terminate_Mail" => [ "Type" => "dropdown", "Options" => $emailTemplates, "Description" => "E-Mail Template auswählen", "Default" => "option1" ], ); return $configOptions; } function serviceAddon_MetaData() { } function serviceAddon_AdminCustomButtonArray($params) { } function serviceAddon_AdminServicesTabFields($params) { } function serviceAddon_ClientArea($params) { } function serviceAddonGetEmailTemplatesArray() { $emailTemplates = array('none'); $response = localAPI('GetEmailTemplates'); if($response['result'] == 'success') { foreach ($response['emailtemplates']['emailtemplate'] as $emailTemplate) { if ($emailTemplate['custom'] == 1) { $emailTemplates[$emailTemplate['id']] = $emailTemplate['name']; } } } else { $emailTemplates[0] = $response['message']; } return $emailTemplates; } function serviceAddonSendEmail($templateName,$serviceId, $serviceCode) { $result = localAPI('SendEmail', ['messagename' => $templateName, 'id' => $serviceId, 'customvars' => ['servicecode' => $serviceCode]]); if ($result['result'] == 'success') { return 'success'; } else { return $result['message']; } };