Столкнулся с такой проблемой у VM3 не плохо реализована система Costum Fields. но есть пару вопросов.
Все товары выгружаются из 1с с доп. параметрами "своиство" и "характеристика"
Но в VM они заходят как 1 контейнер и стиль им всем назначается общий. А так как эти поля можно указывать почти в любых позициях на сайте, то и стили должны быть для каждого поля свои. А ВИРТ назначает всем одинаковые.
Пример: у меня основное поле имеет значение в CSS style="width:39%" и этот стиль получают все блоки и получается, что где то их режет, где то наоборот больше чем надо и вся верстка сползает.
Как можно реализовать для каждого поля свой стиль? Пока писал, пришла мысль, что может в настройках самого поля можно назначить необходимый класс стиля, но увы не додумали создатели пока такого момента.
Вот код моего customfields.php
<?php
/**
* sublayout products
*
* @package VirtueMart
* @author Max Milbers
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL2, see LICENSE.php
* @version $Id: cart.php 7682 2014-02-26 17:07:20Z Milbo $
*/
defined('_JEXEC') or die('Restricted access');
$product = $viewData['product'];
$position = $viewData['position'];
$customTitle = isset($viewData['customTitle'])? $viewData['customTitle']: false;;
if(isset($viewData['class'])){
$class = $viewData['class'];
} else {
$class = 'product-fields';
}
if (!empty($product->customfieldsSorted[$position])) {
?>
<div class="<?php echo $class?>">
<?php
if($customTitle and isset($product->customfieldsSorted[$position][0])){
$field = $product->customfieldsSorted[$position][0]; ?>
<div class="product-fields-title-wrapper"><span class="product-fields-title"><strong><?php echo vmText::_ ($field->custom_title)?></strong></span>
<?php if ($field->custom_tip) {
echo JHtml::tooltip (vmText::_($field->custom_tip), vmText::_ ($field->custom_title), 'tooltip.png');
} ?>
</div> <?php
}
$custom_title = null;
foreach ($product->customfieldsSorted[$position] as $field) {
if ( $field->is_hidden || empty($field->display)) continue; //OSP http://forum.virtuemart.net/index.php?topic=99320.0
?><div class="product-field product-field-type-<?php echo $field->field_type ?>">
<?php if (!$customTitle and $field->custom_title != $custom_title and $field->show_title) { ?>
<span class="product-fields-title-wrapper"><span class="product-fields-title"><strong><?php echo vmText::_ ($field->custom_title)?></strong></span> <?php /* text*/?>
<?php if ($field->custom_tip) {
echo JHtml::tooltip (vmText::_($field->custom_tip), vmText::_ ($field->custom_title), 'tooltip.png');
} ?></span>
<?php }
if (!empty($field->custom_desc)){
?><div class="product-field-desc"><?php echo vmText::_($field->custom_desc)?><div class="product-field-line"></div></div> <?php
}
if (!empty($field->display)){
?><div class="product-field-display2"><?php echo $field->display ?></div><?php
}
?>
</div>
<?php
// $custom_title = $field->custom_title;
} ?>
<div class="clearfix"></div>
</div>
<?php
} ?>
Нашел какое-то решение, но не получается с ним разобраться. Помогите с решением.
https://forum.virtuemart.net/index.php?topic=128936.0