freenetis-github/application/views/table_form.php @ 8baed187
8baed187 | Michal Kliment | <?php
|
|
/**
|
|||
* Tableform view is a form rendered using HTML table
|
|||
* @author Tomas Dulik, Michal Kliment, Ondřej Fibich
|
|||
* @version 0.9 beta
|
|||
*
|
|||
* Input data are in $form_def and $form_values variables
|
|||
* $form_def is an array of items, where item can be:
|
|||
* - 'tr' - will render a new table row, e.g. as </tr><tr>
|
|||
* - 'td' - will render an empty table cell, e.g. as </td><td>
|
|||
* - instance of Table_Form_Item which represents form fields, e.g.
|
|||
* - input field
|
|||
* - submit button
|
|||
* - selection box
|
|||
* - hidden fields
|
|||
*/
|
|||
echo form::open($uri, array('method'=>'get')) . "\n<table class=\"table_form\"><tr>\n";
|
|||
foreach ($form_def as $value) {
|
|||
if (is_object($value))
|
|||
{
|
|||
if (!isset($form_val[$value->name])) $val="";
|
|||
else $val=$form_val[$value->name];
|
|||
// attributs of element
|
|||
$attrs = '';
|
|||
foreach ($value->attrs as $attr_name => $attr_value)
|
|||
{
|
|||
$attrs .= ' ' . htmlspecialchars($attr_name) . '="' . htmlspecialchars($attr_value) . '"';
|
|||
}
|
|||
switch ($value->type) {
|
|||
case "submit":
|
|||
echo " <td><input name='submit' type='submit' value='"
|
|||
.url_lang::lang("texts.".$value->label)."' class=\"submit\"" .$attrs. " /></td>\n";
|
|||
break;
|
|||
case "hidden":
|
|||
echo " <input name='".$value->name."' value='".$value->values[0]."' type='hidden'" .$attrs. ">\n";
|
|||
break;
|
|||
case "select":
|
|||
echo " <td><label for='".$value->name."'>".__(''.$value->label).":</label></td><td><select id='".$value->name."' name='".$value->name."'" .$attrs. ">\n";
|
|||
foreach ($value->values as $key => $val_value)
|
|||
{
|
|||
echo " <option value='";
|
|||
echo ($key>0) ? $key."'" : "'";
|
|||
echo ($val==$key) ? ' selected' : '';
|
|||
echo ">".$val_value."</option>\n";
|
|||
}
|
|||
echo " </select></td>\n";
|
|||
break;
|
|||
/**
|
|||
* case "input":
|
|||
* here you can put implementation of other field types, like
|
|||
* selections, check buttons etc.
|
|||
*/
|
|||
default:
|
|||
echo " <td><label for='".$value->name."'>".url_lang::lang("texts.".$value->label).":</label></td>\n"
|
|||
." <td><input type='text' id='".$value->name."' name='".$value->name."' value='$val'" .$attrs. " /></td>\n";
|
|||
}
|
|||
}
|
|||
else
|
|||
{
|
|||
switch ($value) {
|
|||
case "tr":
|
|||
echo "</tr><tr>\n"; break;
|
|||
case "td":
|
|||
echo " <td></td>\n"; break;
|
|||
default:
|
|||
echo $value;
|
|||
}
|
|||
}
|
|||
}
|
|||
echo "</tr></table>\n</form>";
|
|||
?>
|
|||