$where_url = '%d/?where[%c]==%v';
$relations = array( //TODO: Autodetect???
'model' => array(
- 'model_id' => array(array('item',$where_url)),
+ 'model_id' => array(array('item',$where_url),array('edit','model/%v/edit/')),
'model_barcode' => array(array('store','assistant/%d?barcode=%v')),
'model_name' => array(array('google','http://google.com/search?q=%v',true)) //TODO: add manufacturer to google query
),
array(urlencode($destination[0]),urlencode($column),urlencode($value)),
$destination[1]
);
- if(isset($destination[2])) {
+ if(isset($destination[2]) && isset($relations_conditions[$destination[2]])) {
//$condition = $relations_conditions[$destination[2]]($table,$id);
if(!eval($relations_conditions[$destination[2]])) continue;
}
}
function table_sort(&$table) {
- $precedence = array('item_id', 'model_image', 'model_name','model_descript','category_name','status_name','room_name');
+ $precedence = array('item_id', 'model_image', 'model_name','model_descript','category_name','status_name','room_name','item_quantity','item_price_in','item_price_out','model_price_in','model_price_out','item_relations','model_relations');
$table_sorted = array();
foreach($table as $id => $row) {
$table_sorted[$id] = array();
return $result;
}
- function translate_query_results($result) {
+ function translate_query_results(&$result) {
$translate_cols = array('status_name', 'item_valid_till'); //TODO: Hardcoded
foreach($result as $key => $row) {
foreach($translate_cols as $col) if(isset($result[$key][$col])){
$result[$key][$col] = T($result[$key][$col]);
}
}
- return $result;
+ }
+
+ function load_backend_data_to_query_results(&$result) {
+ $translate_cols = array(
+ 'item_author' => 'return($this->auth->get_username_by_id($result[$key][$col]));'
+ ); //TODO: Hardcoded
+ foreach($result as $key => $row) {
+ foreach($translate_cols as $col => $backend) if(isset($result[$key][$col])){
+ $result[$key][$col] = eval($backend);
+ }
+ }
}
function safe_query_fetch($sql, $fatal=true, $fetch_flags = PDO::FETCH_ASSOC, $translate=true) {
$result = $this->safe_query($sql, $fatal)->fetchAll($fetch_flags);
- if($translate) $result = $this->translate_query_results($result);
+ $this->load_backend_data_to_query_results($result);
+ if($translate) $this->translate_query_results($result);
return $result;
}