Exemplo n.º 1
0
 function display($cachable = false, $urlparams = false)
 {
     $mainframe = JFactory::getApplication();
     $jshopConfig = JSFactory::getConfig();
     $user = JFactory::getUser();
     $dispatcher = JDispatcher::getInstance();
     $model = JSFactory::getModel('productShop', 'jshop');
     $ajax = JRequest::getInt('ajax');
     $tmpl = JRequest::getVar("tmpl");
     $product_id = JRequest::getInt('product_id');
     $category_id = JRequest::getInt('category_id');
     $attr = JRequest::getVar("attr");
     JSFactory::loadJsFilesLightBox();
     if ($tmpl != "component") {
         $model->storeEndPageBuy();
     }
     $back_value = $model->getBackValue($product_id, $attr);
     $dispatcher->trigger('onBeforeLoadProduct', array(&$product_id, &$category_id, &$back_value));
     $dispatcher->trigger('onBeforeLoadProductList', array());
     $product = JSFactory::getTable('product', 'jshop');
     $product->load($product_id);
     $category = JSFactory::getTable('category', 'jshop');
     $category->load($category_id);
     $category->name = $category->getName();
     $model->setProduct($product);
     $listcategory = $model->getCategories(1);
     $model->prepareView($back_value);
     $model->clearBackValue();
     $attributes = $model->getAttributes();
     $all_attr_values = $model->getAllAttrValues();
     if (!$product->checkView($category, $user, $category_id, $listcategory)) {
         JError::raiseError(404, _JSHOP_PAGE_NOT_FOUND);
         return;
     }
     JshopHelpersMetadata::product($category, $product);
     $product->hit();
     $allow_review = $model->getAllowReview();
     $text_review = $model->getTextReview();
     $select_review = $model->getSelectReview();
     $hide_buy = $model->getHideBuy();
     $available = $model->getTextAvailable();
     $default_count_product = $model->getDefaultCountProduct($back_value);
     $displaybuttons = $model->getDisplayButtonsStyle();
     $product_images = $product->getImages();
     $product_videos = $product->getVideos();
     $product_demofiles = $product->getDemoFiles();
     $dispatcher->trigger('onBeforeDisplayProductList', array(&$product->product_related));
     $view = $this->getView("product");
     $view->setLayout("product_" . $product->product_template);
     $dispatcher->trigger('onBeforeDisplayProduct', array(&$product, &$view, &$product_images, &$product_videos, &$product_demofiles));
     $view->assign('config', $jshopConfig);
     $view->assign('image_path', $jshopConfig->live_path . '/images');
     $view->assign('noimage', $jshopConfig->noimage);
     $view->assign('image_product_path', $jshopConfig->image_product_live_path);
     $view->assign('video_product_path', $jshopConfig->video_product_live_path);
     $view->assign('video_image_preview_path', $jshopConfig->video_product_live_path);
     $view->assign('product', $product);
     $view->assign('category_id', $category_id);
     $view->assign('images', $product_images);
     $view->assign('videos', $product_videos);
     $view->assign('demofiles', $product_demofiles);
     $view->assign('attributes', $attributes);
     $view->assign('all_attr_values', $all_attr_values);
     $view->assign('related_prod', $product->product_related);
     $view->assign('path_to_image', $jshopConfig->live_path . 'images/');
     $view->assign('live_path', JURI::root());
     $view->assign('enable_wishlist', $jshopConfig->enable_wishlist);
     $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=cart&task=add', 1));
     $view->assign('urlupdateprice', SEFLink('index.php?option=com_jshopping&controller=product&task=ajax_attrib_select_and_price&product_id=' . $product_id . '&ajax=1', 1, 1));
     if ($allow_review) {
         JSFactory::loadJsFilesRating();
         $modelreviewlist = JSFactory::getModel('productReviewList', 'jshop');
         $modelreviewlist->setModel($product);
         $modelreviewlist->load();
         $review_list = $modelreviewlist->getList();
         $pagination = $modelreviewlist->getPagination();
         $pagenav = $pagination->getPagesLinks();
         $view->assign('reviews', $review_list);
         $view->assign('pagination', $pagenav);
         $view->assign('pagination_obj', $pagination);
         $view->assign('display_pagination', $pagenav != "");
     }
     $view->assign('allow_review', $allow_review);
     $view->assign('select_review', $select_review);
     $view->assign('text_review', $text_review);
     $view->assign('stars_count', floor($jshopConfig->max_mark / $jshopConfig->rating_starparts));
     $view->assign('parts_count', $jshopConfig->rating_starparts);
     $view->assign('user', $user);
     $view->assign('shippinginfo', SEFLink($jshopConfig->shippinginfourl, 1));
     $view->assign('hide_buy', $hide_buy);
     $view->assign('available', $available);
     $view->assign('default_count_product', $default_count_product);
     $view->assign('folder_list_products', "list_products");
     $view->assign('back_value', $back_value);
     $view->assign('displaybuttons', $displaybuttons);
     $dispatcher->trigger('onBeforeDisplayProductView', array(&$view));
     $view->display();
     $dispatcher->trigger('onAfterDisplayProduct', array(&$product));
     if ($ajax) {
         die;
     }
 }