diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php
index a43bbcd5e..a495fc4f6 100644
--- a/e107_handlers/form_handler.php
+++ b/e107_handlers/form_handler.php
@@ -9,9 +9,9 @@
* Form Handler
*
* $Source: /cvs_backup/e107_0.8/e107_handlers/form_handler.php,v $
- * $Revision: 1.51 $
- * $Date: 2009-10-22 04:19:29 $
- * $Author: e107coders $
+ * $Revision: 1.52 $
+ * $Date: 2009-10-22 19:17:34 $
+ * $Author: secretr $
*
*/
@@ -709,12 +709,13 @@ class e_form
';
}
- function thead($fieldarray, $columnPref='', $querypattern = '')
+ function thead($fieldarray, $columnPref=array(), $querypattern = '', $requeststr = '')
{
$text = "";
- $tmp = explode(".",e_QUERY);
- $etmp = explode(".",$querypattern);
+ // FIXME - Temporary solution, we really need to add parse_str() support
+ $tmp = explode(".", ($requeststr ? $requeststr : e_QUERY));
+ $etmp = explode(".", $querypattern);
// Note: this function should probably be adapted to ALSO deal with $_GET. eg. ?mode=main&field=user_name&asc=desc&from=100
// or as a pattern: ?mode=main&field=[FIELD]&asc=[ASC]&from=[FROM]
@@ -743,7 +744,7 @@ class e_form
foreach($fieldarray as $key=>$val)
{
- if(in_array($key,$columnPref) || $key == "options" || (varsettrue($val['forced'])))
+ if(in_array($key,$columnPref) || $key == "options" || (vartrue($val['forced'])))
{
$cl = (varset($val['thclass'])) ? "class='".$val['thclass']."'" : "";
$text .= "\n\t
";
@@ -774,6 +775,93 @@ class e_form
";
}
+
+ function trow($fieldarray, $currentlist, $fieldvalues)
+ {
+ $cnt = 0;
+ $ret = '';
+
+ foreach ($fieldarray as $field => $data)
+ {
+ //Not found
+ if(!$data['forced'] && (!in_array($field, $currentlist) || !isset($fieldvalues[$field])))
+ {
+ continue;
+ }
+
+ $tdclass = vartrue($data['class']);
+ if($tdclass)
+ {
+ $tdclass = ' class="'.$tdclass.'"';
+ }
+
+ $value = $fieldvalues[$field];
+
+ switch($field)
+ {
+ case 'options':
+ $data['type'] = 'text';
+ break;
+
+ case 'checkboxes':
+ $value = $this->checkbox($data['toggle'].'[]', $value);
+ $data['type'] = 'text';
+ break;
+ }
+
+ switch($data['type'])
+ {
+ case 'text':
+ case 'number':
+ case 'image': //TODO - thumb, js tooltip...
+ //same
+ break;
+
+ case 'datestamp':
+ $mask = 'short';
+ if(is_array($value))
+ {
+ $mask = $value[1];
+ $value = $value[0];
+ }
+ $value = e107::getDateConvert()->convert_date($value, $mask);
+ break;
+
+ case 'userclass':
+ $value = $this->_uc->uc_get_classname($value);
+ break;
+
+ case 'boolean':
+ $value = $value ? ADMIN_TRUE_ICON : '';
+ break;
+
+ //TODO - form_userclass, order,... and maybe more types
+
+ default:
+ continue; //unknown type
+ break;
+ }
+
+ $ret .= '
+ |
+ '.$value.'
+ |
+ ';
+
+ $cnt++;
+ }
+
+ if($cnt)
+ {
+ $trclass = vartrue($fieldvalues['trclass']) ? ' class="'.$trclass.'"' : '';
+ return '
+
+ '.$ret.'
+
+ ';
+ }
+ return '';
+ }
// The 2 functions below are for demonstration purposes only, and may be moved/modified before release.
function filterType($fieldarray)