Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1732 Просмотров
*

Alis_wc

  • Новичок
  • 2
  • 0 / 0
Добрый день, очень прошу помощи...

Joomla 2.5 + VM 2.0

Если выбирать товар со страницы товара, или блоков Новинки или Хиты продаж - в корзину попадает всё правильно.

Но если добавить товар со списка категории в корзину - то название не отображается, а цена 0, 00. В чём ошибка?

Я так понимаю, что ошибка тут - www\components\com_virtuemart\views\category\tmpl\default.php

Код
<?php
defined('_JEXEC') or die('Restricted access');
JHTML::_( 'behavior.modal' );
/* javascript for list Slide
  Only here for the order list
  can be changed by the template maker
*/
$js = "
jQuery(document).ready(function () {
jQuery('.orderlistcontainer').hover(
function() { jQuery(this).find('.orderlist').stop().show()},
function() { jQuery(this).find('.orderlist').stop().hide()}
)
});
";

$document = JFactory::getDocument();
$document->addScriptDeclaration($js);
 ?>
<?php if(!empty($this->category->category_description )) { ?>
<div class="category_description">
<?=$this->category->category_description;?>
</div>
<?php }

/* Show child categories */
if ( VmConfig::get('showCategory',1) && empty($this->keyword) && empty($this->products)) {
if ($this->category->haschildren) {

// Category and Columns Counter
$iCol = 1;
$iCategory = 1;

// Calculating Categories Per Row
$categories_per_row = VmConfig::get ( 'categories_per_row', 3 );
$category_cellwidth = ' width'.floor ( 100 / $categories_per_row );

// Separator
$verticalseparator = " vertical-separator";
?>

<div class="category-view">

<?php // Start the Output
if(!empty($this->category->children)){
foreach ( $this->category->children as $category ) {

// Show the horizontal seperator
if ($iCol == 1 && $iCategory > $categories_per_row) { ?>
<div class="horizontal-separator"></div>
<?php }

// this is an indicator wether a row needs to be opened or not
if ($iCol == 1) { ?>
<div class="row">
<?php }

// Show the vertical seperator
if ($iCategory == $categories_per_row or $iCategory % $categories_per_row == 0) {
$show_vertical_separator = ' ';
} else {
$show_vertical_separator = $verticalseparator;
}

// Category Link
$caturl = JRoute::_ ( 'index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id );

// Show Category ?>
<div class="category floatleft<?php echo $category_cellwidth . $show_vertical_separator ?>">
<div class="spacer">
<h2>
<a href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>">
<?php echo $category->category_name ?>
<br />
<?php // if ($category->ids) {
echo $category->images[0]->displayMediaThumb("",false);
//} ?>
</a>
</h2>
</div>
</div>
<?php
$iCategory ++;

// Do we need to close the current row now?
if ($iCol == $categories_per_row) { ?>
<div class="clear"></div>
</div>
<?php
$iCol = 1;
} else {
$iCol ++;
}
}
}
// Do we need a final closing row tag?
if ($iCol != 1) { ?>
<div class="clear"></div>
</div>
<?php } ?>
</div>

<?php }
}
?>
<div class="browse-view">
    <?php
if (!empty($this->keyword)) {
?>
<h3><?php echo $this->keyword; ?></h3>
<?php
} ?>
  <?php if ($this->search !==null ) { ?>
  <form action="<?php echo JRoute::_('index.php?option=com_virtuemart&view=category&limitstart=0&virtuemart_category_id='.$this->category->virtuemart_category_id ); ?>" method="get">

   <!--BEGIN Search Box --><div class="virtuemart_search">
   <?php echo $this->searchcustom ?>
   <br />
   <?php echo $this->searchcustomvalues ?>
   <input name="keyword" class="inputbox" type="text" size="20" value="<?php echo $this->keyword ?>" />
   <input type="submit" value="<?php echo JText::_('COM_VIRTUEMART_SEARCH')?>" class="button" onclick="this.form.keyword.focus();"/>
   </div>
   <input type="hidden" name="search" value="true" />
   <input type="hidden" name="view" value="category" />

   </form>
<!-- End Search Box -->
<?php } ?>

<?php // Show child categories
if (!empty($this->products)) {
?>
<div class="orderby-displaynumber">
<div class="width70 floatleft">
<?=$this->orderByList['orderby']; ?>
<?=$this->orderByList['manufacturer']; ?>
</div>
<div class="width30 floatright display-number"><?=$this->vmPagination->getResultsCounter();?><br/><?=$this->vmPagination->getLimitBox(); ?></div>
<div id="bottom-pagination">
<?=$this->vmPagination->getPagesLinks(); ?>
<span style="float:right"><?=$this->vmPagination->getPagesCounter(); ?></span>
</div>

<div class="clear"></div>
</div> <!-- end of orderby-displaynumber -->

<h1><?=$this->category->category_name; ?></h1>

<?php
// Category and Columns Counter
$iBrowseCol = 1;
$iBrowseProduct = 1;

// Calculating Products Per Row
$BrowseProducts_per_row = $this->perRow;
$Browsecellwidth = ' width'.floor ( 100 / $BrowseProducts_per_row );

// Separator
$verticalseparator = " vertical-separator";

// Count products
$BrowseTotalProducts = 0;
foreach ( $this->products as $product ) {
   $BrowseTotalProducts ++;
}

// Start the Output
foreach ($this->products as $product ) {

// Show the horizontal seperator
if ($iBrowseCol == 1 && $iBrowseProduct > $BrowseProducts_per_row) { ?>
<div class="horizontal-separator"></div>
<?php }

// this is an indicator wether a row needs to be opened or not
if ($iBrowseCol == 1) { ?>
<div class="row">
<?php }

// Show the vertical seperator
if ($iBrowseProduct == $BrowseProducts_per_row or $iBrowseProduct % $BrowseProducts_per_row == 0) {
$show_vertical_separator = ' ';
} else {
$show_vertical_separator = $verticalseparator;
}

// Show Products ?>
<div class="center floatleft<?php echo $Browsecellwidth . $show_vertical_separator ?>">
<div>
<?=JHTML::link(
$product->link,
$product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',false),
array('title' => $product->product_name)); ?>
</div>
<div>
<h2>
<?=JHTML::link($product->link, $product->product_name, array("title" => $product->product_name)); ?></h2>

</div>
<?php if ($this->show_prices == '1') { ?>
<div><span class="vm_price">
<?php if (!empty($product->prices['salesPrice'])) echo $this->currency->createPriceDiv('salesPrice','',$product->prices,true);
//if (!empty($product->prices['salesPriceWithDiscount'])) echo $this->currency->createPriceDiv('salesPriceWithDiscount','',$product->prices,true); ?>
</span></div>
<?php } ?>
<div style="margin-left:40px;"><?=$this->loadTemplate('addtocart')?></div>

</div> <!-- end of product -->
<?php

   // Do we need to close the current row now?
   if ($iBrowseCol == $BrowseProducts_per_row || $iBrowseProduct == $BrowseTotalProducts) {?>
   <div class="clear"></div>
   </div> <!-- end of row -->
      <?php
      $iBrowseCol = 1;
   } else {
      $iBrowseCol ++;
   }

   $iBrowseProduct ++;
} // end of foreach ( $this->products as $product )
// Do we need a final closing row tag?
if ($iBrowseCol != 1) { ?>
<div class="clear"></div>

<?php
}
?>
<!-- /div removed valerie -->
<div id="bottom-pagination"><?php echo $this->vmPagination->getPagesLinks(); ?><span style="float:right"><?php echo $this->vmPagination->getPagesCounter(); ?></span></div>
<!-- /div removed valerie -->
<?php } elseif ($this->search !==null ) echo JText::_('COM_VIRTUEMART_NO_RESULT').($this->keyword? ' : ('. $this->keyword. ')' : '')
?>
</div><!-- end browse-view -->

Со страницы товара всё работает - \www\components\com_virtuemart\views\productdetails\tmpl\default.php

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

// addon for Joomla modal Box
JHTML::_('behavior.modal');
// JHTML::_('behavior.tooltip');
if(VmConfig::get('usefancy',0)){
vmJsApi::js( 'fancybox/jquery.fancybox-1.3.4.pack');
vmJsApi::css('jquery.fancybox-1.3.4');
$box = "$.fancybox({
href: '" . $this->askquestion_url . "',
type: 'iframe',
height: '550'
});";
} else {
vmJsApi::js( 'facebox' );
vmJsApi::css( 'facebox' );
$box = "$.facebox({
iframe: '" . $this->askquestion_url . "',
rev: 'iframe|550|550'
});";
}
$document = JFactory::getDocument();
$document->addScriptDeclaration("
//<![CDATA[
jQuery(document).ready(function($) {
$('a.ask-a-question').click( function(){
".$box."
return false ;
});
$('a.recommened-to-friend').click( function(){
".$box."
return false ;
});
/* $('.additional-images a').mouseover(function() {
var himg = this.href ;
var extension=himg.substring(himg.lastIndexOf('.')+1);
if (extension =='png' || extension =='jpg' || extension =='gif') {
$('.main-image img').attr('src',himg );
}
console.log(extension)
});*/
});
//]]>
");
/* Let's see if we found the product */
if (empty($this->product)) {
    echo JText::_('COM_VIRTUEMART_PRODUCT_NOT_FOUND');
    echo '<br /><br />  ' . $this->continue_link_html;
    return;
}

?>

<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'));
   }
   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'));
   }
   ?>
     <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 = $this->product->category_name ;
} else {
$catURL =  JRoute::_('index.php?option=com_virtuemart');
$categoryName = jText::_('COM_VIRTUEMART_SHOP_HOME') ;
}
?>
<div class="back-to-category">
     <a href="<?php echo $catURL ?>" class="product-details" title="<?php echo $categoryName ?>"><?php echo JText::sprintf('COM_VIRTUEMART_CATEGORY_BACK_TO',$categoryName)?></a>
