/** return a database value for $item_id based on whether $mask_variable points to title or to an item_attribute. for item_attribute references there are some further options. a legal mask item can include the following: {s_attribute_type} {s_attribute_type.img} {s_attribute_type.value} // the .value will result in the same as if no .option was specified. {s_attribute_type.display} {title} {s_item_type} {item_id} {instance_no} {s_status_type} */ function _get_mask_variable_value($mask_variable, $item_instance_r) { $value = ''; if (is_array($mask_variable) && isset($mask_variable['s_attribute_type']) && isset($mask_variable['option'])) { $value = NULL; // the options that require a item_id context if (is_numeric($item_instance_r['item_id'])) { if ($mask_variable['option'] == 'img') { $lookup_attr_r = fetch_attribute_type_lookup_r($mask_variable['s_attribute_type'], fetch_attribute_val($item_instance_r['item_id'], $item_instance_r['instance_no'], $mask_variable['s_attribute_type'])); if ($lookup_attr_r !== false) { if (strlen($lookup_attr_r['img']) > 0 && $lookup_attr_r['img'] != 'none') { $value = theme_image($lookup_attr_r['img'], $lookup_attr_r['display']); } else { // if no image, then use (value). $value = '(' . $lookup_attr_r['value'] . ')'; } } } else { if ($mask_variable['option'] == 'display' && is_numeric($item_instance_r['item_id'])) { $value = fetch_attribute_type_lookup_r($mask_variable['s_attribute_type'], fetch_attribute_val($item_instance_r['item_id'], $item_instance_r['instance_no'], $mask_variable['s_attribute_type']), 'display'); } else { if ($mask_variable['option'] == 'display_type' && is_numeric($item_instance_r['item_id'])) { //$value = get_display_field($mask_variable['s_attribute_type'], $mask_variable['prompt'], $mask_variable['display_type'], fetch_attribute_val($item_instance_r['item_id'], $item_instance_r['instance_no'], $mask_variable['s_attribute_type']), FALSE); $value = get_item_display_field($item_instance_r, $mask_variable, fetch_attribute_val($item_instance_r['item_id'], $item_instance_r['instance_no'], $mask_variable['s_attribute_type']), FALSE); } } } // as a last resort. if (strlen($value) == 0) { $value = fetch_attribute_val($item_instance_r['item_id'], $item_instance_r['instance_no'], $mask_variable['s_attribute_type']); } } else { if (strlen($item_instance_r['s_item_type']) > 0) { if ($mask_variable['option'] == 'prompt') { $value = fetch_s_item_type_attr_prompt($item_instance_r['s_item_type'], $mask_variable['s_attribute_type']); } } } return $value; } else { if (!is_array($mask_variable) && $mask_variable == 'title') { return $item_instance_r['title']; } else { if (!is_array($mask_variable) && $mask_variable == 's_item_type') { return $item_instance_r['s_item_type']; } else { if (!is_array($mask_variable) && $mask_variable == 'item_id') { return $item_instance_r['item_id']; } else { if (!is_array($mask_variable) && $mask_variable == 'instance_no') { return $item_instance_r['instance_no']; } else { if (!is_array($mask_variable) && $mask_variable == 's_status_type') { return $item_instance_r['s_status_type']; } else { return $mask_variable; } } } } } } }
function get_column_display_config(&$HTTP_VARS, $show_owner_column, $show_action_column, $show_interest_column) { $v_column_display_config_rs = get_s_item_listing_column_conf_rs($HTTP_VARS['s_item_type_group'], $HTTP_VARS['s_item_type']); if ($HTTP_VARS['mode'] == 'printable') { $v_column_display_config_rs =& filter_for_printable_list($v_column_display_config_rs); } if ($HTTP_VARS['attr_match'] != 'category' && strlen($HTTP_VARS['attribute_type']) > 0) { // Now we have to merge in search terms, and add them after the 'title' column_id $v_column_display_config_rs =& merge_display_column_config_arrays($v_column_display_config_rs, array(array(column_type => 's_attribute_type', s_attribute_type => $HTTP_VARS['attribute_type'], attribute_val => $HTTP_VARS['attribute_val'], lookup_attribute_val => $HTTP_VARS['lookup_attribute_val'], attr_match => $HTTP_VARS['attr_match'], attr_update_on => $HTTP_VARS['attr_update_on'], orderby_support_ind => 'Y', attr_update_on_days => $HTTP_VARS['attr_update_on_days'], search_attribute_ind => ifempty($HTTP_VARS['search_list'], $HTTP_VARS['attribute_list'])))); } // need to add status_comment to listing if search for status comment enabled. if (strlen($HTTP_VARS['status_comment']) > 0) { $v_column_display_config_rs =& merge_display_column_config_arrays($v_column_display_config_rs, array(array(column_type => 's_field_type', s_field_type => 'STATUSCMNT'))); } if (strlen($HTTP_VARS['rating']) > 0) { $v_column_display_config_rs =& merge_display_column_config_arrays($v_column_display_config_rs, array(array(column_type => 's_field_type', s_field_type => 'RATING'))); } for ($i = 0; $i < count($v_column_display_config_rs); $i++) { $v_column_display_config_rs[$i]['include_in_listing'] = TRUE; if ($v_column_display_config_rs[$i]['column_type'] == 's_attribute_type') { $v_attribute_type_r = fetch_cached_attribute_type_r($v_column_display_config_rs[$i]['s_attribute_type']); if (is_array($v_attribute_type_r)) { if (strlen($HTTP_VARS['s_item_type']) > 0) { $v_column_display_config_rs[$i]['prompt'] = ifempty(fetch_s_item_type_attr_prompt($HTTP_VARS['s_item_type'], $v_column_display_config_rs[$i]['s_attribute_type']), $v_attribute_type_r['prompt']); } else { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], $v_attribute_type_r['prompt']); } // record whether the s_attribute_type is a lookup attribute_type for use while generating the page. if ($v_attribute_type_r['lookup_attribute_ind'] == 'Y') { $v_column_display_config_rs[$i]['lookup_attribute_ind'] = 'Y'; if (strlen($v_column_display_config_rs[$i]['lookup_attribute_val']) == 0 && strlen($v_column_display_config_rs[$i]['attribute_val']) > 0) { $v_column_display_config_rs[$i]['lookup_attribute_val'] = $v_column_display_config_rs[$i]['attribute_val']; $v_column_display_config_rs[$i]['attribute_val'] = NULL; } } else { if ($v_attribute_type_r['multi_attribute_ind'] == 'Y') { $v_column_display_config_rs[$i]['multi_attribute_ind'] = 'Y'; } } if ($v_column_display_config_rs[$i]['orderby_support_ind'] === 'Y') { if ($v_column_display_config_rs[$i]['orderby_datatype'] != 'numeric' && $v_attribute_type_r['input_type'] == 'number') { $v_column_display_config_rs[$i]['orderby_datatype'] = 'numeric'; } } $v_column_display_config_rs[$i]['fieldname'] = get_field_name($v_column_display_config_rs[$i]['s_attribute_type']); // by default we won't include, unless the following is true $v_column_display_config_rs[$i]['include_in_listing'] = FALSE; // TODO - revise to get rid of this reverse logic!!!! if ($v_column_display_config_rs[$i]['search_attribute_ind'] != 'y' || $v_column_display_config_rs[$i]['item_listing_conf_ind'] == 'Y' || $v_column_display_config_rs[$i]['attr_match'] != 'exact' || get_opendb_config_var('listings', 'show_exact_match_search_columns') !== FALSE) { $v_column_display_config_rs[$i]['include_in_listing'] = TRUE; } } else { $v_column_display_config_rs[$i]['include_in_listing'] = FALSE; } } else { if ($v_column_display_config_rs[$i]['column_type'] == 's_field_type') { if ($v_column_display_config_rs[$i]['s_field_type'] == 'RATING') { $v_column_display_config_rs[$i]['s_attribute_type'] = 'S_RATING'; $v_attribute_type_r = fetch_cached_attribute_type_r($v_column_display_config_rs[$i]['s_attribute_type']); $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], $v_attribute_type_r['prompt']); $v_column_display_config_rs[$i]['fieldname'] = 'rating'; $v_column_display_config_rs[$i]['orderby_support_ind'] = 'N'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'ITEM_ID') { $v_column_display_config_rs[$i]['s_attribute_type'] = 'S_ITEM_ID'; $v_attribute_type_r = fetch_cached_attribute_type_r($v_column_display_config_rs[$i]['s_attribute_type']); $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], $v_attribute_type_r['prompt']); $v_column_display_config_rs[$i]['fieldname'] = 'item_id'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'CATEGORY') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('category')); $v_column_display_config_rs[$i]['fieldname'] = 'category'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'STATUSTYPE') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('status')); $v_column_display_config_rs[$i]['fieldname'] = 's_status_type'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'STATUSCMNT') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('status_comment')); $v_column_display_config_rs[$i]['fieldname'] = 'statuscmnt'; $v_column_display_config_rs[$i]['orderby_support_ind'] = 'N'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'TITLE') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('title')); $v_column_display_config_rs[$i]['fieldname'] = 'title'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'ITEMTYPE') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('type')); $v_column_display_config_rs[$i]['fieldname'] = 's_item_type'; } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'OWNER') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('owner')); $v_column_display_config_rs[$i]['fieldname'] = 'owner_id'; if (!$show_owner_column) { $v_column_display_config_rs[$i]['include_in_listing'] = FALSE; } } else { if ($v_column_display_config_rs[$i]['s_field_type'] == 'INTEREST') { if ($show_interest_column) { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('interest')); $v_column_display_config_rs[$i]['fieldname'] = 'interest'; } } } } } } } } } } } else { if ($v_column_display_config_rs[$i]['column_type'] == 'action_links') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('action')); $v_column_display_config_rs[$i]['fieldname'] = 'action_links'; $v_column_display_config_rs[$i]['orderby_support_ind'] = 'N'; if (!$show_action_column) { $v_column_display_config_rs[$i]['include_in_listing'] = FALSE; } } else { if (get_opendb_config_var('borrow', 'enable') !== FALSE && $v_column_display_config_rs[$i]['column_type'] == 'borrow_status') { $v_column_display_config_rs[$i]['prompt'] = ifempty($v_column_display_config_rs[$i]['override_prompt'], get_opendb_lang_var('borrow_status')); $v_column_display_config_rs[$i]['fieldname'] = 'borrow_status'; $v_column_display_config_rs[$i]['orderby_support_ind'] = 'N'; } } } } } return $v_column_display_config_rs; }