andre пре 8 месеци
родитељ
комит
9d42810b00
2 измењених фајлова са 87 додато и 21 уклоњено
  1. 22 0
      clientarea.tpl
  2. 65 21
      siteBuilder.php

+ 22 - 0
clientarea.tpl

@@ -182,6 +182,28 @@
                                     </button>
                                   </form>
                                 </p>
+                                <p>
+                                  <form method="post" action="clientarea.php?action=productdetails">
+                                    <input type="hidden" name="id" value="{$serviceid}" />
+                                    <input type="hidden" name="modop" value="custom" />
+                                    <input type="hidden" name="a" value="editSite" />
+                                    <input type="hidden" name="s" value="dev.{$site.name}" />
+                                    <button title="Edit Dev Webseite" type="submit" class="fabutton" style="background:none;padding:0px;border:none;">
+                                      <i class="fas fa-edit fa-fw"></i>
+                                    </button>
+                                  </form>
+                                </p>
+                                <p>
+                                  <form method="post" action="clientarea.php?action=productdetails">
+                                    <input type="hidden" name="id" value="{$serviceid}" />
+                                    <input type="hidden" name="modop" value="custom" />
+                                    <input type="hidden" name="a" value="editSite" />
+                                    <input type="hidden" name="s" value="{$site.name}" />
+                                    <button title="Edit Prod Webseite" type="submit" class="fabutton" style="background:none;padding:0px;border:none;">
+                                      <i class="fas fa-edit fa-fw"></i>
+                                    </button>
+                                  </form>
+                                </p>
                           {/foreach}
                         {else}
                           <table style="width:100%;border-collapse:collapse;border:1px solid grey;">

+ 65 - 21
siteBuilder.php

@@ -12,6 +12,7 @@ use WHMCS\Database\Capsule;
 
 require_once 'Net/DNS2.php';
 require_once(__DIR__ . '/api/sitebuilder.php');
+require_once(__DIR__ . '/api/SiteProApiClient.php');
 
 if (!defined('WHMCS')) {
 	die('This file cannot be accessed directly');
@@ -311,24 +312,10 @@ function siteBuilder_ClientArea($params) {
 	$sslDev = 0;
 	foreach($sitesObj as $site){
 		$response = $siteBuilder->getSSLDays($site->name, $params['username']);
-		logModuleCall(
-			'siteBuilder',
-			__FUNCTION__,
-			$params,
-			'Debug',
-			$response
-		);
 		if($response['status'] == '200') {
 			$sslProd = $response['response']['ssl_remaining'];
 		}
 		$response = $siteBuilder->getSSLDays('dev.' . $site->name, $params['username']);
-		logModuleCall(
-			'siteBuilder',
-			__FUNCTION__,
-			$params,
-			'Debug',
-			$response
-		);
 		if($response['status'] == '200') {
 			$sslDev = $response['response']['ssl_remaining'];
 		}
@@ -419,6 +406,7 @@ function siteBuilder_ClientAreaAllowedFunctions() {
 		"new Site" => "newSite",
 		"Confirm Delete Site" => "delSiteConfirm",
 		"Delete Site" => "delSite",
+		"Edit Site" => "editSite"
   	);
 }
 
@@ -456,13 +444,6 @@ function siteBuilder_addSite($params) {
 	$site = $_POST['d'] . '.' . $params['domain'];
 	$siteBuilder = new ApiClient(getSiteBuilderApiURL($params), $params['serveraccesshash']);
 	$response = $siteBuilder->deployDev($params['username'], $site, $params['serverusername'], $params['serverpassword']);
-	logModuleCall(
-		'siteBuilder',
-		__FUNCTION__,
-		$params,
-		'Error: could save site & serviceid in database',
-		$response
-		);
 	if($response['status'] != '200') {
 		return 'Error: ' . $response['response'];
 	}
@@ -488,6 +469,69 @@ function siteBuilder_addSite($params) {
 	return 'success';
 }
 
+function siteBuilder_editSite($params) {
+	if(!filter_var($_POST['s'], FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)){
+		return 'Error: invalid site name';
+	}
+	$site = $_POST['s'];
+	$api = new SiteProApiClient('https://10.200.34.100:2443/api/', $params['serverusername'], $params['serverpassword']);
+	// use this for enterprise licenses and change 'your-bulder-domain.com' to your builder domain
+	//$api = new SiteProApiClient('http://your-bulder-domain.com/api/', 'your_api_username', 'your_api_password');
+
+	try {
+		// this call is used to open builder, so you need to set correct parameters to represent users website you want to open
+		// this data usually comes from your user/hosting manager system
+		$res = $api->remoteCall('requestLogin', array(
+			'type' => 'internal',				// (required) 'internal'
+			'domain' => $site,			// (required) domain of the user website you want to edit
+			'lang' => 'de',						// (optional) 2-letter language code, set language code you whant builder to open in
+			'apiUrl' => '/deployDev', // (required) API endpoint URL
+			'resellerClientAccountId' => $params['serviceid'],	// (required) ID of website/user in your system
+		));
+		if (!$res || !is_object($res)) {
+			logModuleCall(
+				'siteBuilder',
+				__FUNCTION__,
+				$params,
+				'Error: Response format error',
+				$res
+				);
+			return 'Error: Response format error';
+		} else if (isset($res->url) && $res->url) {
+			logModuleCall(
+				'siteBuilder',
+				__FUNCTION__,
+				$params,
+				'Debug',
+				$res
+				);
+			// on success redirect to builder URL
+//			header('Location: '.$res->url, true);
+//			exit();
+		} else {
+			logModuleCall(
+				'siteBuilder',
+				__FUNCTION__,
+				$params,
+				'Error: Unknown error',
+				$res
+				);
+			return 'Error: Unknown error';
+		}
+	} catch(ErrorException $ex) {
+		logModuleCall(
+			'siteBuilder',
+			__FUNCTION__,
+			$params,
+			'Error: Request error',
+			$ex-getMessage()
+			);
+		return 'Error: Request error';
+}
+
+	return 'success';
+}
+
 /**
  * Opens a form to delete a domain from a siteBuilder account.
  *