소스 검색

new service module

andre 4 년 전
부모
커밋
234989bce0
1개의 변경된 파일103개의 추가작업 그리고 60개의 파일을 삭제
  1. 103 60
      serviceAddon.php

+ 103 - 60
serviceAddon.php

@@ -5,35 +5,73 @@ if (!defined("WHMCS")) {
 }
 
 function serviceAddon_CreateAccount(array $params) {
-    $emailTemplates = serviceAddonGetEmailTemplates($params);
+    $emailTemplates = serviceAddonGetEmailTemplatesArray($params);
+    if(count($emailTemplates) == 1) {
+        return $emailTemplates[0];
+    }
     if($params['Create_Mail'] > 0) {
         $result = localAPI('SendEmail', ['messagename' => $emailTemplates[$params['Create_Mail']], 'id' => $params['serviceid']]);
     }
-
-    logModuleCall(
-        'iServiceAddon',
-        __FUNCTION__,
-        $emailTemplates[$params['Create_Mail']],
-        'Debug',
-        $result
-    );
-    return 'success';
+    if ($result['result'] == 'success') {
+        return 'success';
+    }
+    return $result['message'];
 }
 
 function serviceAddon_SuspendAccount(array $params) {
-    return 'success';
+    $emailTemplates = serviceAddonGetEmailTemplatesArray($params);
+    if(count($emailTemplates) == 1) {
+        return $emailTemplates[0];
+    }
+    if($params['Suspend_Mail'] > 0) {
+        $result = localAPI('SendEmail', ['messagename' => $emailTemplates[$params['Suspend_Mail']], 'id' => $params['serviceid']]);
+    }
+    if ($result['result'] == 'success') {
+        return 'success';
+    }
+    return $result['message'];
 }
 
 function serviceAddon_UnsuspendAccount(array $params) {
-    return 'success';
+    $emailTemplates = serviceAddonGetEmailTemplatesArray($params);
+    if(count($emailTemplates) == 1) {
+        return $emailTemplates[0];
+    }
+    if($params['Unsuspend_Mail'] > 0) {
+        $result = localAPI('SendEmail', ['messagename' => $emailTemplates[$params['Unsuspend_Mail']], 'id' => $params['serviceid']]);
+    }
+    if ($result['result'] == 'success') {
+        return 'success';
+    }
+    return $result['message'];
 }
 
 function serviceAddon_TerminateAccount(array $params) {
-    return 'success';
+    $emailTemplates = serviceAddonGetEmailTemplatesArray($params);
+    if(count($emailTemplates) == 1) {
+        return $emailTemplates[0];
+    }
+    if($params['Terminate_Mail'] > 0) {
+        $result = localAPI('SendEmail', ['messagename' => $emailTemplates[$params['Terminate_Mail']], 'id' => $params['serviceid']]);
+    }
+    if ($result['result'] == 'success') {
+        return 'success';
+    }
+    return $result['message'];
 }
 
 function serviceAddon_ChangePackage(array $params) {
-    return 'success';
+    $emailTemplates = serviceAddonGetEmailTemplatesArray($params);
+    if(count($emailTemplates) == 1) {
+        return $emailTemplates[0];
+    }
+    if($params['ChangePackage_Mail'] > 0) {
+        $result = localAPI('SendEmail', ['messagename' => $emailTemplates[$params['ChangePackage_Mail']], 'id' => $params['serviceid']]);
+    }
+    if ($result['result'] == 'success') {
+        return 'success';
+    }
+    return $result['message'];
 }
 
 function serviceAddon_TestConnection(array $params) {
@@ -46,39 +84,47 @@ function serviceAddon_UsageUpdate(array $params) {
 
 function serviceAddon_ConfigOptions(array $params) {
     $emailTemplates = serviceAddonGetEmailTemplates($params);
-    $configOptions = array(
-        "Create_Mail" => [
-            "Type" => "dropdown", # Dropdown Choice of Options
-            "Options" => $emailTemplates,
-            "Description" => "E-Mail Template auswählen",
-            "Default" => "option1"
-        ],
-        "Suspend_Mail" => [
-            "Type" => "dropdown", # Dropdown Choice of Options
-            "Options" => $emailTemplates,
-            "Description" => "E-Mail Template auswählen",
-            "Default" => "option1"
-        ],
-        "Unsuspend_Mail" => [
-            "Type" => "dropdown", # Dropdown Choice of Options
-            "Options" => $emailTemplates,
-            "Description" => "E-Mail Template auswählen",
-            "Default" => "option1"
-        ],
-        "ChangePackage_Mail" => [
-            "Type" => "dropdown", # Dropdown Choice of Options
-            "Options" => $emailTemplates,
-            "Description" => "E-Mail Template auswählen",
-            "Default" => "option1"
-        ],
-        "Terminate_Mail" => [
-            "Type" => "dropdown", # Dropdown Choice of Options
-            "Options" => $emailTemplates,
-            "Description" => "E-Mail Template auswählen",
-            "Default" => "option1"
-        ],
+    if(count($emailTemplates) > 1) {
+        $configOptions = array(
+            "Create_Mail" => [
+                "Type" => "dropdown", # Dropdown Choice of Options
+                "Options" => $emailTemplates,
+                "Description" => "E-Mail Template auswählen",
+                "Default" => "option1"
+            ],
+            "Suspend_Mail" => [
+                "Type" => "dropdown", # Dropdown Choice of Options
+                "Options" => $emailTemplates,
+                "Description" => "E-Mail Template auswählen",
+                "Default" => "option1"
+            ],
+            "Unsuspend_Mail" => [
+                "Type" => "dropdown", # Dropdown Choice of Options
+                "Options" => $emailTemplates,
+                "Description" => "E-Mail Template auswählen",
+                "Default" => "option1"
+            ],
+            "ChangePackage_Mail" => [
+                "Type" => "dropdown", # Dropdown Choice of Options
+                "Options" => $emailTemplates,
+                "Description" => "E-Mail Template auswählen",
+                "Default" => "option1"
+            ],
+            "Terminate_Mail" => [
+                "Type" => "dropdown", # Dropdown Choice of Options
+                "Options" => $emailTemplates,
+                "Description" => "E-Mail Template auswählen",
+                "Default" => "option1"
+            ],
+        );
+        return $configOptions;
+    }
+    return array(
+        "error" => [
+            "Type" => "text",
+            "Default" => $emailTemplates[0],
+        ]
     );
-    return $configOptions;
 }
 
 function serviceAddon_MetaData() {
@@ -91,22 +137,19 @@ function serviceAddon_AdminServicesTabFields($params) {
 }
 
 function serviceAddon_ClientArea($params) {
-    return array(
-        'tabOverviewReplacementTemplate' => 'templates/clientarea',
-        'vars' => array(
-            'test1' => 'hello',
-            'test2' => 'world',
-        ),
-    );
-};
+}
 
-function serviceAddonGetEmailTemplates($params) {
-    $response = localAPI('GetEmailTemplates');
+function serviceAddonGetEmailTemplatesArray($params) {
     $emailTemplates = array('none');
-    foreach ($response['emailtemplates']['emailtemplate'] as $emailTemplate) {
-        if ($emailTemplate['custom'] == 1) {
-            $emailTemplates[$emailTemplate['id']] = $emailTemplate['name'];
+    $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;
-}
+};