</div>

    <?php // Product Title   ?>
    <h1><?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 = (JVM_VERSION===1)? 'index2.php' : 'index.php';
   $link = 'index.php?tmpl=component&option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->product->virtuemart_product_id;
   $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($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($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


    if (!empty($this->product->customfieldsSorted['ontop'])) {
$this->position = 'ontop';
echo $this->loadTemplate('customfields');
    } // Product Custom ontop end
    ?>

    <div>
<div class="width60 floatleft">
<?php
echo $this->loadTemplate('images');
?>
</div>

<div class="width40 floatright">
   <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 = JText::_('COM_VIRTUEMART_VENDOR_FORM_INFO_LBL');
 echo '<span class="bold">'. JText::_('COM_VIRTUEMART_PRODUCT_DETAILS_VENDOR_LBL'). '</span>'; ?><a class="modal" href="<?php echo $link ?>"><?php echo $text ?></a><br />
*/
?>

<?php
if ($this->showRating) {
   $maxrating = VmConfig::get('vm_maximum_rating_scale', 5);

   if (empty($this->rating)) {
?>
<span class="vote"><?php echo JText::_('COM_VIRTUEMART_RATING'). ' ' . JText::_('COM_VIRTUEMART_UNRATED')?></span>
   <?php
} else {
   $ratingwidth = $this->rating->rating * 24; //I don't use round as percetntage with works perfect, as for me
   ?>
<span class="vote">
<?php echo JText::_('COM_VIRTUEMART_RATING'). ' ' . round($this->rating->rating). '/' . $maxrating; ?><br/>
   <span title=" <?php echo (JText::_("COM_VIRTUEMART_RATING_TITLE"). round($this->rating->rating). '/' . $maxrating)?>" class="ratingbox" style="display:inline-block;">
<span class="stars-orange" style="width:<?php echo $ratingwidth.'px'; ?>">
</span>
   </span>
</span>
<?php
   }
}
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 />';
   }
}
// Product Price
   // the test is done in show_prices
