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); }
/** * 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); }