/** * spec function additional query for product list */ function getQueryListProductsExtraFields() { $query = ""; $list = JSFactory::getAllProductExtraField(); $jshopConfig = JSFactory::getConfig(); $config_list = $jshopConfig->getProductListDisplayExtraFields(); foreach ($list as $v) { if (in_array($v->id, $config_list)) { $query .= ", prod.`extra_field_" . $v->id . "` "; } } return $query; }
} if ($manufacturer_id && $show_categorys) { $manufacturer = JTable::getInstance('manufacturer', 'jshop'); $manufacturer->load($manufacturer_id); $categorys = $mainframe->getUserStateFromRequest($contextfilter . 'categorys', 'categorys', array()); $categorys = filterAllowValue($categorys, "int+"); $filter_categorys = $manufacturer->getCategorys(); } if ($show_prices) { $fprice_from = $mainframe->getUserStateFromRequest($contextfilter . 'fprice_from', 'fprice_from'); $fprice_from = saveAsPrice($fprice_from); $fprice_to = $mainframe->getUserStateFromRequest($contextfilter . 'fprice_to', 'fprice_to'); $fprice_to = saveAsPrice($fprice_to); } if ($show_characteristics && $jshopConfig->admin_show_product_extra_field) { $characteristic_fields = JSFactory::getAllProductExtraField(); $characteristic_fieldvalues = JSFactory::getAllProductExtraFieldValueDetail(); $characteristic_displayfields = JSFactory::getDisplayFilterExtraFieldForCategory($category_id); $extra_fields_active = $mainframe->getUserStateFromRequest($contextfilter . 'extra_fields', 'extra_fields', array()); $extra_fields_active = filterAllowValue($extra_fields_active, "array_int_k_v+"); } $date_from = $mainframe->getUserStateFromRequest($contextfilter . 'dfrom', 'dfrom', date('d/m/Y')); $date_to = $mainframe->getUserStateFromRequest($contextfilter . 'dto', 'dto', date('d/m/Y', time() + 60 * 60 * 24)); if ($date_from == '') { $date_from = date('d/m/Y'); } if ($date_to == '') { $date_to = date('d/m/Y', time() + 60 * 60 * 24); } $Item_id = $params->get('item_id', ''); if ($Item_id == '') {
function get_html_characteristics() { $jshopConfig = JSFactory::getConfig(); $category_id = JRequest::getInt("category_id"); if ($jshopConfig->admin_show_product_extra_field) { $dispatcher = JDispatcher::getInstance(); $characteristic_fields = JSFactory::getAllProductExtraField(); $characteristic_fieldvalues = JSFactory::getAllProductExtraFieldValueDetail(); $characteristic_displayfields = JSFactory::getDisplayFilterExtraFieldForCategory($category_id); $view_name = "search"; $view_config = array("template_path" => $jshopConfig->template_path . $jshopConfig->template . "/" . $view_name); $view = $this->getView($view_name, getDocumentType(), '', $view_config); $view->setLayout("characteristics"); $view->assign('characteristic_fields', $characteristic_fields); $view->assign('characteristic_fieldvalues', $characteristic_fieldvalues); $view->assign('characteristic_displayfields', $characteristic_displayfields); $dispatcher->trigger('onBeforeDisplaySearchHtmlCharacteristics', array(&$view)); $view->display(); } die; }
public static function getDisplayFilterExtraFieldForCategory($cat_id) { static $listforcat; if (!isset($listforcat[$cat_id])) { $fields = array(); $list = JSFactory::getAllProductExtraField(); foreach ($list as $val) { if ($val->allcats) { $fields[] = $val->id; } else { if (in_array($cat_id, $val->cats)) { $fields[] = $val->id; } } } $jshopConfig = JSFactory::getConfig(); $config_list = $jshopConfig->getFilterDisplayExtraFields(); foreach ($fields as $k => $val) { if (!in_array($val, $config_list)) { unset($fields[$k]); } } $listforcat[$cat_id] = $fields; } return $listforcat[$cat_id]; }
function getExtraFields($type = 1) { $_cats = $this->getCategories(); $cats = array(); foreach ($_cats as $v) { $cats[] = $v->category_id; } $fields = array(); $jshopConfig = JSFactory::getConfig(); $hide_fields = $jshopConfig->getProductHideExtraFields(); $cart_fields = $jshopConfig->getCartDisplayExtraFields(); $fieldvalues = JSFactory::getAllProductExtraFieldValue(); $listfield = JSFactory::getAllProductExtraField(); foreach ($listfield as $val) { if ($type == 1 && in_array($val->id, $hide_fields)) { continue; } if ($type == 2 && !in_array($val->id, $cart_fields)) { continue; } if ($val->allcats) { $fields[] = $val; } else { $insert = 0; foreach ($cats as $cat_id) { if (in_array($cat_id, $val->cats)) { $insert = 1; } } if ($insert) { $fields[] = $val; } } } $rows = array(); foreach ($fields as $field) { $field_id = $field->id; $field_name = "extra_field_" . $field_id; if ($field->type == 0) { if ($this->{$field_name} != 0) { $listid = explode(',', $this->{$field_name}); $tmp = array(); foreach ($listid as $extrafiledvalueid) { $tmp[] = $fieldvalues[$extrafiledvalueid]; } $extra_field_value = implode($jshopConfig->multi_charactiristic_separator, $tmp); $rows[] = array("id" => $field_id, "name" => $listfield[$field_id]->name, "description" => $listfield[$field_id]->description, "value" => $extra_field_value, "groupname" => $listfield[$field_id]->groupname, 'field_value_ids' => $listid); } } else { if ($this->{$field_name} != "") { $rows[] = array("id" => $field_id, "name" => $listfield[$field_id]->name, "description" => $listfield[$field_id]->description, "value" => $this->{$field_name}, "groupname" => $listfield[$field_id]->groupname); } } } $rowsblock = array(); foreach ($rows as $k => $v) { if ($v['groupname'] == '') { $grname = 'defaultgroup'; } else { $grname = $v['groupname']; } $rowsblock[$grname][] = $v; } $rows = array(); foreach ($rowsblock as $bl => $val) { foreach ($val as $k => $v) { if ($k == 0) { $v['grshow'] = 1; } else { $v['grshow'] = 0; } if ($k == count($val) - 1) { $v['grshowclose'] = 1; } else { $v['grshowclose'] = 0; } $rows[$v['id']] = $v; } } return $rows; }
private function load_tmpl_characteristics($category_id) { $jshopConfig = JSFactory::getConfig(); if ($jshopConfig->admin_show_product_extra_field) { $dispatcher = JDispatcher::getInstance(); $characteristic_fields = JSFactory::getAllProductExtraField(); $characteristic_fieldvalues = JSFactory::getAllProductExtraFieldValueDetail(); $characteristic_displayfields = JSFactory::getDisplayFilterExtraFieldForCategory($category_id); $view = $this->getView("search"); $view->setLayout("characteristics"); $view->assign('characteristic_fields', $characteristic_fields); $view->assign('characteristic_fieldvalues', $characteristic_fieldvalues); $view->assign('characteristic_displayfields', $characteristic_displayfields); $dispatcher->trigger('onBeforeDisplaySearchHtmlCharacteristics', array(&$view)); $html = $view->loadTemplate(); } else { $html = ''; } return $html; }
function getExtraFields($type = 1) { $_cats = $this->getCategories(); $cats = array(); foreach ($_cats as $v) { $cats[] = $v->category_id; } $fields = array(); $jshopConfig = JSFactory::getConfig(); $hide_fields = $jshopConfig->getProductHideExtraFields(); $cart_fields = $jshopConfig->getCartDisplayExtraFields(); $fieldvalues = JSFactory::getAllProductExtraFieldValue(); $listfield = JSFactory::getAllProductExtraField(); foreach ($listfield as $val) { if ($type == 1 && in_array($val->id, $hide_fields)) { continue; } if ($type == 2 && !in_array($val->id, $cart_fields)) { continue; } if ($val->allcats) { $fields[] = $val; } else { $insert = 0; foreach ($cats as $cat_id) { if (in_array($cat_id, $val->cats)) { $insert = 1; } } if ($insert) { $fields[] = $val; } } } $rows = array(); foreach ($fields as $field) { $field_id = $field->id; $field_name = "extra_field_" . $field_id; if ($field->type == 0) { if ($this->{$field_name} != 0) { $listid = explode(',', $this->{$field_name}); $tmp = array(); foreach ($listid as $extrafiledvalueid) { $tmp[] = $fieldvalues[$extrafiledvalueid]; } $extra_field_value = implode(", ", $tmp); $rows[] = array("id" => $field_id, "name" => $listfield[$field_id]->name, "description" => $listfield[$field_id]->description, "value" => $extra_field_value, "groupname" => $listfield[$field_id]->groupname); } } else { if ($this->{$field_name} != "") { $rows[] = array("id" => $field_id, "name" => $listfield[$field_id]->name, "description" => $listfield[$field_id]->description, "value" => $this->{$field_name}, "groupname" => $listfield[$field_id]->groupname); } } } return $rows; }