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   547 Views

Avatar
Bereusei

Community Member, 94 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, 94 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?