瀏覽代碼

New placeholders in templates: this->html(attcode) and this->label(attcode)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@735 a333f486-631f-4898-b8df-5754b55c2be0
romainq 14 年之前
父節點
當前提交
b29c5ccd6b

+ 11 - 1
application/utils.inc.php

@@ -39,6 +39,7 @@ class FileUploadException extends Exception
  */
 class utils
 {
+	private static $m_sConfigFile = ITOP_CONFIG_FILE;
 	private static $m_oConfig = null;
 
 	public static function ReadParam($sName, $defaultValue = "")
@@ -137,6 +138,15 @@ class utils
 	}
 
 	/**
+	 * Specify the application config file
+	 * @param string path to the config file
+	 * @return void
+	 */	 	 	 	
+	public static function SpecifyConfigFile($sFilePath)
+	{
+		self::$m_sConfigFile = $sFilePath;
+	}
+	/**
 	 * Get access to the application config file
 	 * @param none
 	 * @return Config The Config object initialized from the application config file
@@ -145,7 +155,7 @@ class utils
 	{
 		if (self::$m_oConfig == null)
 		{
-			self::$m_oConfig = new Config(ITOP_CONFIG_FILE);
+			self::$m_oConfig = new Config(self::$m_sConfigFile);
 		}
 		return self::$m_oConfig;
 	}

+ 9 - 0
core/dbobject.class.php

@@ -1096,6 +1096,10 @@ abstract class DBObject
 	}
 
 	// Make standard context arguments
+	// Note: Needs to be reviewed because it is currently called once per attribute when an object is written (CheckToWrite / CheckValue)
+	//       Several options here:
+	//       1) cache the result
+	//       2) set only the object ref and resolve the values iif needed from contextual templates and queries (easy for the queries, not for the templates)
 	public function ToArgs($sArgName = 'this')
 	{
 		$aScalarArgs = array();
@@ -1109,6 +1113,11 @@ abstract class DBObject
 		foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef)
 		{
 			$aScalarArgs[$sArgName.'->'.$sAttCode] = $this->Get($sAttCode);
+			if ($oAttDef->IsScalar())
+			{
+				$aScalarArgs[$sArgName.'->html('.$sAttCode.')'] = $this->GetAsHtml($sAttCode);
+				$aScalarArgs[$sArgName.'->label('.$sAttCode.')'] = strip_tags($this->GetAsHtml($sAttCode));
+			}
 		}
 		return $aScalarArgs;
 	}

+ 3 - 3
modules/itop-tickets-1.0.0/data.struct.ta-actions.xml

@@ -10,7 +10,7 @@
 <to>SELECT Team WHERE id=:this-&gt;workgroup_id</to>
 <cc></cc>
 <bcc></bcc>
-<subject>The ticket $this-&gt;name()$, priority $this-&gt;priority$ has been assigned to the workgroup $this-&gt;workgroup_name$</subject>
+<subject>The ticket $this-&gt;name()$, priority $this-&gt;label(priority)$ has been assigned to the workgroup $this-&gt;workgroup_name$</subject>
 <body>&lt;html&gt;
 &lt;body&gt;
 &lt;p&gt;The incident ticket $this-&gt;name()$ has been assigned to the workgroup $this-&gt;workgroup_name$.&lt;/p&gt;
@@ -32,7 +32,7 @@
 <to>SELECT Person WHERE id=:this-&gt;agent_id</to>
 <cc></cc>
 <bcc></bcc>
-<subject>The ticket $this-&gt;name()$, priority $this-&gt;priority$ has been assigned to you</subject>
+<subject>The ticket $this-&gt;name()$, priority $this-&gt;label(priority)$ has been assigned to you</subject>
 <body>&lt;html&gt;
 &lt;body&gt;
 &lt;p&gt;The incident ticket $this-&gt;name()$ has been assigned to you.&lt;/p&gt;
@@ -54,7 +54,7 @@
 <to>SELECT Person WHERE id=:this-&gt;caller_id</to>
 <cc></cc>
 <bcc></bcc>
-<subject>Ticket $this-&gt;name()$, priority $this-&gt;priority$ - $this-&gt;ticket_status$</subject>
+<subject>Ticket $this-&gt;name()$, priority $this-&gt;label(priority)$ - $this-&gt;ticket_status$</subject>
 <body>&lt;html&gt;
 &lt;body&gt;
 &lt;p&gt;The incident ticket $this-&gt;name()$ has changed to status $this-&gt;ticket_status$&lt;/p&gt;

+ 2 - 2
modules/itop-tickets-1.0.0/data.struct.ta-triggers.xml

@@ -8,12 +8,12 @@
 <TriggerOnStateEnter id="5">
 <description>Incident ticket assigned to agent</description>
 <target_class>Incident</target_class>
-<state>Assigned</state>
+<state>assigned</state>
 </TriggerOnStateEnter>
 
 <TriggerOnStateEnter id="6">
 <description>Incident ticket resolved</description>
 <target_class>Incident</target_class>
-<state>Resolved</state>
+<state>resolved</state>
 </TriggerOnStateEnter>
 </Set>

+ 2 - 0
setup/ajax.dataloader.php

@@ -100,6 +100,8 @@ define('TMP_CONFIG_FILE', '../tmp-config-itop.php');
 header("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
 header("Expires: Fri, 17 Jul 1970 05:00:00 GMT");    // Date in the past
 
+Utils::SpecifyConfigFile(TMP_CONFIG_FILE);
+
 /**
  * Main program
  */

+ 4 - 0
setup/index.php

@@ -1082,6 +1082,8 @@ function SetupFinished(SetupWebPage $oP, $aParamValues, $iCurrentStep, Config $o
 clearstatcache(); // Make sure we know what we are doing !
 if (file_exists(FINAL_CONFIG_FILE))
 {
+	Utils::SpecifyConfigFile(FINAL_CONFIG_FILE);
+
 	// The configuration file already exists
 	if (is_writable(FINAL_CONFIG_FILE))
 	{
@@ -1099,6 +1101,8 @@ if (file_exists(FINAL_CONFIG_FILE))
 }
 else
 {
+	Utils::SpecifyConfigFile(TMP_CONFIG_FILE);
+
 	// No configuration file yet
 	// Check that the wizard can write into the root dir to create the configuration file
 	if (!is_writable(dirname(FINAL_CONFIG_FILE)))