Remove the corresponding information from the timeline on deletion.

This commit is contained in:
Loic d'Anterroches 2008-11-23 11:20:08 +01:00
parent d9ffac099f
commit 99dd3aa1d6
2 changed files with 34 additions and 0 deletions

View File

@ -130,4 +130,30 @@ class IDF_Timeline extends Pluf_Model
$t->create(); $t->create();
return true; return true;
} }
/**
* Remove an item from the timeline.
*
* You must call this function when you delete items wich are
* tracked in the timeline. Just add the call:
*
* IDF_Timeline::remove($this);
*
* in the preDelete() method of your object.
*
* @param mixed Item to be removed
* @return bool Success
*/
public static function insert($item)
{
if ($item->id > 0) {
$sql = new Pluf_SQL('model_id=%s AND model_class=%s',
array($item->id, $item->_model));
$items = Pluf::factory('IDF_Timeline')->getList(array('filter'=>$sql->gen()));
foreach ($items as $tl) {
$tl->delete();
}
}
return true;
}
} }

View File

@ -154,6 +154,14 @@ class IDF_Upload extends Pluf_Model
return Pluf::f('url_media').'/upload/'.$project->shortname.'/files/'.$this->file; return Pluf::f('url_media').'/upload/'.$project->shortname.'/files/'.$this->file;
} }
/**
* We drop the information from the timeline.
*/
function preDelete()
{
IDF_Timeline::remove($this);
}
/** /**
* Returns the timeline fragment for the file. * Returns the timeline fragment for the file.
* *