コード例 #1
0
 protected function processAll($filepath, $preview = false)
 {
     $this->extend('updateColumnMap', $this->columnMap);
     // we have to check for the existence of this in case the stockcontrol module hasn't been loaded
     // and the CSV still contains a Stock column
     $results = parent::processAll($filepath, $preview);
     //After results have been processed, publish all created & updated products
     $objects = new DataObjectSet();
     $objects->merge($results->Created());
     $objects->merge($results->Updated());
     foreach ($objects as $object) {
         if (!$object->ParentID) {
             //set parent page
             //cached option
             if (is_numeric(self::$parent_page_id) && DataObject::get_by_id(self::get_product_group_class_name(), self::$parent_page_id)) {
                 $object->ParentID = self::$parent_page_id;
             } elseif ($parentpage = DataObject::get_one(self::get_product_group_class_name(), "\"Title\" = 'Products'", '"Created" DESC')) {
                 $object->ParentID = self::$parent_page_id = $parentpage->ID;
             } elseif ($parentpage = DataObject::get_one(self::get_product_group_class_name(), "\"ParentID\" = 0", '"Created" DESC')) {
                 $object->ParentID = self::$parent_page_id = $parentpage->ID;
             } elseif ($parentpage = DataObject::get_one(self::get_product_group_class_name(), "", '"Created" DESC')) {
                 $object->ParentID = self::$parent_page_id = $parentpage->ID;
             } else {
                 $object->ParentID = self::$parent_page_id = 0;
             }
         }
         $object->extend('updateImport');
         //could be used for setting other attributes, such as stock level
         $object->writeToStage('Stage');
         $object->publish('Stage', 'Live');
     }
     return $results;
 }