openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 0ff179008dbe00cd19e3fdebe8fcba52cfc59761
parent a01886e0c49c8b2e17ec2cb4e965bf0fac3ca036
Author: dankert <devnull@localhost>
Date:   Thu,  4 Feb 2010 00:29:47 +0100

Fix: Beim Löschen von Modellen auch vorher die Vorlagen dazu löschen.

Diffstat:
actionClasses/ModelAction.class.php | 10+++++++++-
objectClasses/Model.class.php | 34+++++++++++++++++++++++++---------
2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/actionClasses/ModelAction.class.php b/actionClasses/ModelAction.class.php @@ -112,11 +112,19 @@ class ModelAction extends Action } + /** + * Löschen des Models. + */ function delete() { - if ( $this->getRequestVar('confirm') == '1' ) + if ( $this->hasRequestVar('confirm') ) { $this->model->delete(); + $this->addNotice('model',$this->model->name,'DONE',OR_NOTICE_OK); + } + else + { + $this->addNotice('model',$this->model->name,'NOTHING_DONE',OR_NOTICE_WARN); } } diff --git a/objectClasses/Model.class.php b/objectClasses/Model.class.php @@ -221,19 +221,35 @@ class Model { $db = db_connection(); - // Modell l?schen - $sql = new Sql( 'DELETE FROM {t_projectmodel} WHERE id={modelid}' ); + // Vorlagen zu dieseem Modell loeschen + $sql = new Sql( <<<SQL + DELETE FROM {t_templatemodel} + WHERE projectmodelid = {modelid} +SQL +); + $sql->setInt( 'modelid',$this->modelid ); + $db->query( $sql ); + + // Dieses Modell löschen + $sql = new Sql( <<<SQL + DELETE FROM {t_projectmodel} + WHERE id={modelid} +SQL +); $sql->setInt( 'modelid',$this->modelid ); $db->query( $sql ); // Anderes Modell auf "Default" setzen (sofern vorhanden) - $sql = new Sql( 'SELECT id FROM {t_projectmodel} WHERE projectid={projectid}' ); - $sql->setInt( 'projectid',$this->projectid ); - $new_default_modelid = $db->getOne( $sql ); - - $sql = new Sql( 'UPDATE {t_projectmodel} SET is_default=1 WHERE id={modelid}' ); - $sql->setInt( 'modelid',$new_default_modelid ); - $db->query( $sql ); + if ( $this->isDefault ) + { + $sql = new Sql( 'SELECT id FROM {t_projectmodel} WHERE projectid={projectid}' ); + $sql->setInt( 'projectid',$this->projectid ); + $new_default_modelid = $db->getOne( $sql ); + + $sql = new Sql( 'UPDATE {t_projectmodel} SET is_default=1 WHERE id={modelid}' ); + $sql->setInt( 'modelid',$new_default_modelid ); + $db->query( $sql ); + } } }