From 0e055cd6319374f9b7df5cc4b762aded7c5b52d2 Mon Sep 17 00:00:00 2001
From: Christian Schneider
Date: Fri, 15 Aug 2008 16:10:35 +0000
Subject: T() now accepts values like ET() but uses Q() to quote them

---
 auto_prepend.php    | 11 ++++++++---
 tests/autoprepend.t | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 3 deletions(-)
 create mode 100755 tests/autoprepend.t

diff --git a/auto_prepend.php b/auto_prepend.php
index d026017..6bcd03c 100644
--- a/auto_prepend.php
+++ b/auto_prepend.php
@@ -92,13 +92,18 @@ function EDX()
 /**
  * Return a text in the selected language
  * @param $label Label of text to return
- * @param $language Optional language to return text in
+ * @param $language Optional value array or language string
+ * @param $values Optional value array or language string
  * @return Localized text string
  */
-function T($label, $language = null, $dummy = null)
+function T($label, $language = null, $values = null)
 {
 	it_text::init();
-	return $GLOBALS['it_text']->text($label, $language, $dummy);
+
+	if (is_array($language))        # Need to swap params?
+		list($language, $values) = array($values, $language);
+
+	return is_array($values) ? $GLOBALS['it_text']->etext($label, array_map(array("it_html", "Q"), $values), $language) : $GLOBALS['it_text']->text($label, $language);
 }
 
 /**
diff --git a/tests/autoprepend.t b/tests/autoprepend.t
new file mode 100755
index 0000000..e91996f
--- /dev/null
+++ b/tests/autoprepend.t
@@ -0,0 +1,40 @@
+#!/www/server/bin/php -qC
+<?php
+
+require "searchlib/search_test.class";
+
+it_text::init();
+$GLOBALS['it_text']->statictext = array(
+	'_' => array("de" => "Deutsch", "en" => "English"),
+	'foo' => array("de" => "bar {v1}", "en" => "qux {v1}"),
+);
+
+is(
+	T('foo'),
+	"bar {v1}",
+	"simple T()",
+);
+
+is(
+	T('foo', 'en'),
+	"qux {v1}",
+	"simple T() with language",
+);
+
+is(
+	T('foo', 'v1' => "gna<bber"),
+	"bar gna&lt;bber",
+	"T() with quoted values",
+);
+
+is(
+	T('foo', 'v1' => "gna<bber", 'en'),
+	"qux gna&lt;bber",
+	"T() with with quoted values and language",
+);
+
+is(
+	T('foo', 'en', 'v1' => "gna<bber"),
+	"qux gna&lt;bber",
+	"T() with with language and quoted values",
+);
-- 
cgit v1.2.3