瀏覽代碼

#707: Make sure that DOCTYPE is the first statement of the page
- Enhancement: support for "target" in PopupMenuItems.. which was ignored before

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

dflaven 12 年之前
父節點
當前提交
74eff4bece
共有 2 個文件被更改,包括 30 次插入19 次删除
  1. 1 1
      application/itopwebpage.class.inc.php
  2. 29 18
      application/webpage.class.inc.php

+ 1 - 1
application/itopwebpage.class.inc.php

@@ -547,6 +547,7 @@ EOF
 
 		if ($this->GetOutputFormat() == 'html')
 		{
+			$sHtml .= $this->output_dict_entries(true); // before any script so that they can benefit from the translations
 			foreach($this->a_linked_scripts as $s_script)
 			{
 					// Make sure that the URL to the script contains the application's version number
@@ -575,7 +576,6 @@ EOF
 				}
 				$sHtml .= "</script>\n";
 			}
-			$this->output_dict_entries();
 		}
 	
 		if (count($this->a_styles)>0)

+ 29 - 18
application/webpage.class.inc.php

@@ -651,6 +651,7 @@ class WebPage implements Page
 		{
 			$sClass = isset($aAction['class']) ? " class=\"{$aAction['class']}\"" : "";
 			$sOnClick = isset($aAction['onclick']) ? " onclick=\"{$aAction['onclick']}\"" : "";
+			$sTarget = isset($aAction['target']) ? " target=\"{$aAction['target']}\"" : "";
 			if (empty($aAction['url']))
 			{
 				if ($sPrevUrl != '') // Don't output consecutively two separators...
@@ -661,41 +662,51 @@ class WebPage implements Page
 			}
 			else
 			{
-				$sHtml .= "<li><a href=\"{$aAction['url']}\"$sClass $sOnClick>{$aAction['label']}</a></li>";
+				$sHtml .= "<li><a $sTarget href=\"{$aAction['url']}\"$sClass $sOnClick>{$aAction['label']}</a></li>";
 				$sPrevUrl = $aAction['url'];
 			}
 		}
 		$sHtml .= "</ul></li></ul></div>";
 		foreach(array_reverse($aFavoriteActions) as $aAction)
 		{
-			$sHtml .= "<div class=\"actions_button\"><a href='{$aAction['url']}'>{$aAction['label']}</a></div>";			
+			$sTarget = isset($aAction['target']) ? " target=\"{$aAction['target']}\"" : "";
+			$sHtml .= "<div class=\"actions_button\"><a $sTarget href='{$aAction['url']}'>{$aAction['label']}</a></div>";			
 		}
 		
 		return $sHtml;
 	}
 
-	protected function output_dict_entries()
+	protected function output_dict_entries($bReturnOutput = false)
 	{
 		if (count($this->a_dict_entries)>0)
 		{
-			echo "<script type=\"text/javascript\">\n";
-			echo "var Dict = {};\n";
-			echo "Dict._entries = {};\n";
-			echo "Dict.S = function(sEntry) {\n";
-			echo "   if (sEntry in Dict._entries)\n";
-			echo "   {\n";
-			echo "      return Dict._entries[sEntry];\n";
-			echo "   }\n";
-			echo "   else\n";
-			echo "   {\n";
-			echo "      return sEntry;\n";
-			echo "   }\n";
-			echo "};\n";
+			$sHtml = "<script type=\"text/javascript\">\n";
+			$sHtml .= "var Dict = {};\n";
+			$sHtml .= "Dict._entries = {};\n";
+			$sHtml .= "Dict.S = function(sEntry) {\n";
+			$sHtml .= "   if (sEntry in Dict._entries)\n";
+			$sHtml .= "   {\n";
+			$sHtml .= "      return Dict._entries[sEntry];\n";
+			$sHtml .= "   }\n";
+			$sHtml .= "   else\n";
+			$sHtml .= "   {\n";
+			$sHtml .= "      return sEntry;\n";
+			$sHtml .= "   }\n";
+			$sHtml .= "};\n";
 			foreach($this->a_dict_entries as $s_entry => $s_value)
 			{
-				echo "Dict._entries['$s_entry'] = '".addslashes($s_value)."';\n";
+				$sHtml .= "Dict._entries['$s_entry'] = '".addslashes($s_value)."';\n";
 			}
-			echo "</script>\n";
+			$sHtml .= "</script>\n";
+		}
+		
+		if ($bReturnOutput)
+		{
+			return $sHtml;
+		}
+		else
+		{
+			echo $sHtml;
 		}
 	}
 }