Пример #1
0
 /**
 	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;
                         }
                     }
                 }
             }
         }
     }
 }
Пример #2
0
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;
}