From 216ea12666892397cd145cdef3c40d37b3df22a7 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 16 Dec 2015 11:03:28 -0500
Subject: [PATCH] - Changed template events (reduced php code and needed template code)

---
 interface/lib/classes/tpl.inc.php |   39 ++++++++++++++++++++++++++++-----------
 1 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/interface/lib/classes/tpl.inc.php b/interface/lib/classes/tpl.inc.php
index 3210cc0..928c215 100644
--- a/interface/lib/classes/tpl.inc.php
+++ b/interface/lib/classes/tpl.inc.php
@@ -1073,20 +1073,37 @@
 		 * @param string $name
 		 * @return string hook data
 		 */
-		private function _parseHook ($type, $name)
+		private function _parseHook ($name)
 		{
 			global $app;
 			
-			$module_name = '';
-			if(strpos($name, ':') !== false) list($module_name, $name) = explode(':', $name, 2);
+			if(!$name) return false;
 			
-			$result = $app->plugin->raiseEvent('on_template_content_hook', array(
-				'type' => $type,
-				'name' => $name,
-				'module' => $module_name
-			), true);
-			if(!$result) $result = '';
-			else $result = $this->_getData($result, false, true);
+			$module = isset($_SESSION['s']['module']['name']) ? $_SESSION['s']['module']['name'] : '';
+			$form = isset($app->tform->formDef['name']) ? $app->tform->formDef['name'] : '';
+			
+			$events = array();
+			if($module) {
+				$events[] = $module . ':' . ($form ? $form : '') . ':' . $name;
+				$events[] = $module . ':' . ($form ? $form : '') . ':on_template_content';
+			} else {
+				$events[] = $name;
+				$events[] = 'on_template_content';
+			}
+			
+			$events = array_unique($events);
+			
+			for($e = 0; $e < count($events); $e++) {
+				$tmpresult = $app->plugin->raiseEvent($events[$e], array(
+					'name' => $name,
+					'module' => $module,
+					'form' => $form
+				), true);
+				if(!$tmpresult) $tmpresult = '';
+				else $tmpresult = $this->_getData($tmpresult, false, true);
+				
+				$result .= $tmpresult;
+			}
 			
 			return $result;
 		}
@@ -1285,7 +1302,7 @@
 				}
 			
 			case 'hook':
-				return $this->_parseHook(@$var, @$value);
+				return $this->_parseHook(@$var);
 			
 			case 'include':
 				return '<?php $this->_getData($this->_fileSearch(\''.$file.'\'), 1); ?>';

--
Gitblit v1.9.1