public function display($tpl = null)
 {
     $vendorId = vRequest::getInt('vendorid', 1);
     $vendorModel = VmModel::getModel('vendor');
     $vendorIdUser = vmAccess::isSuperVendor();
     $vendorModel->setId($vendorId);
     $this->vendor = $vendorModel->getVendor();
     if (!class_exists('shopFunctionsF')) {
         require VMPATH_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php';
     }
     if (VmConfig::get('enable_content_plugin', 0)) {
         shopFunctionsF::triggerContentPlugin($this->vendor, 'vendor', 'vendor_store_desc');
         shopFunctionsF::triggerContentPlugin($this->vendor, 'vendor', 'vendor_terms_of_service');
     }
     $app = JFactory::getApplication();
     $menus = $app->getMenu();
     $menu = $menus->getActive();
     if (!empty($menu->id)) {
         ShopFunctionsF::setLastVisitedItemId($menu->id);
     } else {
         if ($itemId = vRequest::getInt('Itemid', false)) {
             ShopFunctionsF::setLastVisitedItemId($itemId);
         }
     }
     $document = JFactory::getDocument();
     if (!VmConfig::get('shop_is_offline', 0)) {
         if (ShopFunctionsF::isFEmanager('product.edit')) {
             $add_product_link = JURI::root() . 'index.php?option=com_virtuemart&tmpl=component&view=product&task=edit&virtuemart_product_id=0&manage=1';
             $add_product_link = $this->linkIcon($add_product_link, 'COM_VIRTUEMART_PRODUCT_FORM_NEW_PRODUCT', 'edit', false, false);
         } else {
             $add_product_link = "";
         }
         $this->assignRef('add_product_link', $add_product_link);
         $categoryModel = VmModel::getModel('category');
         $productModel = VmModel::getModel('product');
         $ratingModel = VmModel::getModel('ratings');
         $productModel->withRating = $this->showRating = $ratingModel->showRating();
         $this->products = array();
         $categoryId = vRequest::getInt('catid', 0);
         $categoryChildren = $categoryModel->getChildCategoryList($vendorId, $categoryId);
         $categoryModel->addImages($categoryChildren, 1);
         $this->assignRef('categories', $categoryChildren);
         if (!class_exists('CurrencyDisplay')) {
             require VMPATH_ADMIN . DS . 'helpers' . DS . 'currencydisplay.php';
         }
         $this->currency = CurrencyDisplay::getInstance();
         $products_per_row = VmConfig::get('homepage_products_per_row', 3);
         $featured_products_rows = VmConfig::get('featured_products_rows', 1);
         $featured_products_count = $products_per_row * $featured_products_rows;
         if (!empty($featured_products_count) and VmConfig::get('show_featured', 1)) {
             $this->products['featured'] = $productModel->getProductListing('featured', $featured_products_count);
             $productModel->addImages($this->products['featured'], 1);
         }
         $latest_products_rows = VmConfig::get('latest_products_rows');
         $latest_products_count = $products_per_row * $latest_products_rows;
         if (!empty($latest_products_count) and VmConfig::get('show_latest', 1)) {
             $this->products['latest'] = $productModel->getProductListing('latest', $latest_products_count);
             $productModel->addImages($this->products['latest'], 1);
         }
         $topTen_products_rows = VmConfig::get('topTen_products_rows');
         $topTen_products_count = $products_per_row * $topTen_products_rows;
         if (!empty($topTen_products_count) and VmConfig::get('show_topTen', 1)) {
             $this->products['topten'] = $productModel->getProductListing('topten', $topTen_products_count);
             $productModel->addImages($this->products['topten'], 1);
         }
         $recent_products_rows = VmConfig::get('recent_products_rows');
         $recent_products_count = $products_per_row * $recent_products_rows;
         if (!empty($recent_products_count) and VmConfig::get('show_recent', 1)) {
             $recent_products = $productModel->getProductListing('recent');
             if (!empty($recent_products)) {
                 $this->products['recent'] = $productModel->getProductListing('recent', $recent_products_count);
                 $productModel->addImages($this->products['recent'], 1);
             }
         }
         if ($this->products) {
             $display_stock = VmConfig::get('display_stock', 1);
             $showCustoms = VmConfig::get('show_pcustoms', 1);
             if ($display_stock or $showCustoms) {
                 if (!$showCustoms) {
                     foreach ($this->products as $pType => $productSeries) {
                         foreach ($productSeries as $i => $productItem) {
                             $this->products[$pType][$i]->stock = $productModel->getStockIndicator($productItem);
                         }
                     }
                 } else {
                     if (!class_exists('vmCustomPlugin')) {
                         require JPATH_VM_PLUGINS . DS . 'vmcustomplugin.php';
                     }
                     foreach ($this->products as $pType => $productSeries) {
                         shopFunctionsF::sortLoadProductCustomsStockInd($this->products[$pType], $productModel);
                     }
                 }
             }
         }
         $this->showBasePrice = (vmAccess::manager() or vmAccess::isSuperVendor());
         $layout = VmConfig::get('vmlayout', 'default');
         $this->setLayout($layout);
         $productsLayout = VmConfig::get('productsublayout', 'products');
         if (empty($productsLayout)) {
             $productsLayout = 'products';
         }
         $this->productsLayout = empty($menu->query['productsublayout']) ? $productsLayout : $menu->query['productsublayout'];
         // Add feed links
         if ($this->products && (VmConfig::get('feed_featured_published', 0) == 1 or VmConfig::get('feed_topten_published', 0) == 1 or VmConfig::get('feed_latest_published', 0) == 1)) {
             $link = '&format=feed&limitstart=';
             $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');
             $document->addHeadLink(JRoute::_($link . '&type=rss', FALSE), 'alternate', 'rel', $attribs);
             $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0');
             $document->addHeadLink(JRoute::_($link . '&type=atom', FALSE), 'alternate', 'rel', $attribs);
         }
         vmJsApi::jPrice();
     } else {
         $this->setLayout('off_line');
     }
     $error = vRequest::getInt('error', 0);
     //Todo this may not work everytime as expected, because the error must be set in the redirect links.
     if (!empty($error)) {
         $document->setTitle(vmText::_('COM_VIRTUEMART_PRODUCT_NOT_FOUND') . vmText::sprintf('COM_VIRTUEMART_HOME', $this->vendor->vendor_store_name));
     } else {
         if (empty($this->vendor->customtitle)) {
             if ($menu) {
                 $menuTitle = $menu->params->get('page_title');
                 if (empty($menuTitle)) {
                     $menuTitle = vmText::sprintf('COM_VIRTUEMART_HOME', $this->vendor->vendor_store_name);
                 }
                 $document->setTitle($menuTitle);
             } else {
                 $title = vmText::sprintf('COM_VIRTUEMART_HOME', $this->vendor->vendor_store_name);
                 $document->setTitle($title);
             }
         } else {
             $document->setTitle($this->vendor->customtitle);
         }
         if (!empty($this->vendor->metadesc)) {
             $document->setMetaData('description', $this->vendor->metadesc);
         }
         if (!empty($this->vendor->metakey)) {
             $document->setMetaData('keywords', $this->vendor->metakey);
         }
         if (!empty($this->vendor->metarobot)) {
             $document->setMetaData('robots', $this->vendor->metarobot);
         }
         if (!empty($this->vendor->metaauthor)) {
             $document->setMetaData('author', $this->vendor->metaauthor);
         }
     }
     if (!class_exists('VmTemplate')) {
         require VMPATH_SITE . DS . 'helpers' . DS . 'vmtemplate.php';
     }
     vmTemplate::setTemplate();
     parent::display($tpl);
 }
