2015-12-08 9 views
16

में प्रदर्शित करना मैं जानना चाहता हूं कि qty, ऐड-टू-कार्ट बटन कैसे जोड़ें और उन्हें रैखिक फैशन में प्रदर्शित करें वीएम 3 उत्पाद विवरण पृष्ठ।virtuemart 3 के लिए उत्पाद विवरण पृष्ठ पर संबंधित उत्पादों में qty और एड-टू-कार्ट जोड़ना और रैखिक फैशन

मैं यहां एक समान प्रश्न (Display pricing and add to cart button in related products Virtuemart 2.0) स्थित हूं, लेकिन इनमें से कोई भी vm3 के लिए काम नहीं करता है।

मुझे लगता है कि मुझे घटकों/com_virtuemart/sublayouts/related.php पर सही फाइलें मिलीं लेकिन सिंटैक्स में से कोई भी ऐसा नहीं लगता जैसा मैंने पाया था।

मैं जो कुछ हासिल करने की कोशिश कर रहा हूं उसकी तस्वीर के पहले और बाद में संलग्न होगा। से पहले:

before

और इस मैं इसे की तरह देखने के लिए चाहते हैं क्या है। के बाद:

after

आप किसी भी विचार या संकेत है, तो मैं बहुत आभारी होंगे।

<?php 
defined('_JEXEC') or die('Restricted access'); 

$related = $viewData['related']; 
$customfield = $viewData['customfield']; 
$thumb = $viewData['thumb']; 

//juri::root() For whatever reason, we used this here, maybe it was for the mails 
echo JHtml::link (JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $related->virtuemart_product_id . '&virtuemart_category_id=' . $related->virtuemart_category_id), $thumb . $related->product_name, array('title' => $related->product_name,'target'=>'_blank')); 

if($customfield->wPrice){ 
    $currency = calculationHelper::getInstance()->_currencyDisplay; 
    echo $currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $related->prices); 
} 
if($customfield->wDescr){ 
    echo '<p class="product_s_desc">'.$related->product_s_desc.'</p>'; 
} 

यह है कि मैं क्या घटकों में है/com_virtuemart/विचारों/ProductDetails/Tmpl/default.php:

यह है कि मैं क्या घटकों/com_virtuemart/sublayouts/related.php में मिल गया है है

<?php 
/** 
* 
* Show the product details page 
* 
* @package VirtueMart 
* @subpackage 
* @author Max Milbers, Eugen Stranz, Max Galt 
* @link http://www.virtuemart.net 
* @copyright Copyright (c) 2004 - 2014 VirtueMart Team. All rights reserved. 
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php 
* VirtueMart is free software. This version may have been modified pursuant 
* to the GNU General Public License, and as distributed it includes or 
* is derivative of works licensed under the GNU General Public License or 
* other free or open source software licenses. 
* @version $Id: default.php 9058 2015-11-10 18:30:54Z Milbo $ 
*/ 
// Check to ensure this file is included in Joomla! 
defined('_JEXEC') or die('Restricted access'); 

/* Let's see if we found the product */ 
if (empty($this->product)) { 
    echo vmText::_('COM_VIRTUEMART_PRODUCT_NOT_FOUND'); 
    echo '<br /><br /> ' . $this->continue_link_html; 
    return; 
} 

echo shopFunctionsF::renderVmSubLayout('askrecomjs',array('product'=>$this->product)); 

if(vRequest::getInt('print',false)){ ?> 
    <body onload="javascript:print();"> 
<?php } ?> 

