Exemple #1
1
function listProductUpdateData($products, $setUrl = 0)
{
    $jshopConfig = JSFactory::getConfig();
    $userShop = JSFactory::getUserShop();
    $taxes = JSFactory::getAllTaxes();
    if ($jshopConfig->product_list_show_manufacturer) {
        $manufacturers = JSFactory::getAllManufacturer();
    }
    if ($jshopConfig->product_list_show_vendor) {
        $vendors = JSFactory::getAllVendor();
    }
    if ($jshopConfig->show_delivery_time) {
        $deliverytimes = JSFactory::getAllDeliveryTime();
    }
    $image_path = $jshopConfig->image_product_live_path;
    $noimage = $jshopConfig->noimage;
    JPluginHelper::importPlugin('jshoppingproducts');
    $dispatcher = JDispatcher::getInstance();
    foreach ($products as $key => $value) {
        $dispatcher->trigger('onListProductUpdateDataProduct', array(&$products, &$key, &$value));
        $use_userdiscount = 1;
        if ($jshopConfig->user_discount_not_apply_prod_old_price && $products[$key]->product_old_price > 0) {
            $use_userdiscount = 0;
        }
        $products[$key]->_original_product_price = $products[$key]->product_price;
        $products[$key]->product_price_wp = $products[$key]->product_price;
        $products[$key]->product_price_default = 0;
        if ($jshopConfig->product_list_show_min_price) {
            if ($products[$key]->min_price > 0) {
                $products[$key]->product_price = $products[$key]->min_price;
            }
        }
        $products[$key]->show_price_from = 0;
        if ($jshopConfig->product_list_show_min_price && $value->different_prices) {
            $products[$key]->show_price_from = 1;
        }
        $products[$key]->product_price = getPriceFromCurrency($products[$key]->product_price, $products[$key]->currency_id);
        $products[$key]->product_old_price = getPriceFromCurrency($products[$key]->product_old_price, $products[$key]->currency_id);
        $products[$key]->product_price_wp = getPriceFromCurrency($products[$key]->product_price_wp, $products[$key]->currency_id);
        $products[$key]->product_price = getPriceCalcParamsTax($products[$key]->product_price, $products[$key]->tax_id);
        $products[$key]->product_old_price = getPriceCalcParamsTax($products[$key]->product_old_price, $products[$key]->tax_id);
        $products[$key]->product_price_wp = getPriceCalcParamsTax($products[$key]->product_price_wp, $products[$key]->tax_id);
        if ($userShop->percent_discount && $use_userdiscount) {
            $products[$key]->product_price_default = $products[$key]->_original_product_price;
            $products[$key]->product_price_default = getPriceFromCurrency($products[$key]->product_price_default, $products[$key]->currency_id);
            $products[$key]->product_price_default = getPriceCalcParamsTax($products[$key]->product_price_default, $products[$key]->tax_id);
            $products[$key]->product_price = getPriceDiscount($products[$key]->product_price, $userShop->percent_discount);
            $products[$key]->product_old_price = getPriceDiscount($products[$key]->product_old_price, $userShop->percent_discount);
            $products[$key]->product_price_wp = getPriceDiscount($products[$key]->product_price_wp, $userShop->percent_discount);
        }
        if ($jshopConfig->list_products_calc_basic_price_from_product_price) {
            $products[$key]->basic_price_info = getProductBasicPriceInfo($value, $products[$key]->product_price_wp);
        } else {
            $products[$key]->basic_price_info = getProductBasicPriceInfo($value, $products[$key]->product_price);
        }
        if ($value->tax_id) {
            $products[$key]->tax = $taxes[$value->tax_id];
        }
        if ($jshopConfig->product_list_show_manufacturer && $value->product_manufacturer_id && isset($manufacturers[$value->product_manufacturer_id])) {
            $products[$key]->manufacturer = $manufacturers[$value->product_manufacturer_id];
        } else {
            $products[$key]->manufacturer = new stdClass();
            $products[$key]->manufacturer->name = '';
        }
        if ($jshopConfig->admin_show_product_extra_field) {
            $products[$key]->extra_field = getProductExtraFieldForProduct($value);
        } else {
            $products[$key]->extra_field = '';
        }
        if ($jshopConfig->product_list_show_vendor) {
            $vendordata = $vendors[$value->vendor_id];
            $vendordata->products = SEFLink("index.php?option=com_jshopping&controller=vendor&task=products&vendor_id=" . $vendordata->id, 1);
            $products[$key]->vendor = $vendordata;
        } else {
            $products[$key]->vendor = '';
        }
        if ($jshopConfig->hide_delivery_time_out_of_stock && $products[$key]->product_quantity <= 0) {
            $products[$key]->delivery_times_id = 0;
            $value->delivery_times_id = 0;
        }
        if ($jshopConfig->show_delivery_time && $value->delivery_times_id) {
            $products[$key]->delivery_time = $deliverytimes[$value->delivery_times_id];
        } else {
            $products[$key]->delivery_time = '';
        }
        $products[$key]->_display_price = getDisplayPriceForProduct($products[$key]->product_price);
        if (!$products[$key]->_display_price) {
            $products[$key]->product_old_price = 0;
            $products[$key]->product_price_default = 0;
            $products[$key]->basic_price_info['price_show'] = 0;
            $products[$key]->tax = 0;
            $jshopConfig->show_plus_shipping_in_product = 0;
        }
        if ($jshopConfig->product_list_show_qty_stock) {
            $products[$key]->qty_in_stock = getDataProductQtyInStock($products[$key]);
        }
        $image = getPatchProductImage($products[$key]->image, 'thumb');
        $products[$key]->product_name_image = $products[$key]->image;
        $products[$key]->product_thumb_image = $image;
        if (!$image) {
            $image = $noimage;
        }
        $products[$key]->image = $image_path . "/" . $image;
        $products[$key]->template_block_product = "product.php";
        if (!$jshopConfig->admin_show_product_labels) {
            $products[$key]->label_id = null;
        }
        if ($products[$key]->label_id) {
            $image = getNameImageLabel($products[$key]->label_id);
            if ($image) {
                $products[$key]->_label_image = $jshopConfig->image_labels_live_path . "/" . $image;
            }
            $products[$key]->_label_name = getNameImageLabel($products[$key]->label_id, 2);
        }
        if ($jshopConfig->display_short_descr_multiline) {
            $products[$key]->short_description = nl2br($products[$key]->short_description);
        }
    }
    if ($setUrl) {
        addLinkToProducts($products, 0, 1);
    }
    $dispatcher->trigger('onListProductUpdateData', array(&$products));
    return $products;
}
 function ajax_attrib_select_and_price()
 {
     $db = JFactory::getDBO();
     $jshopConfig = JSFactory::getConfig();
     $display_price = JRequest::getVar('display_price');
     $jshopConfig->setDisplayPriceFront($display_price);
     $product_id = JRequest::getInt('product_id');
     $change_attr = JRequest::getInt('change_attr');
     if ($jshopConfig->use_decimal_qty) {
         $qty = floatval(str_replace(",", ".", JRequest::getVar('qty', 1)));
     } else {
         $qty = JRequest::getInt('qty', 1);
     }
     if ($qty < 0) {
         $qty = 1;
     }
     $attribs = JRequest::getVar('attr');
     if (!is_array($attribs)) {
         $attribs = array();
     }
     $freeattr = array();
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib', array(&$product_id, &$change_attr, &$qty, &$attribs, &$freeattr));
     $product = JSFactory::getTable('product', 'jshop');
     $product->load($product_id);
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib2', array(&$product));
     $attributesDatas = $product->getAttributesDatas($attribs);
     $product->setAttributeActive($attributesDatas['attributeActive']);
     $attributeValues = $attributesDatas['attributeValues'];
     $product->setFreeAttributeActive($freeattr);
     $attributes = $product->getBuildSelectAttributes($attributeValues, $attributesDatas['attributeSelected'], 1);
     $rows = array();
     foreach ($attributes as $k => $v) {
         $rows[] = '"id_' . $k . '":"' . json_value_encode($v->selects, 1) . '"';
     }
     $pricefloat = $product->getPrice($qty, 1, 1, 1);
     $price = formatprice($pricefloat);
     $available = intval($product->getQty() > 0);
     $ean = $product->getEan();
     $weight = $product->getWeight();
     $rows[] = '"price":"' . json_value_encode($price) . '"';
     $rows[] = '"pricefloat":"' . $pricefloat . '"';
     $rows[] = '"available":"' . $available . '"';
     $rows[] = '"ean":"' . json_value_encode($ean) . '"';
     $rows[] = '"weight":"' . json_value_encode($weight) . '"';
     $qty_in_stock = getDataProductQtyInStock($product);
     $rows[] = '"qty":"' . json_value_encode(sprintQtyInStock($qty_in_stock)) . '"';
     $product->updateOtherPricesIncludeAllFactors();
     $dispatcher->trigger('onBeforeDisplayAjaxAttrib', array(&$rows, &$product));
     print '{' . implode(",", $rows) . '}';
     die;
 }
 public function getLoadProductData()
 {
     $jshopConfig = JSFactory::getConfig();
     $dispatcher = JDispatcher::getInstance();
     $product = $this->product;
     $product->load($this->product_id);
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib2', array(&$product));
     $attributes = $product->getInitLoadAttribute($this->attribs);
     $product->setFreeAttributeActive($this->freeattr);
     $rows = array();
     foreach ($attributes as $k => $v) {
         $rows['id_' . $k] = $v->selects;
     }
     $pricefloat = $product->getPrice($this->qty, 1, 1, 1);
     $price = formatprice($pricefloat);
     $available = intval($product->getQty() > 0);
     $displaybuttons = intval(intval($product->getQty() > 0) || $jshopConfig->hide_buy_not_avaible_stock == 0);
     $ean = $product->getEan();
     $weight = formatweight($product->getWeight());
     $basicprice = formatprice($product->getBasicPrice());
     $rows['price'] = $price;
     $rows['pricefloat'] = $pricefloat;
     $rows['available'] = $available;
     $rows['ean'] = $ean;
     if ($jshopConfig->admin_show_product_basic_price) {
         $rows['basicprice'] = $basicprice;
     }
     if ($jshopConfig->product_show_weight) {
         $rows['weight'] = $weight;
     }
     if ($jshopConfig->product_list_show_price_default && $product->product_price_default > 0) {
         $rows['pricedefault'] = formatprice($product->product_price_default);
     }
     if ($jshopConfig->product_show_qty_stock) {
         $qty_in_stock = getDataProductQtyInStock($product);
         $rows['qty'] = sprintQtyInStock($qty_in_stock);
     }
     $product->updateOtherPricesIncludeAllFactors();
     if (is_array($product->product_add_prices)) {
         foreach ($product->product_add_prices as $k => $v) {
             $rows['pq_' . $v->product_quantity_start] = formatprice($v->price);
         }
     }
     if ($product->product_old_price) {
         $old_price = formatprice($product->product_old_price);
         $rows['oldprice'] = $old_price;
     }
     $rows['displaybuttons'] = $displaybuttons;
     if ($jshopConfig->hide_delivery_time_out_of_stock) {
         $rows['showdeliverytime'] = $product->getDeliveryTimeId();
     }
     if ($jshopConfig->use_extend_attribute_data) {
         $template_path = $jshopConfig->template_path . $jshopConfig->template . "/product";
         $images = $product->getImages();
         $videos = $product->getVideos();
         $demofiles = $product->getDemoFiles();
         if (!file_exists($template_path . "/block_image_thumb.php")) {
             $tmp = array();
             foreach ($images as $img) {
                 $tmp[] = $img->image_name;
             }
             $displayimgthumb = intval(count($images) > 1 || count($videos) && count($images));
             $rows['images'] = $tmp;
             $rows['displayimgthumb'] = $displayimgthumb;
         }
         $view = $this->getView("product");
         $view->setLayout("demofiles");
         $view->assign('config', $jshopConfig);
         $view->assign('demofiles', $demofiles);
         $demofiles = $view->loadTemplate();
         $rows['demofiles'] = $demofiles;
         if (file_exists($template_path . "/block_image_thumb.php")) {
             $product->getDescription();
             $view = $this->getView("product");
             $view->setLayout("block_image_thumb");
             $view->assign('config', $jshopConfig);
             $view->assign('images', $images);
             $view->assign('videos', $videos);
             $view->assign('image_product_path', $jshopConfig->image_product_live_path);
             $dispatcher->trigger('onBeforeDisplayProductViewBlockImageThumb', array(&$view));
             $block_image_thumb = $view->loadTemplate();
             $view = $this->getView("product");
             $view->setLayout("block_image_middle");
             $view->assign('config', $jshopConfig);
             $view->assign('images', $images);
             $view->assign('videos', $videos);
             $view->assign('product', $product);
             $view->assign('noimage', $jshopConfig->noimage);
             $view->assign('image_product_path', $jshopConfig->image_product_live_path);
             $view->assign('path_to_image', $jshopConfig->live_path . 'images/');
             $dispatcher->trigger('onBeforeDisplayProductViewBlockImageMiddle', array(&$view));
             $block_image_middle = $view->loadTemplate();
             $rows['block_image_thumb'] = $block_image_thumb;
             $rows['block_image_middle'] = $block_image_middle;
         }
     }
     $dispatcher->trigger('onBeforeDisplayAjaxAttribRows', array(&$rows, &$this));
     return $rows;
 }
 /**
  * get attributes html selects, price for select attribute 
  */
 function ajax_attrib_select_and_price()
 {
     $db = JFactory::getDBO();
     $jshopConfig = JSFactory::getConfig();
     $product_id = JRequest::getInt('product_id');
     $change_attr = JRequest::getInt('change_attr');
     if ($jshopConfig->use_decimal_qty) {
         $qty = floatval(str_replace(",", ".", JRequest::getVar('qty', 1)));
     } else {
         $qty = JRequest::getInt('qty', 1);
     }
     if ($qty < 0) {
         $qty = 0;
     }
     $attribs = JRequest::getVar('attr');
     if (!is_array($attribs)) {
         $attribs = array();
     }
     $freeattr = JRequest::getVar('freeattr');
     if (!is_array($freeattr)) {
         $freeattr = array();
     }
     JPluginHelper::importPlugin('jshoppingproducts');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib', array(&$product_id, &$change_attr, &$qty, &$attribs, &$freeattr));
     $product = JTable::getInstance('product', 'jshop');
     $product->load($product_id);
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib2', array(&$product));
     $attributesDatas = $product->getAttributesDatas($attribs);
     $product->setAttributeActive($attributesDatas['attributeActive']);
     $attributeValues = $attributesDatas['attributeValues'];
     $product->setFreeAttributeActive($freeattr);
     $attributes = $product->getBuildSelectAttributes($attributeValues, $attributesDatas['attributeSelected']);
     $rows = array();
     foreach ($attributes as $k => $v) {
         $v->selects = str_replace(array("\n", "\r", "\t"), "", $v->selects);
         $rows[] = '"id_' . $k . '":"' . str_replace('"', '\\"', $v->selects) . '"';
     }
     $pricefloat = $product->getPrice($qty, 1, 1, 1);
     $price = formatprice($pricefloat);
     $available = intval($product->getQty() > 0);
     $displaybuttons = intval(intval($product->getQty() > 0) || $jshopConfig->hide_buy_not_avaible_stock == 0);
     $ean = $product->getEan();
     $weight = formatweight($product->getWeight());
     $basicprice = formatprice($product->getBasicPrice());
     $rows[] = '"price":"' . $price . '"';
     $rows[] = '"pricefloat":"' . $pricefloat . '"';
     $rows[] = '"available":"' . $available . '"';
     $rows[] = '"ean":"' . $ean . '"';
     if ($jshopConfig->admin_show_product_basic_price) {
         $rows[] = '"basicprice":"' . $basicprice . '"';
     }
     if ($jshopConfig->product_show_weight) {
         $rows[] = '"weight":"' . $weight . '"';
     }
     if ($jshopConfig->product_list_show_price_default && $product->product_price_default > 0) {
         $rows[] = '"pricedefault":"' . formatprice($product->product_price_default) . '"';
     }
     if ($jshopConfig->product_show_qty_stock) {
         $qty_in_stock = getDataProductQtyInStock($product);
         $rows[] = '"qty":"' . sprintQtyInStock($qty_in_stock) . '"';
     }
     $product->updateOtherPricesIncludeAllFactors();
     if (is_array($product->product_add_prices)) {
         foreach ($product->product_add_prices as $k => $v) {
             $rows[] = '"pq_' . $v->product_quantity_start . '":"' . str_replace('"', '\\"', formatprice($v->price)) . '"';
         }
     }
     if ($product->product_old_price) {
         $old_price = formatprice($product->product_old_price);
         $rows[] = '"oldprice":"' . $old_price . '"';
     }
     $rows[] = '"displaybuttons":"' . $displaybuttons . '"';
     if ($jshopConfig->use_extend_attribute_data) {
         $images = $product->getImages();
         $videos = $product->getVideos();
         $demofiles = $product->getDemoFiles();
         $tmp = array();
         foreach ($images as $img) {
             $tmp[] = '"' . $img->image_name . '"';
         }
         $displayimgthumb = intval(count($images) > 1 || count($videos) && count($images));
         $rows[] = '"images":[' . implode(",", $tmp) . '],"displayimgthumb":"' . $displayimgthumb . '"';
         $view_name = "product";
         $view_config = array("template_path" => JPATH_COMPONENT . "/templates/" . $jshopConfig->template . "/" . $view_name);
         $view = $this->getView($view_name, getDocumentType(), '', $view_config);
         $view->setLayout("demofiles");
         $view->assign('config', $jshopConfig);
         $view->assign('demofiles', $demofiles);
         $demofiles = $view->loadTemplate();
         $demofiles = str_replace(array("\n", "\r", "\t"), "", $demofiles);
         $rows[] = '"demofiles":"' . str_replace('"', '\\"', $demofiles) . '"';
     }
     $dispatcher->trigger('onBeforeDisplayAjaxAttrib', array(&$rows, &$product));
     print '{' . implode(",", $rows) . '}';
     die;
 }
 /**
  * get attributes html selects, price for select attribute 
  */
 function ajax_attrib_select_and_price()
 {
     $db = JFactory::getDBO();
     $jshopConfig = JSFactory::getConfig();
     $product_id = JRequest::getInt('product_id');
     $change_attr = JRequest::getInt('change_attr');
     if ($jshopConfig->use_decimal_qty) {
         $qty = floatval(str_replace(",", ".", JRequest::getVar('qty', 1)));
     } else {
         $qty = JRequest::getInt('qty', 1);
     }
     if ($qty < 0) {
         $qty = 0;
     }
     $attribs = JRequest::getVar('attr');
     if (!is_array($attribs)) {
         $attribs = array();
     }
     $freeattr = JRequest::getVar('freeattr');
     if (!is_array($freeattr)) {
         $freeattr = array();
     }
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib', array(&$product_id, &$change_attr, &$qty, &$attribs, &$freeattr));
     $product = JSFactory::getTable('product', 'jshop');
     $product->load($product_id);
     $dispatcher->trigger('onBeforeLoadDisplayAjaxAttrib2', array(&$product));
     $attributesDatas = $product->getAttributesDatas($attribs);
     $product->setAttributeActive($attributesDatas['attributeActive']);
     $attributeValues = $attributesDatas['attributeValues'];
     $product->setFreeAttributeActive($freeattr);
     $attributes = $product->getBuildSelectAttributes($attributeValues, $attributesDatas['attributeSelected']);
     $rows = array();
     foreach ($attributes as $k => $v) {
         $rows[] = '"id_' . $k . '":"' . json_value_encode($v->selects, 1) . '"';
     }
     $pricefloat = $product->getPrice($qty, 1, 1, 1);
     $price = formatprice($pricefloat);
     $available = intval($product->getQty() > 0);
     $displaybuttons = intval(intval($product->getQty() > 0) || $jshopConfig->hide_buy_not_avaible_stock == 0);
     $ean = $product->getEan();
     $weight = formatweight($product->getWeight());
     $basicprice = formatprice($product->getBasicPrice());
     $min_kolichestvo = $product->min_kolichestvo;
     $rows[] = '"price":"' . json_value_encode($price) . '"';
     $rows[] = '"pricefloat":"' . $pricefloat . '"';
     $rows[] = '"available":"' . $available . '"';
     $rows[] = '"min_kolichestvo":"' . $min_kolichestvo . '"';
     $rows[] = '"ean":"' . json_value_encode($ean) . '"';
     if ($jshopConfig->admin_show_product_basic_price) {
         $rows[] = '"basicprice":"' . json_value_encode($basicprice) . '"';
     }
     if ($jshopConfig->product_show_weight) {
         $rows[] = '"weight":"' . json_value_encode($weight) . '"';
     }
     if ($jshopConfig->product_list_show_price_default && $product->product_price_default > 0) {
         $rows[] = '"pricedefault":"' . json_value_encode(formatprice($product->product_price_default)) . '"';
     }
     if ($jshopConfig->product_show_qty_stock) {
         $qty_in_stock = getDataProductQtyInStock($product);
         $rows[] = '"qty":"' . json_value_encode(sprintQtyInStock($qty_in_stock)) . '"';
     }
     $product->updateOtherPricesIncludeAllFactors();
     if (is_array($product->product_add_prices)) {
         foreach ($product->product_add_prices as $k => $v) {
             $rows[] = '"pq_' . $v->product_quantity_start . '":"' . json_value_encode(formatprice($v->price)) . '"';
         }
     }
     if ($product->product_old_price) {
         $old_price = formatprice($product->product_old_price);
         $rows[] = '"oldprice":"' . json_value_encode($old_price) . '"';
     }
     $rows[] = '"displaybuttons":"' . $displaybuttons . '"';
     if ($jshopConfig->hide_delivery_time_out_of_stock) {
         $rows[] = '"showdeliverytime":"' . $product->getDeliveryTimeId() . '"';
     }
     if ($jshopConfig->use_extend_attribute_data) {
         $template_path = $jshopConfig->template_path . $jshopConfig->template . "/product";
         $images = $product->getImages();
         $videos = $product->getVideos();
         $demofiles = $product->getDemoFiles();
         $tmp = array();
         foreach ($images as $img) {
             $tmp[] = '"' . $img->image_name . '"';
         }
         if (!file_exists($template_path . "/block_image_thumb.php")) {
             $displayimgthumb = intval(count($images) > 1 || count($videos) && count($images));
             $rows[] = '"images":[' . implode(",", $tmp) . '],"displayimgthumb":"' . $displayimgthumb . '"';
         }
         $view_name = "product";
         $view_config = array("template_path" => $template_path);
         $view = $this->getView($view_name, getDocumentType(), '', $view_config);
         $view->setLayout("demofiles");
         $view->assign('config', $jshopConfig);
         $view->assign('demofiles', $demofiles);
         $demofiles = $view->loadTemplate();
         $rows[] = '"demofiles":"' . json_value_encode($demofiles, 1) . '"';
         if (file_exists($template_path . "/block_image_thumb.php")) {
             $product->getDescription();
             $view_name = "product";
             $view_config = array("template_path" => $template_path);
             $view = $this->getView($view_name, getDocumentType(), '', $view_config);
             $view->setLayout("block_image_thumb");
             $view->assign('config', $jshopConfig);
             $view->assign('images', $images);
             $view->assign('videos', $videos);
             $view->assign('image_product_path', $jshopConfig->image_product_live_path);
             $dispatcher->trigger('onBeforeDisplayProductViewBlockImageThumb', array(&$view));
             $block_image_thumb = $view->loadTemplate();
             $view_name = "product";
             $view_config = array("template_path" => $template_path);
             $view = $this->getView($view_name, getDocumentType(), '', $view_config);
             $view->setLayout("block_image_middle");
             $view->assign('config', $jshopConfig);
             $view->assign('images', $images);
             $view->assign('videos', $videos);
             $view->assign('product', $product);
             $view->assign('noimage', $jshopConfig->noimage);
             $view->assign('image_product_path', $jshopConfig->image_product_live_path);
             $view->assign('path_to_image', $jshopConfig->live_path . 'images/');
             $dispatcher->trigger('onBeforeDisplayProductViewBlockImageMiddle', array(&$view));
             $block_image_middle = $view->loadTemplate();
             $rows[] = '"block_image_thumb":"' . json_value_encode($block_image_thumb, 1) . '"';
             $rows[] = '"block_image_middle":"' . json_value_encode($block_image_middle, 1) . '"';
         }
     }
     $dispatcher->trigger('onBeforeDisplayAjaxAttrib', array(&$rows, &$product));
     print '{' . implode(",", $rows) . '}';
     die;
 }
 public function prepareView($back_value = array())
 {
     $jshopConfig = JSFactory::getConfig();
     $product = $this->product;
     if (!getDisplayPriceForProduct($product->product_price)) {
         $jshopConfig->attr_display_addprice = 0;
     }
     $back_value_attr = (array) $back_value['attr'];
     $this->attributes = $product->getInitLoadAttribute($back_value_attr);
     if (count($this->attributes)) {
         $_attributevalue = JSFactory::getTable('AttributValue', 'jshop');
         $this->all_attr_values = $_attributevalue->getAllAttributeValues();
     } else {
         $this->all_attr_values = array();
     }
     $product->getExtendsData();
     $product->product_basic_price_unit_qty = 1;
     if ($jshopConfig->admin_show_product_basic_price) {
         $product->getBasicPriceInfo();
     } else {
         $product->product_basic_price_show = 0;
     }
     if ($product->product_template == "") {
         $product->product_template = "default";
     }
     $_review = JSFactory::getTable('review', 'jshop');
     $this->allow_review = $_review->getAllowReview();
     if ($this->allow_review > 0) {
         $arr_marks = array();
         $arr_marks[] = JHTML::_('select.option', '0', _JSHOP_NOT, 'mark_id', 'mark_value');
         for ($i = 1; $i <= $jshopConfig->max_mark; $i++) {
             $arr_marks[] = JHTML::_('select.option', $i, $i, 'mark_id', 'mark_value');
         }
         $this->text_review = '';
         $this->select_review = JHTML::_('select.genericlist', $arr_marks, 'mark', 'class="inputbox"', 'mark_id', 'mark_value');
     } else {
         $this->select_review = '';
         $this->text_review = $_review->getText();
     }
     if ($jshopConfig->product_show_manufacturer_logo || $jshopConfig->product_show_manufacturer) {
         $product->manufacturer_info = $product->getManufacturerInfo();
         if (!isset($product->manufacturer_info)) {
             $product->manufacturer_info = new stdClass();
             $product->manufacturer_info->manufacturer_logo = '';
             $product->manufacturer_info->name = '';
         }
     } else {
         $product->manufacturer_info = new stdClass();
         $product->manufacturer_info->manufacturer_logo = '';
         $product->manufacturer_info->name = '';
     }
     if ($jshopConfig->product_show_vendor) {
         $vendorinfo = $product->getVendorInfo();
         $vendorinfo->urllistproducts = SEFLink("index.php?option=com_jshopping&controller=vendor&task=products&vendor_id=" . $vendorinfo->id, 1);
         $vendorinfo->urlinfo = SEFLink("index.php?option=com_jshopping&controller=vendor&task=info&vendor_id=" . $vendorinfo->id, 1);
         $product->vendor_info = $vendorinfo;
     } else {
         $product->vendor_info = null;
     }
     if ($jshopConfig->admin_show_product_extra_field) {
         $product->extra_field = $product->getExtraFields();
     } else {
         $product->extra_field = null;
     }
     if ($jshopConfig->admin_show_freeattributes) {
         $product->getListFreeAttributes();
         foreach ($product->freeattributes as $k => $v) {
             if (!isset($back_value['freeattr'][$v->id])) {
                 $back_value['freeattr'][$v->id] = '';
             }
             $product->freeattributes[$k]->input_field = $this->getInputFreeAttribute($v->id, $back_value['freeattr'][$v->id]);
         }
         $attrrequire = $product->getRequireFreeAttribute();
         $product->freeattribrequire = count($attrrequire);
     } else {
         $product->freeattributes = null;
         $product->freeattribrequire = 0;
     }
     if ($jshopConfig->product_show_qty_stock) {
         $product->qty_in_stock = getDataProductQtyInStock($product);
     }
     if (!$jshopConfig->admin_show_product_labels) {
         $product->label_id = null;
     }
     if ($product->label_id) {
         $image = getNameImageLabel($product->label_id);
         if ($image) {
             $product->_label_image = $jshopConfig->image_labels_live_path . "/" . $image;
         }
         $product->_label_name = getNameImageLabel($product->label_id, 2);
     }
     $product->_display_price = getDisplayPriceForProduct($product->getPriceCalculate());
     if (!$product->_display_price) {
         $product->product_old_price = 0;
         $product->product_price_default = 0;
         $product->product_basic_price_show = 0;
         $product->product_is_add_price = 0;
         $product->product_tax = 0;
         $jshopConfig->show_plus_shipping_in_product = 0;
     }
     if (trim($product->description) == "") {
         $product->description = $product->short_description;
     }
     if ($jshopConfig->use_plugin_content) {
         changeDataUsePluginContent($product, "product");
     }
     $product->hide_delivery_time = 0;
     if (!$product->getDeliveryTimeId()) {
         $product->hide_delivery_time = 1;
     }
     $product->button_back_js_click = "history.go(-1);";
     $end_page_list = $this->getEndPageList();
     if ($end_page_list && $jshopConfig->product_button_back_use_end_list) {
         $product->button_back_js_click = "location.href='" . jsFilterUrl($end_page_list) . "';";
     }
 }