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.

DataObjectManager Module

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Delete entry when date is expired


Reply

2 Posts   470 Views

Avatar
Bereusei

1 December 2011 at 1:47am Community Member, 94 Posts

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

2 December 2011 at 2:09am Community Member, 94 Posts

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?