JoomShopping умеет создавать два варианта списков:
- Select
- RadioGroup
Если требуется ввести стандартный checkbox(галочку), то можно переопределить вывод значений атрибута, добавить условия вывода:
- Если значений всего 2
- Если цена одного из значений = 0
- => Вывести checkbox
Для этого необходимо открыть файл:
components\com_jshopping\templates\default\product\product_default.php
Строка 144:
<span id='block_attr_sel_<?php print $attribut->attr_id?>'>
<?php
$db = JFactory::getDbo();
$db->setquery("Select atr2.*,(select `name_ru-RU` from #__jshopping_attr_values where value_id=atr2.attr_value_id) as name from #__jshopping_products_attr2 atr2 where attr_id='".$attribut->attr_id."' and product_id='".$this->product->product_id."' ");$attrmass=$db->loadobjectlist();
if (count($attrmass)!=2) echo $attribut->selects;//кол-во не 2
else
if (($attrmass[0]->addprice<>0 and $attrmass[0]>addprice<>$this->product->getPriceCalculate()) and ($attrmass[1]->addprice<>0 and $attrmass[1]->addprice<>$this->product->getPriceCalculate())) echo $attribut->selects;//сумма обоих больше 0
else
{
if ($attrmass[0]->addprice==0 or $attrmass[0]->addprice==$this->product->getPriceCalculate())
{
$name=$attrmass[1]->name;
$null_valid=$attrmass[0]->attr_value_id;
$notnull_valid=$attrmass[1]->attr_value_id;
$null_atrid=$attrmass[0]->attr_id;
$notnull_atrid=$attrmass[1]->attr_id;
}
else
{
$name=$attrmass[0]->name;
$null_valid=$attrmass[1]->attr_value_id;
$notnull_valid=$attrmass[0]->attr_value_id;
$null_atrid=$attrmass[1]->attr_id;
$notnull_atrid=$attrmass[0]->attr_id;
}
echo '<div style="background:yellow;display:none;">'.$attribut->selects.'</div>';//выводим стандартную форму с опциями, но прячим ее
echo '<span class="input_type_radio">';
echo '<input type="checkbox" style="height:20px;width:20px;" onclick="if(this.checked){jQuery('."'#jshop_attr_id".$attribut->attr_id.$notnull_valid."'".').trigger('."'click'".');}else{jQuery('."'#jshop_attr_id".$attribut->attr_id.$null_valid."'".').trigger('."'click'".');}" name="checkattr'.$attribut->attr_id.'" id="checkattr'.$attribut->attr_id.'"><label style="cursor:pointer;margin-left:10px;top: -5px;position:relative;white-space: normal;width: 200px;" class="cssm-label" for="checkattr'.$attribut->attr_id.'">'.$name.'</label>';
echo '</span>';
}
?>
</span>