+ function render_insert_form($class, $columns, $selectbox=array(), $current=false, $hidecols=false, $action=false, $multi_insert=true, $parts=false) {
+ $html = '';
+ //print_r($parts);
+ //echo('<pre>'); print_r($selectbox);
+ //echo('<pre>'); print_r($current);
+ $update = false;
+ if(is_array($current)) {
+ $update = true;
+ $current = array_shift($current);
+ }
+
+ 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()
+ $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)) {
+ $html .= '</div></span><br style="clear:both" />';
+ if($multi_insert) { //TODO, move to separate JS file
+ $html.=<<<EOF
+ <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>';
+ }