From 6de0aab86c64d68578258139bea75cc6221882f7 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 07 Mar 2012 09:48:47 -0500
Subject: [PATCH] - Improved support for multiple PHP versions. Additional PHP versions have now their own form and database table.

---
 interface/web/sites/web_domain_edit.php |   41 ++++++++++++++++++++++-------------------
 1 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php
index d861cdb..4d70e89 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('sites');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions,ini_parser,getconf');
+$app->uses('tpl,tform,tform_actions');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -130,17 +130,18 @@
 			unset($ips);
 			
 			//PHP Version Selection (FastCGI)
-			$fastcgi = $app->getconf->get_server_config($client['default_webserver'],'fastcgi');
-			$php_versions = explode('\n',$fastcgi['fastcgi_additional_php_versions']);
+			$sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
+			$php_records = $app->db->queryAllRecords($sql);
 			$php_select = "<option value=''>Default</option>";
-			if(is_array($php_versions)) {
-				foreach( $php_versions as $php_version) {
+			if(is_array($php_records) && !empty($php_records)) {
+				foreach( $php_records as $php_record) {
+					$php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir'];
 					$selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':'';
-					$php_select .= "<option value='$php_version' $selected>$php_version</option>\r\n";
+					$php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n";
 				}
 			}
 			$app->tpl->setVar("fastcgi_php_version",$php_select);
-			unset($php_versions);
+			unset($php_records);
 
 			//* Reseller: If the logged in user is not admin and has sub clients (is a reseller)
 		} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) {
@@ -199,17 +200,18 @@
 			unset($ips);
 			
 			//PHP Version Selection (FastCGI)
-			$fastcgi = $app->getconf->get_server_config($client['default_webserver'],'fastcgi');
-			$php_versions = explode('\n',$fastcgi['fastcgi_additional_php_versions']);
+			$sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
+			$php_records = $app->db->queryAllRecords($sql);
 			$php_select = "<option value=''>Default</option>";
-			if(is_array($php_versions)) {
-				foreach( $php_versions as $php_version) {
+			if(is_array($php_records) && !empty($php_records)) {
+				foreach( $php_records as $php_record) {
+					$php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir'];
 					$selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':'';
-					$php_select .= "<option value='$php_version' $selected>$php_version</option>\r\n";
+					$php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n";
 				}
 			}
 			$app->tpl->setVar("fastcgi_php_version",$php_select);
-			unset($php_versions);
+			unset($php_records);
 
 			//* Admin: If the logged in user is admin
 		} else {
@@ -254,17 +256,18 @@
 			unset($ips);
 			
 			//PHP Version Selection (FastCGI)
-			$fastcgi = $app->getconf->get_server_config($server_id,'fastcgi');
-			$php_versions = explode('\n',$fastcgi['fastcgi_additional_php_versions']);
+			$sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id";
+			$php_records = $app->db->queryAllRecords($sql);
 			$php_select = "<option value=''>Default</option>";
-			if(is_array($php_versions)) {
-				foreach( $php_versions as $php_version) {
+			if(is_array($php_records) && !empty($php_records)) {
+				foreach( $php_records as $php_record) {
+					$php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir'];
 					$selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':'';
-					$php_select .= "<option value='$php_version' $selected>$php_version</option>\r\n";
+					$php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n";
 				}
 			}
 			$app->tpl->setVar("fastcgi_php_version",$php_select);
-			unset($php_versions);
+			unset($php_records);
 
 			// Fill the client select field
 			$sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";

--
Gitblit v1.9.1