Pārlūkot izejas kodu

- MakeHyperlink now returns absolute URLs (including server name & port)
- Fixed the handling of the "menu" option in the DisplayBlocks
- removed unneeded GetUIPage functions

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@269 a333f486-631f-4898-b8df-5754b55c2be0

dflaven 15 gadi atpakaļ
vecāks
revīzija
1a8b09f821

+ 5 - 2
application/cmdbabstract.class.inc.php

@@ -14,7 +14,7 @@ abstract class cmdbAbstractObject extends CMDBObject
 	
 	public static function GetUIPage()
 	{
-		return './UI.php';
+		return '../pages/UI.php';
 	}
 	
 	public static function ComputeUIPage($sClass)
@@ -40,6 +40,9 @@ abstract class cmdbAbstractObject extends CMDBObject
 		$oAppContext = new ApplicationContext();	
 		$sExtClassNameAtt = MetaModel::GetNameAttributeCode($sObjClass);
 		$sPage = self::ComputeUIPage($sObjClass);
+        $sAbsoluteUrl = utils::GetAbsoluteUrl(false); // False => Don't get the query string
+        $sAbsoluteUrl = substr($sAbsoluteUrl, 0, 1+strrpos($sAbsoluteUrl, '/')); // remove the current page, keep just the path, up to the last /
+
 		// Use the "name" of the target class as the label of the hyperlink
 		// unless it's not available in the external attributes...
 		if (isset($aAvailableFields[$sExtClassNameAtt]))
@@ -71,7 +74,7 @@ abstract class cmdbAbstractObject extends CMDBObject
 			$sLabel = MetaModel::GetName($sObjClass)." #$sObjKey";
 		}
 		$sHint = MetaModel::GetName($sObjClass)."::$sObjKey";
-		return "<a href=\"$sPage?operation=details&class=$sObjClass&id=$sObjKey&".$oAppContext->GetForLink()."\" title=\"$sHint\">$sLabel</a>";
+		return "<a href=\"{$sAbsoluteUrl}{$sPage}?operation=details&class=$sObjClass&id=$sObjKey&".$oAppContext->GetForLink()."\" title=\"$sHint\">$sLabel</a>";
 	}
 
 	public function GetDisplayValue($sAttCode)

+ 3 - 37
application/displayblock.class.inc.php

