$customfield){
if(!isset($customfield->display))$customfield->display = '';
$calculator->_product = $product;
if (!class_exists ('vmCustomPlugin')) {
require(VMPATH_PLUGINLIBS . DS . 'vmcustomplugin.php');
}
if ($customfield->field_type == "E") {
vPluginHelper::importPlugin ('vmcustom');
$dispatcher = vDispatcher::getInstance ();
$ret = $dispatcher->trigger ('plgVmOnDisplayProductFEVM3', array(&$product, &$customfields[$k]));
continue;
}
$fieldname = 'field['.$product->virtuemart_product_id.'][' . $customfield->virtuemart_customfield_id . '][customfield_value]';
$customProductDataName = 'customProductData['.$product->virtuemart_product_id.']['.$customfield->virtuemart_custom_id.']';
//This is a kind of fallback, setting default of custom if there is no value of the productcustom
$customfield->customfield_value = empty($customfield->customfield_value) ? $customfield->custom_value : $customfield->customfield_value;
$type = $customfield->field_type;
$idTag = 'customProductData_'.(int)$product->virtuemart_product_id.'_'.$customfield->virtuemart_customfield_id;
$idTag = VmHtml::ensureUniqueId($idTag);
$emptyOption = new stdClass();
$emptyOption->text = vmText::_ ('COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT');
$emptyOption->value = 0;
switch ($type) {
case 'C':
$html = '';
$dropdowns = array();
if(isset($customfield->options->{$product->virtuemart_product_id})){
$productSelection = $customfield->options->{$product->virtuemart_product_id};
} else {
$productSelection = false;
}
$stockhandle = VmConfig::get('stockhandle', 'none');
$q = 'SELECT `virtuemart_product_id` FROM #__virtuemart_products WHERE product_parent_id = "'.$customfield->virtuemart_product_id.'" and ( published = "0" ';
if($stockhandle == 'disableit_children'){
$q .= ' OR (`product_in_stock` - `product_ordered`) <= "0"';
}
$q .= ');';
$db = vFactory::getDbo();
$db->setQuery($q);
$ignore = $db->loadColumn();
//vmdebug('my q '.$q,$ignore);
foreach($customfield->options as $product_id=>$variants){
if($ignore and in_array($product_id,$ignore)){
//vmdebug('$customfield->options Product to ignore, continue ',$product_id);
continue;
}
foreach($variants as $k => $variant){
if(!isset($dropdowns[$k]) or !is_array($dropdowns[$k])) $dropdowns[$k] = array();
if(!in_array($variant,$dropdowns[$k]) ){
if($k==0 or !$productSelection){
$dropdowns[$k][] = $variant;
} else if($k>0 and $productSelection[$k-1] == $variants[$k-1]){
$break=false;
for($h=1;$h<=$k;$h++){
if($productSelection[$h-1] != $variants[$h-1]){
//$ignore[] = $variant;
$break=true;
}
}
if(!$break){
$dropdowns[$k][] = $variant;
}
} else {
// break;
}
}
}
}
$view = vRequest::getCmd('view','productdetails');
$class = 'vm-chzn-select';
$selectType = 'select.genericlist';
if(!empty($customfield->selectType)){
$selectType = 'select.radiolist';
$class = '';
$dom = '';
} else {
vmJsApi::chosenDropDowns();
$dom = 'select';
}
$attribs = array('class'=>$class.' cvselection no-vm-bind','data-dynamic-update'=>'1','style'=>'min-width:70px;');
if('productdetails' != $view or !VmConfig::get ('jdynupdate', TRUE)){
$attribs['reload'] = '1';
$view = 'productdetails';
}
foreach($customfield->selectoptions as $k => $soption){
$options = array();
$selected = false;
if(isset($dropdowns[$k])){
foreach($dropdowns[$k] as $i=> $elem){
$elem = trim((string)$elem);
$text = $elem;
if($soption->clabel!='' and in_array($soption->voption,VirtueMartModelCustomfields::$dimensions) ){
$rd = $soption->clabel;
if(is_numeric($rd) and is_numeric($elem)){
$text = number_format(round((float)$elem,(int)$rd),$rd);
}
//vmdebug('($dropdowns[$k] in DIMENSION value = '.$elem.' r='.$rd.' '.$text);
} else if ($soption->voption === 'clabels' and $soption->clabel!='') {
$text = vmText::_($elem);
}
if(empty($elem)){
$text = vmText::_('COM_VIRTUEMART_LIST_EMPTY_OPTION');
}
$o = new stdClass();
$o->value = $elem;
$o->text = $text;
$options[] = $o;
if($productSelection and $productSelection[$k] == $elem){
$selected = $elem;
}
}
}
if(empty($selected)){
$product->orderable=false;
}
$idTagK = $idTag.'cvard'.$k;
if($customfield->showlabels){
if( in_array($soption->voption,VirtueMartModelCustomfields::$dimensions) ){
$soption->slabel = vmText::_('COM_VIRTUEMART_'.strtoupper($soption->voption));
} else if(!empty($soption->clabel) and !in_array($soption->voption,VirtueMartModelCustomfields::$dimensions) ){
$soption->slabel = vmText::_($soption->clabel);
}
if(isset($soption->slabel)){
$html .= ''.$soption->slabel.'';
}
}
$attribs['cvsel'] = 'field' . $customfield->virtuemart_customfield_id ;
$fname = $fieldname.'['.$k.']';
$html .= vHtml::_ ($selectType, $options, $fname, $attribs , "value", "text", $selected,$idTagK);
}
$Itemid = vRequest::getInt('Itemid',''); // '&Itemid=127';
if(!empty($Itemid)){
$Itemid = '&Itemid='.$Itemid;
}
//create array for js
$jsArray = array();
$url = '';
foreach($customfield->options as $product_id=>$variants){
if($ignore and in_array($product_id,$ignore)){continue;}
$url = JRoute::_('index.php?option=com_virtuemart&view='.$view.'&virtuemart_category_id=' . $virtuemart_category_id . '&virtuemart_product_id='.$product_id.$Itemid,false);
$jsArray[] = '["'.$url.'","'.implode('","',$variants).'"]';
}
vmJsApi::addJScript('cvfind',false,false,true,false);
$jsVariants = implode(',',$jsArray);
$selector = $dom."[cvsel=\"".$attribs['cvsel']."\"]";
$hash = md5($selector);
$j = "jQuery(document).ready(function() {
jQuery('".$selector."').off('change',Virtuemart.cvFind);
jQuery('".$selector."').on('change', { variants:[".$jsVariants."] },Virtuemart.cvFind);
});";
vmJsApi::addJScript('cvselvars'.$hash,$j,false,true,false,$hash);
//Now we need just the JS to reload the correct product
$customfield->display = $html;
break;
case 'A':
$html = '';
$productModel = VmModel::getModel ('product');
//Note by Jeremy Magne (Daycounts) 2013-08-31
//Previously the the product model is loaded but we need to ensure the correct product id is set because the getUncategorizedChildren does not get the product id as parameter.
//In case the product model was previously loaded, by a related product for example, this would generate wrong uncategorized children list
$productModel->setId($customfield->virtuemart_product_id);
$uncatChildren = $productModel->getUncategorizedChildren ($customfield->withParent);
$options = array();
if(!$customfield->withParent){
$options[0] = $emptyOption;
$options[0]->value = JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id=' . $virtuemart_category_id . '&virtuemart_product_id=' . $customfield->virtuemart_product_id,FALSE);
//$options[0] = array('value' => JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id=' . $virtuemart_category_id . '&virtuemart_product_id=' . $customfield->virtuemart_product_id,FALSE), 'text' => vmText::_ ('COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT'));
}
$selected = vRequest::getInt ('virtuemart_product_id',0);
$selectedFound = false;
$parentStock = 0;
if($uncatChildren){
foreach ($uncatChildren as $k => $child) {
/*if(!isset($child[$customfield->customfield_value])){
vmdebug('The child has no value at index '.$customfield->customfield_value,$customfield,$child);
} else {*/
$productChild = $productModel->getProduct((int)$child,true);
if(!$productChild) continue;
if(!isset($productChild->{$customfield->customfield_value})){
vmdebug('The child has no value at index '.$customfield->customfield_value,$customfield,$child);
continue;
}
$available = $productChild->product_in_stock - $productChild->product_ordered;
if(VmConfig::get('stockhandle','none')=='disableit_children' and $available <= 0){
continue;
}
$parentStock += $available;
$priceStr = '';
if($customfield->wPrice){
//$product = $productModel->getProductSingle((int)$child['virtuemart_product_id'],false);
$productPrices = $calculator->getProductPrices ($productChild);
$priceStr = ' (' . $currency->priceDisplay ($productPrices['salesPrice']) . ')';
}
$options[] = array('value' => JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id=' . $virtuemart_category_id . '&virtuemart_product_id=' . $productChild->virtuemart_product_id,false), 'text' => $productChild->{$customfield->customfield_value}.$priceStr);
if($selected==$child){
$selectedFound = true;
vmdebug($customfield->virtuemart_product_id.' $selectedFound by vRequest '.$selected);
}
//vmdebug('$child productId ',$child['virtuemart_product_id'],$customfield->customfield_value,$child);
//}
}
}
if(!$selectedFound){
$pos = array_search($customfield->virtuemart_product_id, $product->allIds);
if(isset($product->allIds[$pos-1])){
$selected = $product->allIds[$pos-1];
//vmdebug($customfield->virtuemart_product_id.' Set selected to - 1 allIds['.($pos-1).'] = '.$selected.' and count '.$dynChilds);
//break;
} elseif(isset($product->allIds[$pos])){
$selected = $product->allIds[$pos];
//vmdebug($customfield->virtuemart_product_id.' Set selected to allIds['.$pos.'] = '.$selected.' and count '.$dynChilds);
} else {
$selected = $customfield->virtuemart_product_id;
//vmdebug($customfield->virtuemart_product_id.' Set selected to $customfield->virtuemart_product_id ',$selected,$product->allIds);
}
}
$url = 'index.php?option=com_virtuemart&view=productdetails&virtuemart_category_id='.
$virtuemart_category_id .'&virtuemart_product_id='. $selected;
$attribs['option.key.toHtml'] = false;
$attribs['id'] = $idTag;
$och = '';
if($customfield->browseajax){
$och = ' data-dynamic-update="1"';
} else {
$och = ' data-dynamic-update="1" onchange="window.top.location.href=this.options[this.selectedIndex].value"';
}
$attribs['list.attr'] = 'size="1" class="vm-chzn-select no-vm-bind avselection"'.$och;
$attribs['list.translate'] = false;
$attribs['option.key'] = 'value';
$attribs['option.text'] = 'text';
$attribs['list.select'] = JRoute::_ ($url,false);
$html .= vHtml::_ ('select.genericlist', $options, $fieldname, $attribs);
vmJsApi::chosenDropDowns();
if($customfield->parentOrderable==0){
if($product->virtuemart_product_id==$customfield->virtuemart_product_id){
$product->orderable = false;
$product->product_in_stock = $parentStock;
}
}
$dynChilds++;
$customfield->display = $html;
break;
/*Date variant*/
case 'D':
if(empty($customfield->custom_value)) $customfield->custom_value = 'LC2';
//Customer selects date
if($customfield->is_input){
$customfield->display = '' . vmJsApi::jDate ($customfield->customfield_value,$customProductDataName) . ''; //vmJsApi::jDate($field->custom_value, 'field['.$row.'][custom_value]','field_'.$row.'_customvalue').$priceInput;
}
//Customer just sees a date
else {
$customfield->display = '' . vmJsApi::date ($customfield->customfield_value, $customfield->custom_value, TRUE) . '';
}
break;
/* text area or editor No vmText, only displayed in BE */
case 'X':
case 'Y':
$customfield->display = $customfield->customfield_value;
break;
/* string or integer */
case 'B':
case 'S':
case 'M':
//vmdebug('Example for params ',$customfield);
if(isset($customfield->selectType)){
if(empty($customfield->selectType)){
$selectType = 'select.genericlist';
if(!empty($customfield->is_input)){
vmJsApi::chosenDropDowns();
$class = 'class="vm-chzn-select"';
}
} else {
$selectType = 'select.radiolist';
$class = '';
}
} else {
if($type== 'M'){
$selectType = 'select.radiolist';
$class = '';
} else {
$selectType = 'select.genericlist';
if(!empty($customfield->is_input)){
vmJsApi::chosenDropDowns();
$class = 'class="vm-chzn-select"';
}
}
}
if($customfield->is_list and $customfield->is_list!=2){
if(!empty($customfield->is_input)){
$options = array();
if($customfield->addEmpty){
$options[0] = $emptyOption;
}
$values = explode (';', $customfield->custom_value);
foreach ($values as $key => $val) {
if($val == 0 and $customfield->addEmpty){
continue;
}
if($type == 'M'){
$tmp = array('value' => $val, 'text' => VirtueMartModelCustomfields::displayCustomMedia ($val,'product',$customfield->width,$customfield->height));
$options[] = (object)$tmp;
} else {
$options[] = array('value' => $val, 'text' => vmText::_($val));
}
}
$currentValue = $customfield->customfield_value;
$customfield->display = vHtml::_ ($selectType, $options, $customProductDataName.'[' . $customfield->virtuemart_customfield_id . ']', $class, 'value', 'text', $currentValue,$idTag);
} else {
if($type == 'M'){
$customfield->display = VirtueMartModelCustomfields::displayCustomMedia ($customfield->customfield_value,'product',$customfield->width,$customfield->height);
} else {
$customfield->display = vmText::_ ($customfield->customfield_value);
}
}
} else {
if(!empty($customfield->is_input)){
if(!isset($selectList[$customfield->virtuemart_custom_id])) {
$selectList[$customfield->virtuemart_custom_id] = $k;
if($customfield->addEmpty){
if(empty($customfields[$selectList[$customfield->virtuemart_custom_id]]->options)){
$customfields[$selectList[$customfield->virtuemart_custom_id]]->options[0] = $emptyOption;
$customfields[$selectList[$customfield->virtuemart_custom_id]]->options[0]->virtuemart_customfield_id = $emptyOption->value;
//$customfields[$selectList[$customfield->virtuemart_custom_id]]->options['nix'] = array('virtuemart_customfield_id' => 'none', 'text' => vmText::_ ('COM_VIRTUEMART_ADDTOCART_CHOOSE_VARIANT'));
}
}
$tmpField = clone($customfield);
$tmpField->options = null;
$customfield->options[$customfield->virtuemart_customfield_id] = $tmpField;
$customfield->customProductDataName = $customProductDataName;
} else {
$customfields[$selectList[$customfield->virtuemart_custom_id]]->options[$customfield->virtuemart_customfield_id] = $customfield;
unset($customfields[$k]);
}
$default = reset($customfields[$selectList[$customfield->virtuemart_custom_id]]->options);
foreach ($customfields[$selectList[$customfield->virtuemart_custom_id]]->options as &$productCustom) {
if(!isset($productCustom->customfield_price)) $productCustom->customfield_price = 0.0;
$price = VirtueMartModelCustomfields::_getCustomPrice($productCustom->customfield_price, $currency, $calculator);
if($type == 'M'){
if(!isset($productCustom->customfield_value)) $productCustom->customfield_value = '';
$productCustom->text = VirtueMartModelCustomfields::displayCustomMedia ($productCustom->customfield_value,'product',$customfield->width,$customfield->height).' '.$price;
} else {
$trValue = vmText::_($productCustom->customfield_value);
if($productCustom->customfield_value!=$trValue and strpos($trValue,'%1')!==false){
$productCustom->text = vmText::sprintf($productCustom->customfield_value,$price);
} else {
$productCustom->text = $trValue.' '.$price;
}
}
}
$customfields[$selectList[$customfield->virtuemart_custom_id]]->display = vHtml::_ ($selectType, $customfields[$selectList[$customfield->virtuemart_custom_id]]->options,
$customfields[$selectList[$customfield->virtuemart_custom_id]]->customProductDataName,
$class, 'virtuemart_customfield_id', 'text', $default->customfield_value,$idTag); //*/
} else {
if($type == 'M'){
$customfield->display = VirtueMartModelCustomfields::displayCustomMedia ($customfield->customfield_value,'product',$customfield->width,$customfield->height);
} else {
$customfield->display = vmText::_ ($customfield->customfield_value);
}
}
}
break;
// Property
case 'P':
//$customfield->display = vmText::_ ('COM_VIRTUEMART_'.strtoupper($customfield->customfield_value));
$attr = $customfield->customfield_value;
$lkey = 'COM_VIRTUEMART_'.strtoupper($customfield->customfield_value).'_FE';
$trValue = vmText::_ ($lkey);
$options[] = array('value' => 'product_length', 'text' => vmText::_ ('COM_VIRTUEMART_PRODUCT_LENGTH'));
$options[] = array('value' => 'product_width', 'text' => vmText::_ ('COM_VIRTUEMART_PRODUCT_WIDTH'));
$options[] = array('value' => 'product_height', 'text' => vmText::_ ('COM_VIRTUEMART_PRODUCT_HEIGHT'));
$options[] = array('value' => 'product_weight', 'text' => vmText::_ ('COM_VIRTUEMART_PRODUCT_WEIGHT'));
$dim = '';
if($attr == 'product_length' or $attr == 'product_width' or $attr == 'product_height'){
$dim = $product->product_lwh_uom;
} else if($attr == 'product_weight') {
$dim = $product->product_weight_uom;
}
if(!isset($product->$attr)){
logInfo('customfield.php: case P, property '.$attr.' does not exists. virtuemart_custom_id: '.$customfield->virtuemart_custom_id);
break;
}
$val= $product->$attr;
if($customfield->round!=''){
$val = round($val,$customfield->round);
}
if($lkey!=$trValue and strpos($trValue,'%1')!==false) {
$customfield->display = vmText::sprintf( $customfield->customfield_value, $val , $dim );
} else if($lkey!=$trValue) {
$customfield->display = $trValue.' '.$val;
} else {
$customfield->display = vmText::_ ('COM_VIRTUEMART_'.strtoupper($customfield->customfield_value)).' '.$val.$dim;
}
break;
case 'Z':
if(empty($customfield->customfield_value)) break;
$html = '';
$q = 'SELECT * FROM `#__virtuemart_categories_' . VmConfig::$vmlang . '` as l INNER JOIN `#__virtuemart_categories` AS c ON (l.`virtuemart_category_id`=c.`virtuemart_category_id`) WHERE `published`=1 AND l.`virtuemart_category_id`= "' . (int)$customfield->customfield_value . '" ';
$db = vFactory::getDbo();
$db->setQuery ($q);
if ($category = $db->loadObject ()) {
if(empty($category->virtuemart_category_id)) break;
$q = 'SELECT `virtuemart_media_id` FROM `#__virtuemart_category_medias`WHERE `virtuemart_category_id`= "' . $category->virtuemart_category_id . '" ';
$db->setQuery ($q);
$thumb = '';
if ($media_id = $db->loadResult ()) {
$thumb = VirtueMartModelCustomfields::displayCustomMedia ($media_id,'category',$customfield->width,$customfield->height);
}
$customfield->display = vHtml::link (JRoute::_ ('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id), $thumb . ' ' . $category->category_name, array('title' => $category->category_name,'target'=>'_blank'));
}
break;
case 'R':
if(empty($customfield->customfield_value)){
$customfield->display = 'customfield related product has no value';
break;
}
$pModel = VmModel::getModel('product');
$related = $pModel->getProduct((int)$customfield->customfield_value,TRUE,$customfield->wPrice,TRUE,1);
if(!$related) break;
$thumb = '';
if($customfield->wImage){
if (!empty($related->virtuemart_media_id[0])) {
$thumb = VirtueMartModelCustomfields::displayCustomMedia ($related->virtuemart_media_id[0],'product',$customfield->width,$customfield->height).' ';
} else {
$thumb = VirtueMartModelCustomfields::displayCustomMedia (0,'product',$customfield->width,$customfield->height).' ';
}
}
$customfield->display = shopFunctionsF::renderVmSubLayout('related',array('customfield'=>$customfield,'related'=>$related, 'thumb'=>$thumb));
break;
}
$viewData['customfields'][$k] = $customfield;
//vmdebug('my customfields '.$type,$viewData['customfields'][$k]->display);
}
}
static function renderCustomfieldsCart($product, $html, $trigger){
if(isset($product->param)){
vmTrace('param found, seek and destroy');
return false;
}
$row = 0;
if (!class_exists ('shopFunctionsF'))
require(VMPATH_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php');
$variantmods = isset($product -> customProductData)?$product -> customProductData:$product -> product_attribute;
if(empty($variantmods)){
$productDB = VmModel::getModel('product')->getProduct($product->virtuemart_product_id);
if($productDB){
$product->customfields = $productDB->customfields;
}
}
if(!is_array($variantmods)){
$variantmods = json_decode($variantmods,true);
}
$productCustoms = array();
foreach( (array)$product->customfields as $prodcustom){
//We just add the customfields to be shown in the cart to the variantmods
if(is_object($prodcustom)){
if($prodcustom->is_cart_attribute and !$prodcustom->is_input){
if(!isset($variantmods[$prodcustom->virtuemart_custom_id]) or !is_array($variantmods[$prodcustom->virtuemart_custom_id])){
$variantmods[$prodcustom->virtuemart_custom_id] = array();
}
$variantmods[$prodcustom->virtuemart_custom_id][$prodcustom->virtuemart_customfield_id] = false;
} else if(!empty($variantmods) and !empty($variantmods[$prodcustom->virtuemart_custom_id])){
}
$productCustoms[$prodcustom->virtuemart_customfield_id] = $prodcustom;
}
}
foreach ( (array)$variantmods as $custom_id => $customfield_ids) {
if(!is_array($customfield_ids)){
$customfield_ids = array( $customfield_ids =>false);
}
foreach($customfield_ids as $customfield_id=>$params){
if(empty($productCustoms) or !isset($productCustoms[$customfield_id])){
vmdebug('displayProductCustomfieldSelected continue');
continue;
}
$productCustom = $productCustoms[$customfield_id];
//vmdebug('displayProductCustomfieldSelected ',$customfield_id,$productCustom);
//The stored result in vm2.0.14 looks like this {"48":{"textinput":{"comment":"test"}}}
//and now {"32":[{"invala":"100"}]}
if (!empty($productCustom)) {
$otag = ' ';
$tmp = '';
if ($productCustom->field_type == "E") {
if (!class_exists ('vmCustomPlugin'))
require(VMPATH_PLUGINLIBS . DS . 'vmcustomplugin.php');
vPluginHelper::importPlugin ('vmcustom');
$dispatcher = vDispatcher::getInstance ();
$dispatcher->trigger ($trigger.'VM3', array(&$product, &$productCustom, &$tmp));
}
else {
$value = '';
if (($productCustom->field_type == 'G')) {
$db = vFactory::getDbo ();
$db->setQuery ('SELECT `product_name` FROM `#__virtuemart_products_' . VmConfig::$vmlang . '` WHERE virtuemart_product_id=' . (int)$productCustom->customfield_value);
$child = $db->loadObject ();
$value = $child->product_name;
}
elseif (($productCustom->field_type == 'M')) {
$customFieldModel = VmModel::getModel('customfields');
$value = $customFieldModel->displayCustomMedia ($productCustom->customfield_value,'product',$productCustom->width,$productCustom->height,VirtueMartModelCustomfields::$useAbsUrls);
}
elseif (($productCustom->field_type == 'S')) {
if($productCustom->is_list and $productCustom->is_input){
if($productCustom->is_list==2){
$value = vmText::_($productCustom->customfield_value);
} else {
$value = vmText::_($params);
}
} else {
$value = vmText::_($productCustom->customfield_value);
}
}
elseif (($productCustom->field_type == 'A')) {
if(!property_exists($product,$productCustom->customfield_value)){
$productDB = VmModel::getModel('product')->getProduct($product->virtuemart_product_id);
if($productDB){
$attr = $productCustom->customfield_value;
$product->$attr = $productDB->$attr;
}
}
$value = vmText::_( $product->{$productCustom->customfield_value} );
}
elseif (($productCustom->field_type == 'C')) {
foreach($productCustom->options->{$product->virtuemart_product_id} as $k=>$option){
$value .= ' ';
if(!empty($productCustom->selectoptions[$k]->clabel) and in_array($productCustom->selectoptions[$k]->voption,VirtueMartModelCustomfields::$dimensions)){
$value .= vmText::_('COM_VIRTUEMART_'.$productCustom->selectoptions[$k]->voption);
$rd = $productCustom->selectoptions[$k]->clabel;
if(is_numeric($rd) and is_numeric($option)){
$value .= ' '.number_format(round((float)$option,(int)$rd),$rd);
}
} else {
if(!empty($productCustom->selectoptions[$k]->clabel)) $value .= vmText::_($productCustom->selectoptions[$k]->clabel);
$value .= ' '.vmText::_($option).' ';
}
$value .= '
';
}
$value = trim($value);
if(!empty($value)){
$html .= $otag.$value.'
';
}
continue;
}
else {
$value = vmText::_($productCustom->customfield_value);
}
$trTitle = vmText::_($productCustom->custom_title);
$tmp = '';
if($productCustom->custom_title!=$trTitle and strpos($trTitle,'%1')!==false){
$tmp .= vmText::sprintf($productCustom->custom_title,$value);
} else {
$tmp .= $trTitle.' '.$value;
}
}
if(!empty($tmp)){
$html .= $otag.$tmp.'
';
}
}
else {
foreach ((array)$customfield_id as $key => $value) {
$html .= '
Couldnt find customfield' . ($key ? '' . $key . ' ' : '') . $value;
}
vmdebug ('customFieldDisplay, $productCustom is EMPTY '.$customfield_id);
}
}
}
return $html . '';
}
}