//if ($this->show_prices and (empty($this->product->images[0]) or $this->product->images[0]->file_is_downloadable == 0)) {
   echo $this->loadTemplate('showprices');
//}
?>

<?php
// Add To Cart Button
// if (!empty($this->product->prices) and !empty($this->product->images[0]) and $this->product->images[0]->file_is_downloadable==0 ) {
// if (!VmConfig::get('use_as_catalog', 0) and !empty($this->product->prices['salesPrice'])) {
   echo $this->loadTemplate('addtocart');
// }  // Add To Cart Button END
?>

<?php
// Availability
$stockhandle = VmConfig::get('stockhandle', 'none');
$product_available_date = substr($this->product->product_available_date,0,10);
$current_date = date("Y-m-d");
if (($this->product->product_in_stock - $this->product->product_ordered) < 1) {
if ($product_available_date != '0000-00-00' and $current_date < $product_available_date) {
?> <div class="availability">
<?php echo JText::_('COM_VIRTUEMART_PRODUCT_AVAILABLE_DATE').': '. JHTML::_('date', $this->product->product_available_date, JText::_('DATE_FORMAT_LC4')); ?>
</div>
   <?php
} else if ($stockhandle == 'risetime' and VmConfig::get('rised_availability') and empty($this->product->product_availability)) {
?> <div class="availability">
   <?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path'). 'images/availability/' . VmConfig::get('rised_availability')))? JHTML::image(JURI::root(). VmConfig::get('assets_general_path'). 'images/availability/' . VmConfig::get('rised_availability', '7d.gif'), VmConfig::get('rised_availability', '7d.gif'), array('class' => 'availability')) : JText::_(VmConfig::get('rised_availability')); ?>
</div>
   <?php
} else if (!empty($this->product->product_availability)) {
?>
<div class="availability">
<?php echo (file_exists(JPATH_BASE . DS . VmConfig::get('assets_general_path'). 'images/availability/' . $this->product->product_availability))? JHTML::image(JURI::root(). VmConfig::get('assets_general_path'). 'images/availability/' . $this->product->product_availability, $this->product->product_availability, array('class' => 'availability')) : JText::_($this->product->product_availability); ?>
</div>
<?php
}
}
else if ($product_available_date != '0000-00-00' and $current_date < $product_available_date) {
?> <div class="availability">
<?php echo JText::_('COM_VIRTUEMART_PRODUCT_AVAILABLE_DATE').': '. JHTML::_('date', $this->product->product_available_date, JText::_('DATE_FORMAT_LC4')); ?>
</div>
<?php
}
?>

