+ if(!is_array($hidecols)) $hidecols = array();
+ $hidecols = array_merge($hidecols, array('item_author', 'item_valid_from', 'item_valid_till')); //TODO Autodetect
+
+ if(!is_array($parts) || in_array('head', $parts)) {
+ $action = $action ? " action='$action'" : false;
+ $html.="<form$action method='POST'>"; //TODO: use $this->form()
+ if($multi_insert) $html.='<span><div name="input_set" style="float:left; border:1px solid grey; padding: 1px; margin: 1px;">';
+ }
+
+ if(!is_array($parts) || in_array('inputs', $parts))
+ $html.=$this->render_insert_inputs($class,$columns,$selectbox,$current,$hidecols,$update);
+
+ if(!is_array($parts) || in_array('foot', $parts)) {
+ if($multi_insert) { //TODO, move to separate JS file
+ $html.=<<<EOF
+ </div></span>
+ <br style="clear:both" />
+ <script>
+ function duplicate_element(what, where) {
+ var node = document.getElementsByName(what)[0];
+ node.parentNode.appendChild(node.cloneNode(true));
+ }
+ </script>
+ <a href='#' onClick="duplicate_element('input_set')">+</a>
+EOF;
+ }
+
+ $btn = is_array($current) ? 'UPDATE' : 'INSERT'; //TODO: $current may be set even when inserting...
+ $html.=$this->input(false, $btn, 'submit');
+ $html.='</form>';
+ }