@@ -330,7 +330,7 @@ class DisplayBlock
 			{
 				$sHtml .= $oPage->GetP("No object to display.");
 				$sClass = $this->m_oFilter->GetClass();
-				$bDisplayMenu = isset($this->m_aParams['menu']) ? $this->m_aParams['menu'] == true : true; 
+				$bDisplayMenu = isset($aExtraParams['menu']) ? $aExtraParams['menu'] == true : true; 
 				if ($bDisplayMenu)
 				{
 					if (UserRights::IsActionAllowed($sClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)
@@ -779,7 +779,7 @@ class MenuBlock extends DisplayBlock
 			}
 			else
 			{
-				$sUrl = self::GetAbsoluteUrl();
+				$sUrl = utils::GetAbsoluteUrl();
 				$aActions[] = array ('label' => 'eMail', 'url' => "mailto:?subject=".$oSet->GetFilter()->__DescribeHTML()."&body=".urlencode("$sUrl?operation=search&filter=$sFilter&$sContext"));
 				$aActions[] = array ('label' => 'CSV Export', 'url' => "../pages/$sUIPage?operation=search&filter=$sFilter&format=csv&$sContext");
 				//$aActions[] = array ('label' => 'Bookmark...', 'url' => "../pages/ajax.render.php?operation=create&class=$sClass&filter=$sFilter", 'class' => 'jqmTrigger');
@@ -831,7 +831,7 @@ class MenuBlock extends DisplayBlock
 			else
 			{
 				// many objects in the set, possible actions are: new / modify all / delete all
-				$sUrl = self::GetAbsoluteUrl();
+				$sUrl = utils::GetAbsoluteUrl();
 				$aActions[] = array ('label' => 'eMail', 'url' => "mailto:?subject=".$oSet->GetFilter()->__DescribeHTML()."&body=".urlencode("$sUrl?operation=search&filter=$sFilter&$sContext"));
 				$aActions[] = array ('label' => 'CSV Export', 'url' => "../pages/$sUIPage?operation=search&filter=$sFilter&format=csv&$sContext");
 				//$aActions[] = array ('label' => 'Bookmark...', 'url' => "../pages/ajax.render.php?operation=create&class=$sClass&filter=$sFilter", 'class' => 'jqmTrigger');
@@ -850,39 +850,5 @@ class MenuBlock extends DisplayBlock
 		$oPage->add_ready_script("$(\"ul.jd_menu\").jdMenu();\n");
 		return $sHtml;
 	}	
-	
-	static public function GetAbsoluteUrl()
-	{
-		// Build an absolute URL to this page on this server/port
-		$sServerName = $_SERVER['SERVER_NAME'];
-		$sProtocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
-		if ($sProtocol == 'http')
-		{
-			$sPort = ($_SERVER['SERVER_PORT'] == 80) ? '' : ':'.$_SERVER['SERVER_PORT'];
-		}
-		else
-		{
-			$sPort = ($_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT'];
-		}
-		// $_SERVER['REQUEST_URI'] is empty when running on IIS
-		// Let's use Ivan Tcholakov's fix (found on www.dokeos.com)
-		if (!empty($_SERVER['REQUEST_URI']))
-		{
-			$sPath = $_SERVER['REQUEST_URI'];
-		}
-		else
-		{
-			$sPath = $_SERVER['SCRIPT_NAME'];
-			if (!empty($_SERVER['QUERY_STRING']))
-			{
-				$sPath .= '?'.$_SERVER['QUERY_STRING'];
-			}
-			$_SERVER['REQUEST_URI'] = $sPath;
-		} 
-   		$sPath = $_SERVER['REQUEST_URI'];
-		$sUrl = "$sProtocol://{$sServerName}{$sPort}{$sPath}";
-		
-		return $sUrl;
-	}
 }
 ?>

+ 48 - 0
application/utils.inc.php

@@ -147,5 +147,53 @@ class utils
 	    }
         return $iReturn;
     }
+
+    /**
+     * Returns an absolute URL to the current page
+     * @param $bQueryString bool True to also get the query string, false otherwise
+     * @return string The absolute URL to the current page
+     */                   
+	static public function GetAbsoluteUrl($bQueryString = true)
+	{
+		// Build an absolute URL to this page on this server/port
+		$sServerName = $_SERVER['SERVER_NAME'];
+		$sProtocol = isset($_SERVER['HTTPS']) ? 'https' : 'http';
+		if ($sProtocol == 'http')
+		{
+			$sPort = ($_SERVER['SERVER_PORT'] == 80) ? '' : ':'.$_SERVER['SERVER_PORT'];
+		}
+		else
+		{
+			$sPort = ($_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT'];
+		}
+		// $_SERVER['REQUEST_URI'] is empty when running on IIS
+		// Let's use Ivan Tcholakov's fix (found on www.dokeos.com)
+		if (!empty($_SERVER['REQUEST_URI']))
+		{
+			$sPath = $_SERVER['REQUEST_URI'];
+		}
+		else
+		{
+			$sPath = $_SERVER['SCRIPT_NAME'];
+			if (!empty($_SERVER['QUERY_STRING']))
+			{
+				$sPath .= '?'.$_SERVER['QUERY_STRING'];
+			}
+			$_SERVER['REQUEST_URI'] = $sPath;
+		}
+   		$sPath = $_SERVER['REQUEST_URI'];
+        if (!$bQueryString)
+        {
+            // remove all the parameters from the query string
+            $iQuestionMarkPos = strpos($sPath, '?');
+            if ($iQuestionMarkPos !== false)
+            {
+                $sPath = substr($sPath, 0, $iQuestionMarkPos);
+            }
+        } 
+		$sUrl = "$sProtocol://{$sServerName}{$sPort}{$sPath}";
+		
+		return $sUrl;
+	}
 }
 ?>

+ 0 - 5
business/ServiceDesk.business.php

@@ -139,11 +139,6 @@ class bizServiceCall extends cmdbAbstractObject
 		$this->Set('end_date', $oGenerator->GenerateString("2007-|number(07-12)|-|number(01-30)| |number(07-12)|:|number(00-59)|:|number(00-59)"));
 	}
 	
-	public static function GetUIPage()
-	{
-		return './UI.php';
-	}
-	
 	// State machine actions
 
 	

+ 0 - 5
business/incidentMgmt.business.php

@@ -134,11 +134,6 @@ class bizIncidentTicket extends cmdbAbstractObject
 		$this->Set('end_date', $oGenerator->GenerateString("2007-|number(07-12)|-|number(01-30)| |number(07-12)|:|number(00-59)|:|number(00-59)"));
 	}
 	
-	public static function GetUIPage()
-	{
-		return './UI.php';
-	}
-	
 	// State machine actions
 	public function IncrementAssignmentCount($sStimulusCode)
 	{