<?php
// Ask a question about this product
if (VmConfig::get('ask_question', 1) == 1) {
    ?>
     <div class="ask-a-question">
        <a class="ask-a-question" href="<?php echo $this->askquestion_url ?>" rel="nofollow" ><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ENQUIRY_LBL')?></a>
        <!--<a class="ask-a-question modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $this->askquestion_url ?>"><?php echo JText::_('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 // event onContentBeforeDisplay
echo $this->product->event->beforeDisplayContent; ?>

<?php
// 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 JText::_('COM_VIRTUEMART_PRODUCT_DESC_TITLE')?></span>
<?php echo $this->product->product_desc; ?>
        </div>
<?php
    } // Product Description END

    if (!empty($this->product->customfieldsSorted['normal'])) {
$this->position = 'normal';
echo $this->loadTemplate('customfields');
    } // Product custom_fields END
    // Product Packaging
    $product_packaging = '';
    if ($this->product->product_box) {
?>
        <div class="product-box">
   <?php
       echo JText::_('COM_VIRTUEMART_PRODUCT_UNITS_IN_BOX').$this->product->product_box;
   ?>
        </div>
    <?php } // Product Packaging END
    ?>

    <?php
    // Product Files
    // foreach ($this->product->images as $fkey => $file) {
    // Todo add downloadable files again
    // if( $file->filesize > 0.5) $filesize_display = ' ('. number_format($file->filesize, 2,',','.')." MB)";
    // else $filesize_display = ' ('. number_format($file->filesize*1024, 2,',','.')." KB)";

    /* Show pdf in a new Window, other file types will be offered as download */
    // $target = stristr($file->file_mimetype, "pdf")? "_blank" : "_self";
    // $link = JRoute::_('index.php?view=productdetails&task=getfile&virtuemart_media_id='.$file->virtuemart_media_id.'&virtuemart_product_id='.$this->product->virtuemart_product_id);
    // echo JHTMl::_('link', $link, $file->file_title.$filesize_display, array('target' => $target));
    // }
    if (!empty($this->product->customfieldsRelatedProducts)) {
echo $this->loadTemplate('relatedproducts');
    } // Product customfieldsRelatedProducts END

    if (!empty($this->product->customfieldsRelatedCategories)) {
echo $this->loadTemplate('relatedcategories');
    } // Product customfieldsRelatedCategories END
    // Show child categories
    if (VmConfig::get('showCategory', 1)) {
echo $this->loadTemplate('showcategory');
    }
    if (!empty($this->product->customfieldsSorted['onbot'])) {
     $this->position='onbot';
     echo $this->loadTemplate('customfields');
    } // Product Custom ontop end
    ?>

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

<?php
echo $this->loadTemplate('reviews');
?>
</div>
« Последнее редактирование: 22.12.2013, 16:05:59 от Alis_wc »
*

Alis_wc

  • Новичок
  • 2
  • 0 / 0
Если анализировать со страницы категории с Ф12 то видно такое:

<input type="hidden" class="pname" value="">
<input type="hidden" name="virtuemart_product_id[]" value="">
<input type="hidden" name="virtuemart_category_id[]" value="">

эти значения пустые и поэтому они в корзину попадают с нулевыми значениями....

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчёт стоимости товара в VirtueMart за периметр

Автор NIKOLY

Ответов: 0
Просмотров: 1640
Последний ответ 04.07.2025, 09:18:31
от NIKOLY
Не отображаются товары в категории

Автор iZacNT

Ответов: 0
Просмотров: 2984
Последний ответ 23.06.2023, 12:20:49
от iZacNT
Как вывести ID товара в описании товара?

Автор Stasweb

Ответов: 8
Просмотров: 5304
Последний ответ 28.11.2022, 23:22:27
от Evgen Kulibin
Joomla 3 + VM + Universal AJAX Live Search - как вывести картики товара в поиске?

Автор PSN

Ответов: 10
Просмотров: 10554
Последний ответ 27.03.2022, 17:29:00
от Evgen Kulibin
Как сделать - Вывод модуля на всех страницах - Кроме в карточке товара?

Автор artem_wrong

Ответов: 15
Просмотров: 4114
Последний ответ 15.02.2022, 15:07:34
от beliyadm