<div class="productdetails-view productdetails"> 
    <?php 
    // Product Navigation 
    if (VmConfig::get('product_navigation', 1)) { 
    ?> 
     <div class="product-neighbours"> 
     <?php 
     if (!empty($this->product->neighbours ['previous'][0])) { 
      $prev_link = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->neighbours ['previous'][0] ['virtuemart_product_id'] . '&virtuemart_category_id=' . $this->product->virtuemart_category_id, FALSE); 
      echo JHtml::_('link', $prev_link, $this->product->neighbours ['previous'][0] 
      ['product_name'], array('rel'=>'prev', 'class' => 'previous-page','data-dynamic-update' => '1')); 
     } 
     if (!empty($this->product->neighbours ['next'][0])) { 
      $next_link = JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->neighbours ['next'][0] ['virtuemart_product_id'] . '&virtuemart_category_id=' . $this->product->virtuemart_category_id, FALSE); 
      echo JHtml::_('link', $next_link, $this->product->neighbours ['next'][0] ['product_name'], array('rel'=>'next','class' => 'next-page','data-dynamic-update' => '1')); 
     } 
     ?> 
     <div class="clear"></div> 
     </div> 
    <?php } // Product Navigation END 
    ?> 

    <?php // Back To Category Button 
    if ($this->product->virtuemart_category_id) { 
     $catURL = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$this->product->virtuemart_category_id, FALSE); 
     $categoryName = vmText::_($this->product->category_name) ; 
    } else { 
     $catURL = JRoute::_('index.php?option=com_virtuemart'); 
     $categoryName = vmText::_('COM_VIRTUEMART_SHOP_HOME') ; 
    } 
    ?> 
    <div class="back-to-category"> 
     <a href="<?php echo $catURL ?>" class="product-details" title="<?php echo $categoryName ?>"><?php echo vmText::sprintf('COM_VIRTUEMART_CATEGORY_BACK_TO',$categoryName) ?></a> 
    </div> 

    <?php // Product Title ?> 
    <h1 itemprop="name"><?php echo $this->product->product_name ?></h1> 
    <?php // Product Title END ?> 

    <?php // afterDisplayTitle Event 
    echo $this->product->event->afterDisplayTitle ?> 

    <?php 
    // Product Edit Link 
    echo $this->edit_link; 
    // Product Edit Link END 
    ?> 

    <?php 
    // PDF - Print - Email Icon 
    if (VmConfig::get('show_emailfriend') || VmConfig::get('show_printicon') || VmConfig::get('pdf_icon')) { 
    ?> 
     <div class="icons"> 
     <?php 

     $link = 'index.php?tmpl=component&option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->virtuemart_product_id; 

     echo $this->linkIcon($link . '&format=pdf', 'COM_VIRTUEMART_PDF', 'pdf_button', 'pdf_icon', false); 
     //echo $this->linkIcon($link . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon'); 
     echo $this->linkIcon($link . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon',false,true,false,'class="printModal"'); 
     $MailLink = 'index.php?option=com_virtuemart&view=productdetails&task=recommend&virtuemart_product_id=' . $this->product->virtuemart_product_id . '&virtuemart_category_id=' . $this->product->virtuemart_category_id . '&tmpl=component'; 
     echo $this->linkIcon($MailLink, 'COM_VIRTUEMART_EMAIL', 'emailButton', 'show_emailfriend', false,true,false,'class="recommened-to-friend"'); 
     ?> 
     <div class="clear"></div> 
     </div> 
    <?php } // PDF - Print - Email Icon END 
    ?> 

    <?php 
    // Product Short Description 
    if (!empty($this->product->product_s_desc)) { 
    ?> 
     <div class="product-short-description"> 
     <?php 
     /** @todo Test if content plugins modify the product description */ 
     echo nl2br($this->product->product_s_desc); 
     ?> 
     </div> 
    <?php 
    } // Product Short Description END 

    echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'ontop')); 
    ?> 

    <div class="vm-product-container"> 
    <div class="vm-product-media-container"> 
<?php 
echo $this->loadTemplate('images'); 
?> 
    </div> 

    <div class="vm-product-details-container"> 
     <div class="spacer-buy-area"> 

     <?php 
     // TODO in Multi-Vendor not needed at the moment and just would lead to confusion 
     /* $link = JRoute::_('index2.php?option=com_virtuemart&view=virtuemart&task=vendorinfo&virtuemart_vendor_id='.$this->product->virtuemart_vendor_id); 
      $text = vmText::_('COM_VIRTUEMART_VENDOR_FORM_INFO_LBL'); 
      echo '<span class="bold">'. vmText::_('COM_VIRTUEMART_PRODUCT_DETAILS_VENDOR_LBL'). '</span>'; ?><a class="modal" href="<?php echo $link ?>"><?php echo $text ?></a><br /> 
     */ 
     ?> 

     <?php 
     echo shopFunctionsF::renderVmSubLayout('rating',array('showRating'=>$this->showRating,'product'=>$this->product)); 

     if (is_array($this->productDisplayShipments)) { 
      foreach ($this->productDisplayShipments as $productDisplayShipment) { 
      echo $productDisplayShipment . '<br />'; 
      } 
     } 
     if (is_array($this->productDisplayPayments)) { 
      foreach ($this->productDisplayPayments as $productDisplayPayment) { 
      echo $productDisplayPayment . '<br />'; 
      } 
     } 

     //In case you are not happy using everywhere the same price display fromat, just create your own layout 
     //in override /html/fields and use as first parameter the name of your file 
     echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$this->product,'currency'=>$this->currency)); 
     ?> <div class="clear"></div><?php 
     echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$this->product)); 

     echo shopFunctionsF::renderVmSubLayout('stockhandle',array('product'=>$this->product)); 

     // Ask a question about this product 
     if (VmConfig::get('ask_question', 0) == 1) { 
      $askquestion_url = JRoute::_('index.php?option=com_virtuemart&view=productdetails&task=askquestion&virtuemart_product_id=' . $this->product->virtuemart_product_id . '&virtuemart_category_id=' . $this->product->virtuemart_category_id . '&tmpl=component', FALSE); 
      ?> 
      <div class="ask-a-question"> 
       <a class="ask-a-question" href="<?php echo $askquestion_url ?>" rel="nofollow" ><?php echo vmText::_('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL') ?></a> 
      </div> 
     <?php 
     } 
     ?> 

     <?php 
     // Manufacturer of the Product 
     if (VmConfig::get('show_manufacturers', 1) && !empty($this->product->virtuemart_manufacturer_id)) { 
      echo $this->loadTemplate('manufacturer'); 
     } 
     ?> 

     </div> 
    </div> 
    <div class="clear"></div> 


    </div> 
