| 1 | <?php |
||
| 3 | namespace Dynamic\ProductCatalog\ORM; |
||
| 4 | |||
| 5 | use Dynamic\ProductCatalog\Page\CatalogCategory; |
||
| 6 | use SilverStripe\Dev\Debug; |
||
| 7 | use SilverStripe\Forms\DropdownField; |
||
| 8 | 2 | use SilverStripe\ORM\ArrayList; |
|
| 9 | use SilverStripe\ORM\DataExtension; |
||
| 10 | 2 | ||
| 11 | 2 | class ProductDocCollectionDataExtension extends DataExtension |
|
| 12 | 2 | { |
|
| 13 | 2 | /** |
|
| 14 | * @param $object |
||
| 15 | */ |
||
| 16 | public function updateCollectionObject(&$object) |
||
| 22 | 1 | ||
| 23 | 1 | /** |
|
| 24 | * @param $form |
||
| 25 | 1 | */ |
|
| 26 | public function updateCollectionForm(&$form) |
||
| 40 | |||
| 41 | public function updateCollectionItems(&$collection, &$searchCriteria) |
||
| 42 | { |
||
| 43 | $class = $this->owner->data()->ManagedClass; |
||
| 44 | |||
| 45 | if (isset($searchCriteria['CategoryID']) && $searchCriteria['CategoryID'] != '') { |
||
| 46 | $category = CatalogCategory::get()->byID($searchCriteria['CategoryID']); |
||
| 47 | $products = $category->Products(); |
||
| 48 | $docs = new ArrayList(); |
||
| 49 | |||
| 50 | foreach($products as $product) { |
||
| 51 | $records = $class::get()->filter(['Products.ID' => $product->ID]); |
||
| 52 | foreach ($records as $record) { |
||
| 53 | $docs->push($record); |
||
| 54 | } |
||
| 60 | } |