'Text', 'Description' => 'Text', 'Location' => 'Text', 'ExpiryDate' => 'Date', ); static $has_one = array( 'TenderCategory' => 'TenderCategory', 'Author' => 'Member', ); static $singular_name = 'Tender'; static $plural_name = 'Tenders'; public function getCMSFields() { $fields = new FieldSet( new TextField('Title'), new TextareaField('Description'), new TextField('Location'), new DateField('ExpiryDate', 'Expiry Date'), new ReadonlyField('Author', 'Autor', $this->Author()->Title) ); return $fields; } public function onBeforeWrite() { if(!$this->ID) { $category = $this->TenderCategory(); $this->notifySubscribers($category->Subscribers()); $currentMember = Member::currentMember(); if($currentMember) $this->AuthorID = $currentMember->ID; } parent::onBeforeWrite(); } public function Link() { return $this->TenderCategory()->Link() . '#Tender' . $this->ID; } protected function notifySubscribers($members) { if($members) foreach($members as $member) { $body = "

Hi {$member->FirstName}!

A new Tender posting is available at the following URL: {$this->Link()}

"; $email = new Email( Email::getAdminEmail(), $member->Email, 'Tender Posting Notification', $body ); $email->send(); } } } ?>