Hi,
As Jerome said, it's the file administrator/components/com_hikashop/types/characteristic.php
I'm not sure what more we can say.
It's done by that code:
$main_html = '<table class="hikashop_product_characteristics_table">';
$config =& hikashop_config();
foreach($this->characteristics as $characteristic){
$main_html.='<tr class="hikashop_characteristic_line_'.$characteristic->characteristic_id.'">';
$values = array();
$switch_done = false;
if(!empty($characteristic->values)){
foreach($characteristic->values as $k => $value){
if(!$config->get('show_out_of_stock',1)){
$hasQuantity = false;
foreach($element->variants as $variant){
foreach($variant->characteristics as $variantCharacteristic){
if($variantCharacteristic->characteristic_id==$value->characteristic_id){
//we have to add the default variant in the dropdown even if it doesn't have a quantity
if($variant->product_quantity != 0){
$hasQuantity = true;
}elseif( $element->product_id==$variant->product_id && !$switch_done){
if($characteristic->characteristic_display_method == 'dropdown'){
$id = 'hikashop_product_characteristic_'.$characteristic->characteristic_id;
$js = "hikashopUpdateVariant(document.getElementById('".$id."'));";
}else{
$id = 'hikashop_product_characteristic['.$characteristic->characteristic_id.']';
$js = "var el = document.querySelector('[name=\"".$id."\"]'); if(el) el.checked = true; hikashopUpdateVariant(el);";
}
$js = "
window.hikashop.ready( function() {".$js."});";
if (!HIKASHOP_PHP5) {
$doc =& JFactory::getDocument();
}else{
$doc = JFactory::getDocument();
}
$doc->addScriptDeclaration("\n<!--\n".$js."\n//-->\n");
$switch_done = true;
}
}
}
}
if(!$hasQuantity) continue;
}
$values[$k]=$value->characteristic_value;
/* name with price:
$currencyHelper = hikashop_get('class.currency');
$values[$k]=$value->characteristic_value.' ('.$currencyHelper->format($element->variants[$value->variant_product_id]->prices[0]->price_value,$element->variants[$value->variant_product_id]->prices[0]->price_currency_id).')';
*/
}
}
$html=$this->display(@$characteristic->characteristic_id,@$characteristic->default->characteristic_id,$values,$characteristic->characteristic_display_method);
if($params->get('characteristic_display_text') && isset($characteristic->characteristic_value)){
$html=$characteristic->characteristic_value.'</td><td>'.$html;
}
$main_html.='<td>'.$html.'</td></tr>';
}
$main_html.='</table>';
$html = $main_html;
break;
If you're looking for where the labels and inputs HTML is generated, it's in the Joomla HTML library called there thanks to the function $html = JHTML::_('select.'.$characteristic_display.'list', $this->values, $map, 'class="inputbox" size="1"' . $options, 'value', 'text', (int)$value,$id );
But again, there is nothing else in HikaShop.