function requireDefaultRecords()
 {
     parent::requireDefaultRecords();
     if ($a = Config::inst()->get("AdvertisementStyle", "array_of_js_file_options")) {
         if (is_array($a)) {
             if (count($a)) {
                 foreach ($a as $k => $v) {
                     if (!AdvertisementStyle::get()->where("Title = '" . $k . "' OR FileLocation = '" . $v . "'")->First()) {
                         $o = new AdvertisementStyle();
                         $o->Title = $k;
                         $o->FileLocation = $v;
                         $o->write();
                     }
                 }
             }
         }
     }
 }
 public function onBeforeWrite()
 {
     parent::onBeforeWrite();
     $bt = defined('DB::USE_ANSI_SQL') ? "\"" : "`";
     if ($this->classHasAdvertisements($this->owner->ClassName)) {
         $objects = array(0 => 0);
         $images = array(0 => 0);
         $dos1 = $this->advertisementsToShow();
         if ($dos1) {
             foreach ($dos1 as $obj) {
                 $images[$obj->ID] = $obj->AdvertisementImageID;
                 $objects[$obj->ID] = $obj->ID;
             }
         }
         //check for non-existing images and delete advertisements associated with it
         foreach ($images as $objectID => $imageID) {
             if (!Image::get()->byID($imageID)) {
                 $obj = Advertisement::get()->byID($objectID);
                 if ($obj) {
                     $obj->delete();
                     $obj->destroy();
                     unset($objects[$objectID]);
                 }
             }
         }
         //check if a folder has been set and create objects
         if ($this->owner->AdvertisementsFolderID) {
             $dos2 = Image::get()->where("\"File\".\"ParentID\" = " . $this->owner->AdvertisementsFolderID . " AND \"Advertisement\".\"AdvertisementImageID\" IS NULL ")->leftJoin("Advertisement", "\"Advertisement\".\"AdvertisementImageID\" = \"File\".\"ID\" ");
             if ($dos2->count()) {
                 $advertisementsToAdd = array();
                 foreach ($dos2 as $image) {
                     $newAdvertisement = new Advertisement();
                     $newAdvertisement->AdvertisementImageID = $image->ID;
                     $newAdvertisement->Title = $image->Title;
                     $newAdvertisement->AutoAdded = true;
                     $newAdvertisement->write();
                     $objects[$newAdvertisement->ID] = $newAdvertisement->ID;
                 }
                 $this->owner->Advertisements()->addMany($objects);
             }
         }
         if ($this->owner->AdvertisementStyleID) {
             if (!AdvertisementStyle::get()->byID($this->owner->AdvertisementStyleID)) {
                 $this->owner->AdvertisementStyleID = 0;
             }
         }
         //remove advdertisements if parent is being used...
         if ($this->owner->UseParentAdvertisements) {
             if ($this->advertisementParent()) {
                 $combos = $this->owner->Advertisements();
                 if ($combos) {
                     $combos->removeAll();
                 }
             } else {
                 $this->owner->UseParentAdvertisements = false;
             }
         }
     }
 }