*/ /** * Podpięcie pod generator stProduct modułu ststAccessoriesPlugin * * @author Piotr Hałas * * @package stAccessoriesImportExport * @subpackage libs */ class stAccessoriesImportExport { public static function getProductAccessories(Product $object) { $accessories = $object->getProductHasAccessoriessRelatedByProductId(); if (is_array($accessories)) { $ids = array(); foreach($accessories as $item) { if (is_object($item) && !is_null($item->getCode())) $ids[] = $item->getCode(); } return implode(',',$ids); } return ''; } public static function setProductAccessories(Product $object, $value) { $accessories = $object->getProductHasAccessoriessRelatedByProductId(); // usuń w przypadku gdy pole puste if (!strlen(trim($value))) { if (is_array($accessories)) { foreach($accessories as $item) { $item->delete(); } } return ; } $idsNew = explode(',',$value); foreach ($idsNew as $key=>$itemValue) { if (strlen(trim($itemValue))) { $idsNew[$key] = trim($itemValue); } else { unset($idsNew[$key]); } } $ids = array(); if (is_array($accessories)) { foreach($accessories as $item) { $ids[] = $item->getCode(); } } $old = array_diff($ids, $idsNew); $idsNew = array_unique(array_diff($idsNew, $ids)); foreach($accessories as $item) { if (array_search($item->getCode(),$old)!== false) { $item->delete(); } } foreach ($idsNew as $id) { $c = new Criteria(); $c->add(ProductPeer::CODE,$id); $accessory = ProductPeer::doSelectOne($c); if (is_object($accessory) && $object->getId()!=$accessory->getId()) { $tmp = new ProductHasAccessories(); $tmp->setProductId($object->getId()); $tmp->setAccessoriesId($accessory->getId()); $tmp->save(); } } } }