From c02d3f0464b0e7faa50ddd2ed2a20fe88cd60845 Mon Sep 17 00:00:00 2001
From: Falko Timme <ft@falkotimme.com>
Date: Tue, 19 Nov 2013 23:25:45 +0100
Subject: [PATCH] - nginx: added {DOCROOT} and {FASTCGIPASS} placeholders to
 directive snippets and nginx Directives fields.

---
 .../admin/lib/lang/de_directive_snippets.lng  |  1 +
 .../admin/lib/lang/en_directive_snippets.lng  |  1 +
 .../templates/directive_snippets_edit.htm     | 21 +++++++++++++++++--
 .../web/sites/lib/lang/de_web_domain.lng      |  1 +
 .../web/sites/lib/lang/en_web_domain.lng      |  1 +
 .../sites/templates/web_domain_advanced.htm   |  2 +-
 server/plugins-available/nginx_plugin.inc.php |  3 ++-
 7 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng
index 6c61c4636d..e593686175 100644
--- a/interface/web/admin/lib/lang/de_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/de_directive_snippets.lng
@@ -6,4 +6,5 @@ $wb['snippet_txt'] = 'Schnipsel';
 $wb['active_txt'] = 'Aktiv';
 $wb['directive_snippets_name_empty'] = 'Bitte geben Sie einen Namen für den Schnipsel an.';
 $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven-Schnipsel mit diesem Namen.';
+$wb['variables_txt'] = 'Variablen';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/lib/lang/en_directive_snippets.lng b/interface/web/admin/lib/lang/en_directive_snippets.lng
index ee40ab06f9..9d9b0ae8ee 100644
--- a/interface/web/admin/lib/lang/en_directive_snippets.lng
+++ b/interface/web/admin/lib/lang/en_directive_snippets.lng
@@ -6,4 +6,5 @@ $wb["snippet_txt"] = 'Snippet';
 $wb["active_txt"] = 'Active';
 $wb["directive_snippets_name_empty"] = 'Please specify a name for the snippet.';
 $wb["directive_snippets_name_error_unique"] = 'There is already a directive snippet with this name.';
+$wb['variables_txt'] = 'Variables';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm
index 0d57c06d51..6522eb1e45 100644
--- a/interface/web/admin/templates/directive_snippets_edit.htm
+++ b/interface/web/admin/templates/directive_snippets_edit.htm
@@ -17,7 +17,7 @@
             </div>
 			<div class="ctrlHolder">
                 <label for="snippet">{tmpl_var name='snippet_txt'}</label>
-                <textarea name="snippet" id="snippet" rows='10' cols='50' style="width:400px;">{tmpl_var name='snippet'}</textarea>
+                <textarea name="snippet" id="snippet" rows='10' cols='50' style="width:400px;">{tmpl_var name='snippet'}</textarea><div class="nginx"> &nbsp; {tmpl_var name='variables_txt'}: <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a></div>
             </div>
             <div class="ctrlHolder">
                 <p class="label">{tmpl_var name='active_txt'}</p>
@@ -35,4 +35,21 @@
         </div>
     </div>
   
-</div>
\ No newline at end of file
+</div>
+<script language="JavaScript" type="text/javascript">
+		
+    if(jQuery('#type').val() == 'nginx'){
+        jQuery('.nginx:hidden').show();
+    } else {
+        jQuery('.nginx:visible').hide();
+    }
+    
+    jQuery('#type').change(function(){
+        if(jQuery(this).val() == 'nginx'){
+            jQuery('.nginx:hidden').show();
+        } else {
+            jQuery('.nginx:visible').hide();
+        }
+    });
+			
+</script>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng
index 2494e7825a..899a34dd3d 100644
--- a/interface/web/sites/lib/lang/de_web_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_domain.lng
@@ -120,4 +120,5 @@ $wb['rewrite_rules_txt'] = 'Rewrite Rules';
 $wb['invalid_rewrite_rules_txt'] = 'Unzulässige Rewrite Rules';
 $wb['allowed_rewrite_rule_directives_txt'] = 'Erlaubte Direktiven:';
 $wb['configuration_error_txt'] = 'KONFIGURATIONSFEHLER';
+$wb['variables_txt'] = 'Variablen';
 ?>
\ No newline at end of file
diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng
index e4fb30e8b6..ad32a9000b 100644
--- a/interface/web/sites/lib/lang/en_web_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_domain.lng
@@ -120,4 +120,5 @@ $wb['rewrite_rules_txt'] = 'Rewrite Rules';
 $wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules';
 $wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:';
 $wb['configuration_error_txt'] = "CONFIGURATION ERROR";
+$wb['variables_txt'] = 'Variables';
 ?>
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_domain_advanced.htm b/interface/web/sites/templates/web_domain_advanced.htm
index 2f5136ebe8..3cc7d2e811 100644
--- a/interface/web/sites/templates/web_domain_advanced.htm
+++ b/interface/web/sites/templates/web_domain_advanced.htm
@@ -84,7 +84,7 @@
             </div>
             <div class="ctrlHolder nginx">
                 <label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label>
-                <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea>&nbsp;<b>{tmpl_var name="available_nginx_directive_snippets_txt"}</b><br><br>&nbsp;{tmpl_var name="nginx_directive_snippets_txt"}
+                <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea>&nbsp;<b>{tmpl_var name="available_nginx_directive_snippets_txt"}</b><br><br>&nbsp;{tmpl_var name="nginx_directive_snippets_txt"}<br>----<br><b>&nbsp;{tmpl_var name='variables_txt'}:</b> <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a>
             </div>
 			<div class="ctrlHolder proxy">
                 <label for="proxy_directives">{tmpl_var name='proxy_directives_txt'}</label>
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 2e93944476..b49f2d2468 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1041,8 +1041,9 @@ class nginx_plugin {
 		$nginx_directives = str_replace("\r", "\n", $nginx_directives);
 		$nginx_directive_lines = explode("\n", $nginx_directives);
 		if(is_array($nginx_directive_lines) && !empty($nginx_directive_lines)){
+			$trans = array('{DOCROOT}' => $vhost_data['web_document_root_www'], '{FASTCGIPASS}' => 'fastcgi_pass '.($data['new']['php_fpm_use_socket'] == 'y'? 'unix:'.$fpm_socket : '127.0.0.1:'.$vhost_data['fpm_port']).';');
 			foreach($nginx_directive_lines as $nginx_directive_line){
-				$final_nginx_directives[] = array('nginx_directive' => $nginx_directive_line);
+				$final_nginx_directives[] = array('nginx_directive' => strtr($nginx_directive_line, $trans));
 			}
 		}
 		$tpl->setLoop('nginx_directives', $final_nginx_directives);
-- 
GitLab