예제 #1
0
파일: Product.php 프로젝트: saiber/livecart
 public function loadRelationships($loadReferencedRecords = false, $type = 0)
 {
     ClassLoader::import('application.model.product.ProductRelationship');
     if (empty($this->relationships[$type])) {
         $this->relationships[$type] = ProductRelationship::getRelationships($this, $loadReferencedRecords, $type);
     }
     return $this->relationships[$type];
 }
예제 #2
0
 public function testGetRelatedProducts()
 {
     // new product
     $product = Product::getNewInstance($this->rootCategory, 'test');
     $product->save();
     // groups
     $groups = array(0 => null);
     foreach (range(1, 2) as $i) {
         $groups[$i] = ProductRelationshipGroup::getNewInstance($product, ProductRelationship::TYPE_CROSS);
         $groups[$i]->position->set($i);
         $groups[$i]->setValueByLang('name', 'en', 'TEST_GROUP_' . $i);
         $groups[$i]->save();
     }
     // related products
     $relatedProducts = array();
     $relationships = array();
     foreach (range(1, 9) as $i) {
         $relatedProducts[$i] = Product::getNewInstance($this->rootCategory, 'test');
         $relatedProducts[$i]->save();
         $relationships[$i] = ProductRelationship::getNewInstance($product, $relatedProducts[$i], $groups[floor(($i - 1) / 3)]);
         $relationships[$i]->position->set(9 - $i);
         $relationships[$i]->save();
     }
     // test order
     $groupPosition = -1;
     $productPosition = -1;
     foreach (ProductRelationship::getRelationships($product, false, ProductRelationship::TYPE_CROSS) as $relationship) {
         $currentGroupPosition = $relationship->productRelationshipGroup->get() ? $relationship->productRelationshipGroup->get()->position->get() : $groupPosition;
         $currentProductPosition = $relationship->position->get();
         $this->assertTrue($productPosition <= $currentProductPosition || $groupPosition <= $currentGroupPosition, "{$productPosition} <= {$currentProductPosition} || {$groupPosition} <= {$currentGroupPosition}");
         $groupPosition = $currentGroupPosition;
         $productPosition = $currentProductPosition;
     }
 }