Exemple #2
0
 /**
  * Displays the view, collects needed data for the different layouts
  *
  * @author Max Milbers
  */
 function display($tpl = null)
 {
     $this->useSSL = tsmConfig::get('useSSL', 0);
     $this->useXHTML = false;
     tsmConfig::loadJLang('com_virtuemart_shoppers', TRUE);
     $mainframe = JFactory::getApplication();
     $pathway = $mainframe->getPathway();
     $layoutName = $this->getLayout();
     if ($layoutName == 'login') {
         parent::display($tpl);
         return;
     }
     if (empty($layoutName) or $layoutName == 'default') {
         $layoutName = vRequest::getCmd('layout', 'edit');
         if ($layoutName == 'default') {
             $layoutName = 'edit';
         }
         $this->setLayout($layoutName);
     }
     $this->_model = tmsModel::getModel('user');
     //$this->_model->setCurrent(); //without this, the administrator can edit users in the FE, permission is handled in the usermodel, but maybe unsecure?
     $editor = JFactory::getEditor();
     $virtuemart_user_id = vRequest::getInt('virtuemart_user_id', false);
     if ($virtuemart_user_id and is_array($virtuemart_user_id)) {
         $virtuemart_user_id = $virtuemart_user_id[0];
     }
     $this->_model->setId($virtuemart_user_id);
     $this->userDetails = $this->_model->getUser();
     $this->address_type = vRequest::getCmd('addrtype', 'BT');
     $new = false;
     if (vRequest::getInt('new', '0') == 1) {
         $new = true;
     }
     if ($new) {
         $virtuemart_userinfo_id = 0;
     } else {
         $virtuemart_userinfo_id = vRequest::getString('virtuemart_userinfo_id', 0);
     }
     $userFields = null;
     if (!class_exists('VirtueMartCart')) {
         require VMPATH_SITE . DS . 'helpers' . DS . 'cart.php';
     }
     $this->cart = VirtueMartCart::getCart();
     $task = vRequest::getCmd('task', '');
     if (($this->cart->_fromCart or $this->cart->getInCheckOut()) && empty($virtuemart_userinfo_id)) {
         //New Address is filled here with the data of the cart (we are in the cart)
         $fieldtype = $this->address_type . 'address';
         $this->cart->prepareAddressFieldsInCart();
         $userFields = $this->cart->{$fieldtype};
     } else {
         if ($task == 'addST') {
             $this->address_type = 'ST';
         }
         if (!$new and empty($virtuemart_userinfo_id)) {
             $virtuemart_userinfo_id = $this->_model->getBTuserinfo_id();
             vmdebug('Try to get $virtuemart_userinfo_id by type BT', $virtuemart_userinfo_id);
         }
         $userFields = $this->_model->getUserInfoInUserFields($layoutName, $this->address_type, $virtuemart_userinfo_id, false);
         if (!$new && empty($userFields[$virtuemart_userinfo_id])) {
             $virtuemart_userinfo_id = $this->_model->getBTuserinfo_id();
             vmdebug('$userFields by getBTuserinfo_id', $userFields);
         }
         $userFields = $userFields[$virtuemart_userinfo_id];
     }
     $this->virtuemart_userinfo_id = $virtuemart_userinfo_id;
     $this->assignRef('userFields', $userFields);
     if ($layoutName == 'edit') {
         if ($this->_model->getId() == 0 && $this->_cuid == 0) {
             $button_lbl = tsmText::_('COM_VIRTUEMART_REGISTER');
         } else {
             $button_lbl = tsmText::_('COM_VIRTUEMART_SAVE');
         }
         $this->assignRef('button_lbl', $button_lbl);
         $this->lUser();
         $this->shopper($userFields);
         $this->payment();
         $this->lOrderlist();
         $this->lVendor();
     }
     $stTask = 'addST';
     if ($task == 'editaddresscart') {
         $stTask = 'editaddresscart';
     }
     $this->_lists['shipTo'] = ShopFunctionsF::generateStAddressList($this, $this->_model, $stTask);
     $this->assignRef('lists', $this->_lists);
     $this->assignRef('editor', $editor);
     if ($layoutName == 'mailregisteruser') {
         $vendorModel = tmsModel::getModel('vendor');
         //			$vendorModel->setId($this->_userDetails->virtuemart_vendor_id);
         $vendor = $vendorModel->getVendor();
         $this->assignRef('vendor', $vendor);
     }
     if ($layoutName == 'editaddress') {
         $layoutName = 'edit_address';
         $this->setLayout($layoutName);
     }
     if (!$this->userDetails->JUser->get('id')) {
         $corefield_title = tsmText::_('COM_VIRTUEMART_USER_CART_INFO_CREATE_ACCOUNT');
     } else {
         $corefield_title = tsmText::_('COM_VIRTUEMART_YOUR_ACCOUNT_DETAILS');
     }
     if ($this->cart->_fromCart or $this->cart->getInCheckOut()) {
         $pathway->addItem(tsmText::_('COM_VIRTUEMART_CART_OVERVIEW'), JRoute::_('index.php?option=com_virtuemart&view=cart', FALSE));
     } else {
         //$pathway->addItem(vmText::_('COM_VIRTUEMART_YOUR_ACCOUNT_DETAILS'), JRoute::_('index.php?option=com_virtuemart&view=user&&layout=edit'));
     }
     $pathway_text = tsmText::_('COM_VIRTUEMART_YOUR_ACCOUNT_DETAILS');
     if (!$this->userDetails->JUser->get('id')) {
         if ($this->cart->_fromCart or $this->cart->getInCheckOut()) {
             if ($this->address_type == 'BT') {
                 $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_EDIT_BILLTO_LBL');
             } else {
                 $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_ADD_SHIPTO_LBL');
             }
         } else {
             if ($this->address_type == 'BT') {
                 $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_EDIT_BILLTO_LBL');
                 $title = tsmText::_('COM_VIRTUEMART_REGISTER');
             } else {
                 $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_ADD_SHIPTO_LBL');
             }
         }
     } else {
         if ($this->address_type == 'BT') {
             $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_BILLTO_LBL');
         } else {
             $vmfield_title = tsmText::_('COM_VIRTUEMART_USER_FORM_ADD_SHIPTO_LBL');
         }
     }
     vmJsApi::vmValidator($this->userDetails->JUser->guest);
     $this->add_product_link = "";
     $this->manage_link = "";
     if (ShopFunctionsF::isFEmanager()) {
         $mlnk = JURI::root() . 'index.php?option=com_virtuemart&tmpl=component&manage=1';
         $this->manage_link = $this->linkIcon($mlnk, 'JACTION_MANAGE', 'new', false, false, true, true);
     }
     if (ShopFunctionsF::isFEmanager('product.edit')) {
         $aplnk = JURI::root() . 'index.php?option=com_virtuemart&tmpl=component&view=product&view=product&task=edit&virtuemart_product_id=0&manage=1';
         $this->add_product_link = $this->linkIcon($aplnk, 'COM_VIRTUEMART_PRODUCT_ADD_PRODUCT', 'new', false, false, true, true);
     }
     $document = JFactory::getDocument();
     $document->setTitle($pathway_text);
     $pathway->additem($pathway_text);
     $document->setMetaData('robots', 'NOINDEX, NOFOLLOW, NOARCHIVE, NOSNIPPET');
     $this->assignRef('page_title', $pathway_text);
     $this->assignRef('corefield_title', $corefield_title);
     $this->assignRef('vmfield_title', $vmfield_title);
     shopFunctionsF::setVmTemplate($this, 0, 0, $layoutName);
     parent::display($tpl);
 }