function table_add_relations(&$table, $class, $suffix_relations='_relations') {
$where_url = '%d/?where[%c]==%v';
+ $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('edit','model/%v/edit/')),
+ 'model_id' => array(array('item',$where_url),array('barcode',$where_url),array('edit','model/%v/edit/'),array('barcode',$insert_url)),
'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
function table_hide_columns(&$table, $class) { //TODO: Move to build_query_select() !!! :-)))
$fields_hide = array(
- 'model' => array('model_barcode','barcode_name'),
- 'barcode' => array('model_barcode'),
+ 'model' => array('barcode_name'),
+ 'barcode' => array('model_price_in','model_price_out','model_reserve','producer_name','producer_note','model_eshop_hide','category_name','model_countable','model_descript'),
'item' => array('model_descript','model_price_in','model_price_out','barcode_name','model_barcode','model_countable','model_reserve','model_eshop_hide','room_descript','room_author','producer_name','producer_note','vendor_note','location_author','location_gps','location_description')
);
//print_r($table); die();
//echo('<pre>'); print_r($selectbox);
//echo('<pre>'); print_r($current);
$update = false;
+ $current_new=array();
if(is_array($current)) {
$update = true;
- $current = array_shift($current);
+ $current_new = array_merge($current_new,array_shift($current));
+ }
+ if(isset($_GET['insert']) && is_array($_GET['insert'])) {
+ $update = true;
+ $current_new = array_merge($current_new,$_GET['insert']);
}
if(!is_array($hidecols)) $hidecols = array();
}
if(!is_array($parts) || in_array('inputs', $parts))
- $html.=$this->render_insert_inputs($class,$columns,$selectbox,$current,$hidecols,$update);
+ $html.=$this->render_insert_inputs($class,$columns,$selectbox,$current_new,$hidecols,$update);
if(!is_array($parts) || in_array('foot', $parts)) {
$html .= '</div></span><br style="clear:both" />';
EOF;
}
- $btn = is_array($current) ? 'UPDATE' : 'INSERT'; //TODO: $current may be set even when inserting...
+ $btn = count($current_new)>0 ? 'UPDATE' : 'INSERT'; //TODO: $current may be set even when inserting...
$html.=$this->input(false, $btn, 'submit');
$html.='</form>';
}
//SELECT
$sql="SELECT *$group_concat_query FROM `$class`\n";
- //$sql="SELECT * FROM `$class`\n";
//JOIN
if(isset($join[$class])) foreach($join[$class] as $j) $sql .= "LEFT JOIN `$j` USING($j$suffix_id)\n";
if(isset($join2[$class])) foreach($join2[$class] as $j => $c) $sql .= "LEFT JOIN `$j` USING($c)\n";
//ORDER
if(!$order) $order = $class.$suffix_id.' DESC';
if($this->contains_history($class)) $order .= ",${class}_valid_from DESC";
- //$sql .= "ORDER BY $order\n"; //TODO: fixnout az budou opraveny vicenasobny carovy kody
+ $sql .= "ORDER BY $order\n";
//LIMIT/OFFSET
if($limit) {
$limit = $this->escape((int)$limit);
function get_columns($class,$disable_cols=array()) { //TODO: Not sure if compatible with non-MySQL DBs
$class = $this->escape($class);
- $sql = "SHOW COLUMNS FROM $class;";
+ $sql = "SHOW COLUMNS FROM `$class`;";
$columns = $this->safe_query_fetch($sql);
/*foreach($columns as $colk => $col) foreach($col as $key => $val) {
if(in_array($col['Field'],$disable_cols)) $columns[$colk]['Extra']='auto_increment';