if(trim($var) == '') $var = ' ';
$rs = isset($rowspan[$id]) ? " rowspan='$rowspan[$id]'" : '';
$cs = isset($colspan[$id]) ? " colspan='$colspan[$id]'" : '';
- $html.="<$td$rs$cs$tdclass>$var</$td>";
+ $html.="<$td$rs$cs$tdclass title='$id'>$var</$td>";
if(in_array($id,$break_after,true)) $html.='</tr>'."<tr$class_br$parameters>";
}
$html.='</tr>';
return $html;
}
- function table(&$table,$colspan=array(),$rowspan=array(),$break_after=array(),$parity_class=array('tr_odd','tr_even'),$params='border=1',$row_classes_field='_row_classes') {
+ function table(&$table,$colspan=array(),$rowspan=array(),$break_after=array(),$orderby=false,$parity_class=array('tr_odd','tr_even'),$params='border=1',$row_classes_field='_row_classes') {
$html="<table $params>";
$header=true;
$even=false;
$params = isset($row[$row_classes_field]) ? $row[$row_classes_field] : '';
unset($row[$row_classes_field]);
if($header) {
- $keys = array(); foreach($row as $key => $val) $keys[$key]=$key;
- $html.=$this->row(T($keys),'thead',false,'',$colspan,$rowspan,$break_after);
+ $keys = array(); foreach($row as $key => $val) {
+ $order= $orderby ? ' '.
+ $this->link('↑', $orderby."[$key]=ASC").
+ $this->link('↓', $orderby."[$key]=DESC") : '';
+ $keys[$key]=T($key).$order;
+ }
+ $html.=$this->row($keys,'thead',false,'',$colspan,$rowspan,$break_after);
$header=false;
}
$class = $parity_class ? $parity_class[$even] : false;
function input($name=false, $value=false, $type='text', $placeholder=false, $options=false, $prefix='') {
if($type == 'textarea') return $this->textarea($name, $value, $placeholder, $options, $prefix);
+ if($type == 'select') return $this->select($name, $placeholder, $value, $prefix);
+ //select(vendor, $selectbox ,false, prefix:);
$html = T($prefix)."<input type='$type' ";
if($name) $html.= "name='$name' ";
if(!is_bool($value)) {
return $html;
}
- function select($name, $selectbox, $default=false) {
+ function select($name, $selectbox, $default=false, $prefix='') {
//echo('<pre>'); print_r($selectbox);
- $html = "<select name='$name'>";
+ $html = T($prefix)."<select name='$name'>";
if(!is_bool($default)) {
$value=$default; $title=$selectbox[$value];
$insert_url = '%d/new?insert[%c]=%v';
$relations = array( //TODO: Autodetect??? //TODO: Add [edit] link to all classes
'model' => array(
- 'model_id' => array(array('item',$where_url),array('barcode',$where_url),array('edit','model/%v/edit/'),array('barcode',$insert_url)),
+ 'model_id' => array(array('item',$where_url),array('barcode',$where_url),array('edit','model/%v/edit/'),array('barcode',$insert_url,false,'add barcode')),
'model_barcode' => array(array('store','assistant/%d?barcode=%v')),
'barcode_name' => array(array('store','assistant/%d?barcode=%v')),
'model_name' => array(array('google','http://google.com/search?q=%v')) //TODO: add manufacturer to google query
//$condition = $relations_conditions[$destination[2]]($table,$id);
if(!eval($relations_conditions[$destination[2]])) continue;
}
- @$table[$id][$class.$suffix_relations] .= $this->link($destination[0], $destination_url, !preg_match('/http/', $destination_url) ).',';
+ $destination_title = isset($destination[3]) ? $destination[3] : $destination[0];
+ @$table[$id][$class.$suffix_relations] .= $this->link($destination_title, $destination_url, !preg_match('/http/', $destination_url) ).',';
}
}
}
$this->table_collapse($table);
if($class) $this->table_hide_columns($table,$class);
$this->table_sort($table);
- return $this->table($table,$colspan,$rowspan,$break_after);
+
+ //TODO: orderbaj fixme (napsat funkci na pridavani/ubirani soucasnych URL parametru)
+ $get = $_SERVER['QUERY_STRING'] != '' ? '?'.$_SERVER['QUERY_STRING'] : '';
+ $moreget = isset($get[0]) ? '&' : '?';
+ $path=$_SERVER['PATH_INFO'].$get.$moreget;
+
+ return $this->table($table,$colspan,$rowspan,$break_after,$path.'orderby');
}
function render_insert_inputs($class,$columns,$selectbox,$current,$hidecols,$update) {
foreach($result as $row) $selectbox[$table.$suffix_id][$row[$table.$suffix_id]]=$row[$table.$suffix_name];
}
//echo('<pre>'); print_r($selectbox);
+ //return $selectbox;
//return array_filter($selectbox, 'ksort');
return array_filter($selectbox, 'natcasesort');
//array_multisort($selectbox); return $selectbox;