Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, Ed, biapar, Willr, Ingo, swaiba

Delete entry when date is expired


Go to End


2 Posts   774 Views

Avatar
Bereusei

Community Member, 96 Posts

1 December 2011 at 1:47am

Hi,

I´ve searched everywhere in web, but can´t find an solution.
I´m using DOM to save dates. Is it possible to delete the entries when the date is expired?
In php I can simply say: $query_delete_date = "DELETE FROM datetable WHERE date < DATE_SUB(NOW(), INTERVAL 1 DAY)";
But is there an nice way of writing a function into the DataObject-file?

Here´s my code from the DataObject:
<?php
$fields = singleton('Termin')->summaryFields();

class Termin extends DataObject
{
//db fields
static $db = array (
'Datum' => 'Date',
'Text' => 'Text'
);

//Relations
static $has_one = array (
'Aktuelles' => 'Aktuelles',
'Author' => 'Member'
);

//Fields to show in the DOM table
static $summary_fields = array(
'Datum',
'Text',
'Author.FirstName',
//'Datum',
);

static $default_sort = "Datum ASC";

//Fields for the DOM Popup
public function getCMSFields()
{
return new FieldSet(
new DateField('Datum'),
new TextareaField('Text')
);

}

function onBeforeWrite(){
if(!$this->ID){
$currentMember = Member::currentMember();
if($currentMember){
$this->AuthorID = $currentMember->ID;
}
}
parent::onBeforeWrite();
}
}
?>

I hope someone can help me.

Avatar
Bereusei

Community Member, 96 Posts

2 December 2011 at 2:09am

I figered out, that I can better use the filter clause in the DOM. So I wanna filter the dates that were older than today's date.

//Termine
$terminmanager = new DataObjectManager(
$this,
'Termine',
'Termin',
$this->Datum < date('Y-m-d')
);

But this doesn´t work either. Does someone see the mistake?