function onBeforeCartUpdate(&$a, &$cart, $product_id, $quantity, $add, $type,$resetCartWhenUpdate,$force,&$do) {
if ($cart->cart_id && $quantity > 0) {
JFactory::getSession()->set('bbhika', "");
$pluginsClass = hikashop_get('class.plugins');
$plugin = $pluginsClass->getByName('hikashop','bedrebad');
$state = false;
$mainkat = explode(",",$plugin->params['mainkat']);
$productClass = hikashop_get('class.product');
$product=$productClass->get($product_id);
$inkat = $this->maincat($product_id,$mainkat);
$cartClass = hikashop_get('class.cart');
$cc = $cartClass->loadFullCart();
foreach($cc as $aa ) {
$v_kat = $this->maincat($aa->product_id,$mainkat);
if ($v_kat !== $inkat) $state = true;
}
if ($state) {
$do = false; //Stop for at ligge varer i kurven
JFactory::getApplication()->enqueueMessage(JText::_('HIKASHOP_BEDREBAD_ERROR'),'error');
JFactory::getSession()->set('bbhika', "error");
}
}
}
function maincat($pid,$parrent) {
$state = false;
$database = JFactory::getDBO();
$database->setQuery('SELECT category_id FROM '.hikashop_table('product_category').' WHERE product_id = '.$pid.'');
$ret = $database->loadObjectList();
foreach ($ret as $r) $id[] = $r->category_id;
foreach ($id as $i)
do {
if (in_array($i,$parrent)) {
$state = true;
break;
}
$database->setQuery('SELECT category_parent_id FROM '.hikashop_table('category').' WHERE category_id = '.$i.'');
$ret2 = $database->loadObject();
if (in_array($ret2->category_parent_id,$parrent)) {
$state = true;
break;
}
$i = $ret2->category_parent_id;
} while ($ret2->category_parent_id != 0);
return $state;
}