+//FIXME: all the values in the $aAttribs list as well as $charset used to go thru htmlspecialchars()... I would propose that most everything that is assigned to the template should go thru that *in the template class* on its way between here and the actual template file. Otherwise we have to do something like: foreach ($aAttribs as $key => $value) $aAttribs[$key] = htmlspecialchars($value); $sCharset = htmlspecialchars($sCharset);
+ $oTemplate->assign('aAttribs', $aAttribs);
+ $oTemplate->assign('name', $sName);
+ $oTemplate->assign('method', $sMethod);
+ $oTemplate->assign('action', $sAction);
+ $oTemplate->assign('enctype', $sEnctype);
+ $oTemplate->assign('charset', $sCharset);
+
+ return $oTemplate->fetch('form.tpl');
+}
+
+/**
+ * Creates unique widget names
+ *
+ * Names are formatted as such: "send1", "send2", "send3", etc.,
+ * where "send" in this example is what was given for $base_name
+ *
+ * @param string $base_name The name upon which to base the
+ * returned widget name.
+ * @param boolean $return_count When TRUE, this function will
+ * return the last number used to
+ * create a widget name for $base_name
+ * (OPTIONAL; default = FALSE).
+ *
+ * @return mixed When $return_output is FALSE, a string containing
+ * the unique widget name; otherwise an integer with
+ * the last number used to create the last widget
+ * name for the given $base_name (where 0 (zero) means
+ * that no such widgets have been created yet).
+ *
+ * @since 1.5.2
+ *
+ */
+function unique_widget_name($base_name, $return_count=FALSE)
+{
+ static $counts = array();
+
+ if (!isset($counts[$base_name]))
+ $counts[$base_name] = 0;
+
+ if ($return_count)
+ return $counts[$base_name];