<?php 
    $count_images = count ($this->product->images); 
    if ($count_images > 1) { 
     echo $this->loadTemplate('images_additional'); 
    } 

    // event onContentBeforeDisplay 
    echo $this->product->event->beforeDisplayContent; ?> 

    <?php 
    //echo ($this->product->product_in_stock - $this->product->product_ordered); 
    // Product Description 
    if (!empty($this->product->product_desc)) { 
     ?> 
     <div class="product-description"> 
    <?php /** @todo Test if content plugins modify the product description */ ?> 
     <span class="title"><?php echo vmText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE') ?></span> 
    <?php echo $this->product->product_desc; ?> 
     </div> 
    <?php 
    } // Product Description END 

    echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'normal')); 

    // Product Packaging 
    $product_packaging = ''; 
    if ($this->product->product_box) { 
    ?> 
     <div class="product-box"> 
     <?php 
      echo vmText::_('COM_VIRTUEMART_PRODUCT_UNITS_IN_BOX') .$this->product->product_box; 
     ?> 
     </div> 
    <?php } // Product Packaging END ?> 

    <?php 
    echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'onbot')); 

    echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_products','class'=> 'product-related-products','customTitle' => true)); 

    echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_categories','class'=> 'product-related-categories')); 

    ?> 

<?php // onContentAfterDisplay event 
echo $this->product->event->afterDisplayContent; 

echo $this->loadTemplate('reviews'); 

// Show child categories 
if (VmConfig::get('showCategory', 1)) { 
    echo $this->loadTemplate('showcategory'); 
} 

$j = 'jQuery(document).ready(function($) { 
    Virtuemart.product(jQuery("form.product")); 

    $("form.js-recalculate").each(function(){ 
     if ($(this).find(".product-fields").length && !$(this).find(".no-vm-bind").length) { 
      var id= $(this).find(\'input[name="virtuemart_product_id[]"]\').val(); 
      Virtuemart.setproducttype($(this),id); 

     } 
    }); 
});'; 
//vmJsApi::addJScript('recalcReady',$j); 

/** GALT 
* Notice for Template Developers! 
* Templates must set a Virtuemart.container variable as it takes part in 
* dynamic content update. 
* This variable points to a topmost element that holds other content. 
*/ 
$j = "Virtuemart.container = jQuery('.productdetails-view'); 
Virtuemart.containerSelector = '.productdetails-view';"; 

vmJsApi::addJScript('ajaxContent',$j); 

if(VmConfig::get ('jdynupdate', TRUE)){ 
    $j = "jQuery(document).ready(function($) { 
    Virtuemart.stopVmLoading(); 
    var msg = ''; 
    jQuery('a[data-dynamic-update=\"1\"]').off('click', Virtuemart.startVmLoading).on('click', {msg:msg}, Virtuemart.startVmLoading); 
    jQuery('[data-dynamic-update=\"1\"]').off('change', Virtuemart.startVmLoading).on('change', {msg:msg}, Virtuemart.startVmLoading); 
});"; 

    vmJsApi::addJScript('vmPreloader',$j); 
} 

echo vmJsApi::writeJS(); 

if ($this->product->prices['salesPrice'] > 0) { 
    echo shopFunctionsF::renderVmSubLayout('snippets',array('product'=>$this->product, 'currency'=>$this->currency, 'showRating'=>$this->showRating)); 
} 

?> 
</div> 
+0

कृपया उस प्रासंगिक कोड को जोड़ें जिसमें आप काम कर रहे हैं। –

+0

मैंने संबंधित.एफ़.पी.पी. फ़ाइल के अंत में '?> Xxxx

+0

फ्रैंक, क्या आप इस समस्या को हल करने में कामयाब रहे हैं? –

उत्तर

0

आप ओवरराइड का उपयोग कर रहे हैं और आप

/templates/{your_template_folder}/html/com_virtuemart/sublayouts/addtocart.php 
है

से आप विशिष्ट php ओवरराइड में उपयोग कर सकते हैं विशिष्ट php ओवरराइड में,

echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$this->product)); 

कैसे उप लेआउटhere official documentation

उपयोग करने के लिए और यह भी मैं आप भी इस एक पढ़ने की जरूरत है लगता है परCODE ADJUSTMENTS FOR VIRTUEMART 3

संबंधित मुद्दे

 संबंधित मुद्दे