openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

commit 8a0bdc6b585855d5793456f36c2070102e4599d6
parent 7487c4ef7c13f987b80d511aeded01e24b117d5b
Author: Jan Dankert <develop@jandankert.de>
Date:   Wed, 18 Nov 2020 01:46:36 +0100

Refactoring of model classes: New method persist() and some other cleanups.

Diffstat:
Mmodules/cms/action/PageelementAction.class.php | 4++--
Mmodules/cms/action/file/FileCompressAction.class.php | 4++--
Mmodules/cms/action/file/FileExtractAction.class.php | 8++++----
Mmodules/cms/action/file/FileUncompressAction.class.php | 4++--
Mmodules/cms/action/folder/FolderAdvancedAction.class.php | 10+++++-----
Mmodules/cms/action/folder/FolderCreatefileAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreatefolderAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreateimageAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreatelinkAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreatepageAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreatetextAction.class.php | 2+-
Mmodules/cms/action/folder/FolderCreateurlAction.class.php | 2+-
Mmodules/cms/action/grouplist/GrouplistAddAction.class.php | 2+-
Mmodules/cms/action/image/ImageSizeAction.class.php | 2+-
Mmodules/cms/action/languagelist/LanguagelistAddAction.class.php | 2+-
Mmodules/cms/action/login/LoginLoginAction.class.php | 3+--
Mmodules/cms/action/login/LoginOidcAction.class.php | 2+-
Mmodules/cms/action/login/LoginRegistercodeAction.class.php | 7+++----
Mmodules/cms/action/modellist/ModellistAddAction.class.php | 2+-
Mmodules/cms/action/object/ObjectAclformAction.class.php | 5+++--
Mmodules/cms/action/object/ObjectCopyAction.class.php | 10+++++-----
Mmodules/cms/action/object/ObjectInheritAction.class.php | 2+-
Mmodules/cms/action/object/ObjectNameAction.class.php | 2+-
Mmodules/cms/action/object/ObjectPropAction.class.php | 2+-
Mmodules/cms/action/page/PageEditAction.class.php | 4++--
Mmodules/cms/action/page/PageFormAction.class.php | 4++--
Mmodules/cms/action/page/PageInfoAction.class.php | 7++++++-
Mmodules/cms/action/page/PageNameAction.class.php | 14++++++++++++--
Mmodules/cms/action/pageelement/PageelementRestoreAction.class.php | 2+-
Mmodules/cms/action/profile/ProfileConfirmmailAction.class.php | 2+-
Mmodules/cms/action/profile/ProfileEditAction.class.php | 2+-
Mmodules/cms/action/projectlist/ProjectlistAddAction.class.php | 2+-
Mmodules/cms/action/template/TemplateAddelAction.class.php | 2+-
Mmodules/cms/action/template/TemplateExtensionAction.class.php | 2+-
Mmodules/cms/action/template/TemplateSrcAction.class.php | 2+-
Mmodules/cms/action/template/TemplateSrcelementAction.class.php | 2+-
Mmodules/cms/action/templatelist/TemplatelistAddAction.class.php | 6+++---
Mmodules/cms/action/user/UserPropAction.class.php | 2+-
Mmodules/cms/action/userlist/UserlistAddAction.class.php | 2+-
Mmodules/cms/model/Acl.class.php | 8++++++--
Mmodules/cms/model/Alias.class.php | 8+-------
Mmodules/cms/model/BaseObject.class.php | 91+++++++------------------------------------------------------------------------
Mmodules/cms/model/File.class.php | 9++++-----
Mmodules/cms/model/Folder.class.php | 16++++++----------
Mmodules/cms/model/Group.class.php | 15++-------------
Mmodules/cms/model/Image.class.php | 12++++++------
Mmodules/cms/model/Language.class.php | 2+-
Mmodules/cms/model/Link.class.php | 4++--
Mmodules/cms/model/Model.class.php | 2+-
Mmodules/cms/model/ModelBase.class.php | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mmodules/cms/model/Name.class.php | 63++++++++++++++++++++++++++++++++-------------------------------
Mmodules/cms/model/Page.class.php | 19++++++-------------
Mmodules/cms/model/Pageelement.class.php | 9+++++++++
Mmodules/cms/model/Project.class.php | 19+++++++++----------
Amodules/cms/model/README.md | 6++++++
Mmodules/cms/model/Template.class.php | 2+-
Mmodules/cms/model/TemplateModel.class.php | 3---
Mmodules/cms/model/Url.class.php | 10+++++-----
Mmodules/cms/model/User.class.php | 2+-
Mmodules/cms/model/Value.class.php | 20+++++++++++++++-----
60 files changed, 263 insertions(+), 262 deletions(-)

diff --git a/modules/cms/action/PageelementAction.class.php b/modules/cms/action/PageelementAction.class.php @@ -372,13 +372,13 @@ class PageelementAction extends BaseAction foreach( $project->getLanguageIds() as $languageid ) { $value->languageid = $languageid; - $value->save(); + $value->add(); } } else { // sonst nur 1x speichern (fuer die aktuelle Sprache) - $value->save(); + $value->add(); } $this->addNotice('pageelement', 0, $value->element->label, 'SAVED', Action::NOTICE_OK); diff --git a/modules/cms/action/file/FileCompressAction.class.php b/modules/cms/action/file/FileCompressAction.class.php @@ -36,7 +36,7 @@ class FileCompressAction extends FileAction implements Method { $newFile->parentid = $this->file->parentid; $newFile->value = gzencode( $this->file->loadValue(),1 ); $newFile->parse_filename( $this->file->filename.'.'.$this->file->extension.'.gz',FORCE_GZIP ); - $newFile->add(); + $newFile->persist(); } break; @@ -57,7 +57,7 @@ class FileCompressAction extends FileAction implements Method { $newFile->parentid = $this->file->parentid; $newFile->value = bzcompress( $this->file->loadValue() ); $newFile->parse_filename( $this->file->filename.'.'.$this->file->extension.'.bz2' ); - $newFile->add(); + $newFile->persist(); } break; diff --git a/modules/cms/action/file/FileExtractAction.class.php b/modules/cms/action/file/FileExtractAction.class.php @@ -22,7 +22,7 @@ class FileExtractAction extends FileAction implements Method { $folder->parentid = $this->file->parentid; $folder->name = $this->file->name; $folder->filename = $this->file->filename; - $folder->add(); + $folder->persist(); $tar = new ArchiveTar(); $tar->openTAR( $this->file->loadValue() ); @@ -35,7 +35,7 @@ class FileExtractAction extends FileAction implements Method { $newFile->value = $file['file']; $newFile->parse_filename( $file['name'] ); $newFile->lastchangeDate = $file['time']; - $newFile->add(); + $newFile->persist(); $this->addNotice('file', 0, $newFile->name, 'ADDED'); } @@ -51,7 +51,7 @@ class FileExtractAction extends FileAction implements Method { $folder->name = $this->file->name; $folder->filename = $this->file->filename; $folder->description = $this->file->fullFilename; - $folder->add(); + $folder->persist(); $zip = new ArchiveUnzip(); $zip->open( $this->file->loadValue() ); @@ -68,7 +68,7 @@ class FileExtractAction extends FileAction implements Method { $newFile->parse_filename( basename($fileName) ); $newFile->value = $zip->unzip($fileName); - $newFile->add(); + $newFile->persist(); $this->addNotice('file', 0, $newFile->name, 'ADDED'); unset($newFile); diff --git a/modules/cms/action/file/FileUncompressAction.class.php b/modules/cms/action/file/FileUncompressAction.class.php @@ -38,7 +38,7 @@ class FileUncompressAction extends FileAction implements Method { $newFile->parentid = $this->file->parentid; $newFile->value = gzinflate( substr($this->file->loadValue(),10)); $newFile->parse_filename( $this->file->filename ); - $newFile->add(); + $newFile->persist(); } break; @@ -58,7 +58,7 @@ class FileUncompressAction extends FileAction implements Method { $newFile->parentid = $this->file->parentid; $newFile->value = bzdecompress( $this->file->loadValue() ); $newFile->parse_filename( $this->file->filename ); - $newFile->add(); + $newFile->persist(); } break; diff --git a/modules/cms/action/folder/FolderAdvancedAction.class.php b/modules/cms/action/folder/FolderAdvancedAction.class.php @@ -208,7 +208,7 @@ class FolderAdvancedAction extends FolderAction implements Method { $tar->__generateTAR(); $tarFile->value = $tar->tar_file; - $tarFile->add(); + $tarFile->persist(); } else { @@ -264,7 +264,7 @@ class FolderAdvancedAction extends FolderAction implements Method { $f->filename = ''; $f->name = \cms\base\Language::lang('COPY_OF').' '.$f->name; $f->parentid = $targetObjectId; - $f->add(); + $f->persist(); $f->copyValueFromFile( $id ); $this->addNotice($o->getType(), 0, $o->name, 'COPIED', 'ok'); @@ -276,7 +276,7 @@ class FolderAdvancedAction extends FolderAction implements Method { $p->filename = ''; $p->name = \cms\base\Language::lang('COPY_OF').' '.$p->name; $p->parentid = $targetObjectId; - $p->add(); + $p->persist(); $p->copyValuesFromPage( $id ); $this->addNotice($o->getType(), 0, $o->name, 'COPIED', 'ok'); break; @@ -287,7 +287,7 @@ class FolderAdvancedAction extends FolderAction implements Method { $l->filename = ''; $l->name = \cms\base\Language::lang('COPY_OF').' '.$l->name; $l->parentid = $targetObjectId; - $l->add(); + $l->persist(); $this->addNotice($o->getType(), 0, $o->name, 'COPIED', 'ok'); break; @@ -310,7 +310,7 @@ class FolderAdvancedAction extends FolderAction implements Method { $link->linkedObjectId = $id; $link->isLinkToObject = true; $link->name = \cms\base\Language::lang('LINK_TO').' '.$o->name; - $link->add(); + $link->persist(); $this->addNotice($o->getType(), 0, $o->name, 'LINKED', 'ok'); } else diff --git a/modules/cms/action/folder/FolderCreatefileAction.class.php b/modules/cms/action/folder/FolderCreatefileAction.class.php @@ -88,7 +88,7 @@ class FolderCreatefileAction extends FolderAction implements Method { $file->value = $upload->value; } - $file->add(); // Datei hinzufuegen + $file->persist(); // Datei hinzufuegen $file->setNameForAllLanguages( $name,$description ); $this->addNoticeFor( $file, Messages::ADDED ); diff --git a/modules/cms/action/folder/FolderCreatefolderAction.class.php b/modules/cms/action/folder/FolderCreatefolderAction.class.php @@ -26,7 +26,7 @@ class FolderCreatefolderAction extends FolderAction implements Method { $f->desc = $description; $f->parentid = $this->folder->objectid; - $f->add(); + $f->persist(); $f->setNameForAllLanguages( $name,$description ); $this->addNoticeFor($f, Messages::ADDED); diff --git a/modules/cms/action/folder/FolderCreateimageAction.class.php b/modules/cms/action/folder/FolderCreateimageAction.class.php @@ -77,7 +77,7 @@ class FolderCreateimageAction extends FolderAction implements Method { $image->value = $upload->value; } - $image->add(); // Datei hinzufuegen + $image->persist(); // Datei hinzufuegen $this->addNoticeFor( $image, Messages::ADDED ); $image->setNameForAllLanguages( $name,$description ); $this->setTemplateVar('objectid',$image->objectid); diff --git a/modules/cms/action/folder/FolderCreatelinkAction.class.php b/modules/cms/action/folder/FolderCreatelinkAction.class.php @@ -26,7 +26,7 @@ class FolderCreatelinkAction extends FolderAction implements Method { $link->linkedObjectId = $this->getRequestVar('targetobjectid'); $link->projectid = $this->folder->projectid; - $link->add(); + $link->persist(); $link->setNameForAllLanguages( $name,$description ); $this->addNoticeFor( $link, Messages::ADDED); diff --git a/modules/cms/action/folder/FolderCreatepageAction.class.php b/modules/cms/action/folder/FolderCreatepageAction.class.php @@ -36,7 +36,7 @@ class FolderCreatepageAction extends FolderAction implements Method { $page->projectid = $this->folder->projectid; - $page->add(); + $page->persist(); $page->setNameForAllLanguages( $name,$description ); $this->addNoticeFor( $page, Messages::ADDED ); diff --git a/modules/cms/action/folder/FolderCreatetextAction.class.php b/modules/cms/action/folder/FolderCreatetextAction.class.php @@ -79,7 +79,7 @@ class FolderCreatetextAction extends FolderAction implements Method { } } - $text->add(); // Datei hinzufuegen + $text->persist(); // Datei hinzufuegen $text->setNameForAllLanguages( $name,$description ); $this->addNoticeFor($text, Messages::ADDED); diff --git a/modules/cms/action/folder/FolderCreateurlAction.class.php b/modules/cms/action/folder/FolderCreateurlAction.class.php @@ -22,7 +22,7 @@ class FolderCreateurlAction extends FolderAction implements Method { $url->url = $this->getRequestVar('url'); - $url->add(); + $url->persist(); $url->setNameForAllLanguages( $name,$description ); $this->addNoticeFor( $url, Messages::ADDED ); diff --git a/modules/cms/action/grouplist/GrouplistAddAction.class.php b/modules/cms/action/grouplist/GrouplistAddAction.class.php @@ -12,7 +12,7 @@ class GrouplistAddAction extends GrouplistAction implements Method { { $this->group = new Group(); $this->group->name = $this->getRequestVar('name'); - $this->group->add(); + $this->group->persist(); $this->addNotice('group', 0, $this->group->name, 'ADDED', 'ok'); $this->callSubAction('listing'); } diff --git a/modules/cms/action/image/ImageSizeAction.class.php b/modules/cms/action/image/ImageSizeAction.class.php @@ -67,7 +67,7 @@ class ImageSizeAction extends ImageAction implements Method { $imageFile->name = \cms\base\Language::lang('copy_of').' '.$imageFile->name; $imageFile->desription = \cms\base\Language::lang('copy_of').' '.$imageFile->description; $imageFile->filename = $imageFile->filename.'_resized_'.time(); - $imageFile->add(); + $imageFile->persist(); $imageFile->copyValueFromFile( $this->image->objectid ); } else diff --git a/modules/cms/action/languagelist/LanguagelistAddAction.class.php b/modules/cms/action/languagelist/LanguagelistAddAction.class.php @@ -34,7 +34,7 @@ class LanguagelistAddAction extends LanguagelistAction implements Method { $language->projectid = $this->project->projectid; $language->isoCode = $iso; $language->name = @$countryList[$iso]; - $language->add(); + $language->persist(); $this->addNoticeFor($language, Messages::ADDED); } diff --git a/modules/cms/action/login/LoginLoginAction.class.php b/modules/cms/action/login/LoginLoginAction.class.php @@ -180,8 +180,7 @@ class LoginLoginAction extends LoginAction implements Method { $user = new User(); $user->name = $loginName; $user->fullname = $loginName; - $user->add(); - $user->save(); + $user->persist(); } else { diff --git a/modules/cms/action/login/LoginOidcAction.class.php b/modules/cms/action/login/LoginOidcAction.class.php @@ -40,7 +40,7 @@ class LoginOidcAction extends LoginAction implements Method { $user->name = $subjectIdentifier; $user->type = User::AUTH_TYPE_OIDC; $user->issuer = $providerName; - $user->add(); + $user->persist(); } diff --git a/modules/cms/action/login/LoginRegistercodeAction.class.php b/modules/cms/action/login/LoginRegistercodeAction.class.php @@ -58,11 +58,10 @@ class LoginRegistercodeAction extends LoginAction implements Method { $newUser = new User(); $newUser->name = $this->getRequestVar('username'); $newUser->fullname = $newUser->name; - $newUser->add(); - $newUser->mail = Session::get( Session::KEY_REGISTER_MAIL ); - $newUser->save(); - + + $newUser->persist(); + $newUser->setPassword( $this->getRequestVar('password'),true ); $this->addNotice('user', 0, $newUser->name, 'user_added', 'ok'); diff --git a/modules/cms/action/modellist/ModellistAddAction.class.php b/modules/cms/action/modellist/ModellistAddAction.class.php @@ -13,7 +13,7 @@ class ModellistAddAction extends ModellistAction implements Method { $model = new Model(); $model->projectid = $this->getRequestVar('projectid'); $model->name = $this->getRequestVar('name'); - $model->add(); + $model->persist(); // Wenn kein Namen eingegeben, dann einen setzen. if ( empty($model->name) ) diff --git a/modules/cms/action/object/ObjectAclformAction.class.php b/modules/cms/action/object/ObjectAclformAction.class.php @@ -89,7 +89,7 @@ class ObjectAclformAction extends ObjectAction implements Method { $acl->grant = ( $this->hasRequestVar('grant' ) ); $acl->transmit = ( $this->hasRequestVar('transmit' ) ); - $acl->add(); + $acl->persist(); // Falls die Berechtigung vererbbar ist, dann diese sofort an // Unterobjekte vererben. @@ -105,8 +105,9 @@ class ObjectAclformAction extends ObjectAction implements Method { foreach( $oids as $oid ) { + $acl->aclid = null; $acl->objectid = $oid; - $acl->add(); + $acl->persist(); } } diff --git a/modules/cms/action/object/ObjectCopyAction.class.php b/modules/cms/action/object/ObjectCopyAction.class.php @@ -91,7 +91,7 @@ class ObjectCopyAction extends ObjectAction implements Method { $link->name = \cms\base\Language::lang('LINK_TO').' '.$sourceObject->name; $link->filename = $sourceObject->filename; $link->linkedObjectId = $sourceObjectId; - $link->add(); + $link->persist(); $this->addNotice('link', 0, $link->name, 'added'); break; @@ -112,7 +112,7 @@ class ObjectCopyAction extends ObjectAction implements Method { $f->filename = ''; $f->name = \cms\base\Language::lang('COPY_OF').' '.$f->name; $f->parentid = $targetObjectId; - $f->add(); + $f->persist(); $f->copyValueFromFile( $sourceObjectId ); $this->addNotice($sourceObject->getType(), 0, $sourceObject->name, 'COPIED', 'ok'); @@ -124,7 +124,7 @@ class ObjectCopyAction extends ObjectAction implements Method { $p->filename = ''; $p->name = \cms\base\Language::lang('COPY_OF').' '.$p->name; $p->parentid = $targetObjectId; - $p->add(); + $p->persist(); $p->copyValuesFromPage( $sourceObjectId ); $this->addNotice($sourceObject->getType(), 0, $sourceObject->name, 'COPIED', 'ok'); break; @@ -135,7 +135,7 @@ class ObjectCopyAction extends ObjectAction implements Method { $l->filename = ''; $l->name = \cms\base\Language::lang('COPY_OF').' '.$l->name; $l->parentid = $targetObjectId; - $l->add(); + $l->persist(); $this->addNotice($sourceObject->getType(), 0, $sourceObject->name, 'COPIED', 'ok'); break; @@ -160,7 +160,7 @@ class ObjectCopyAction extends ObjectAction implements Method { $link->filename = $sourceObject->filename; $link->linkedObjectId = $sourceObjectId; $link->isLinkToObject = true; - $link->add(); + $link->persist(); $this->addNotice('link', 0, $link->name, 'added'); // OK break; diff --git a/modules/cms/action/object/ObjectInheritAction.class.php b/modules/cms/action/object/ObjectInheritAction.class.php @@ -69,7 +69,7 @@ class ObjectInheritAction extends ObjectAction implements Method { foreach( $newAclList as $newAcl ) { $newAcl->objectid = $oid; - $newAcl->add(); + $newAcl->persist(); Logger::debug('adding new acl '.$newAcl->aclid.' for object '.$oid); } } diff --git a/modules/cms/action/object/ObjectNameAction.class.php b/modules/cms/action/object/ObjectNameAction.class.php @@ -27,7 +27,7 @@ class ObjectNameAction extends ObjectAction implements Method { $name->name = $this->getRequestVar( 'name' ); $name->description = $this->getRequestVar( 'description' ); - $name->save(); + $name->persist(); $this->addNoticeFor($this->baseObject, Messages::SAVED); } diff --git a/modules/cms/action/object/ObjectPropAction.class.php b/modules/cms/action/object/ObjectPropAction.class.php @@ -36,7 +36,7 @@ class ObjectPropAction extends ObjectAction implements Method { if ( ! $alias->filename ) $alias->delete(); else - $alias->save(); + $alias->persist(); // Should we do this? diff --git a/modules/cms/action/page/PageEditAction.class.php b/modules/cms/action/page/PageEditAction.class.php @@ -165,13 +165,13 @@ class PageEditAction extends PageAction implements Method { foreach( $project->getLanguageIds() as $languageid ) { $value->languageid = $languageid; - $value->save(); + $value->add(); } } else { // sonst nur 1x speichern (fuer die aktuelle Sprache) - $value->save(); + $value->add(); } $this->page->setTimestamp(); // "Letzte Aenderung" setzen diff --git a/modules/cms/action/page/PageFormAction.class.php b/modules/cms/action/page/PageFormAction.class.php @@ -159,14 +159,14 @@ class PageFormAction extends PageAction implements Method { foreach( $p->getLanguageIds() as $languageid ) { $value->languageid = $languageid; - $value->save(); + $value->add(); } } else { // sonst nur 1x speichern (fuer die aktuelle Sprache) $value->languageid = $this->getRequestVar(RequestParams::PARAM_LANGUAGE_ID); - $value->save(); + $value->add(); } } } diff --git a/modules/cms/action/page/PageInfoAction.class.php b/modules/cms/action/page/PageInfoAction.class.php @@ -1,6 +1,7 @@ <?php namespace cms\action\page; use cms\action\Method; +use cms\action\object\ObjectInfoAction; use cms\action\PageAction; use cms\generator\PageGenerator; use cms\generator\Producer; @@ -10,7 +11,11 @@ class PageInfoAction extends PageAction implements Method { public function view() { $this->setTemplateVar('id',$this->page->objectid); - parent::infoView(); + $parentAction = new ObjectInfoAction(); + $parentAction->request = $this->request; + $parentAction->init(); + $parentAction->view(); + $this->page->load(); $this->setTemplateVars( $this->page->getProperties() ); diff --git a/modules/cms/action/page/PageNameAction.class.php b/modules/cms/action/page/PageNameAction.class.php @@ -1,12 +1,17 @@ <?php namespace cms\action\page; use cms\action\Method; +use cms\action\object\ObjectInfoAction; +use cms\action\object\ObjectNameAction; use cms\action\PageAction; use cms\model\BaseObject; use cms\model\Project; class PageNameAction extends PageAction implements Method { + + public function view() { + $languageId = $this->getRequestVar('languageid'); $name = $this->page->getNameForLanguage($languageId); @@ -21,9 +26,14 @@ class PageNameAction extends PageAction implements Method { $project = Project::create( $this->page->projectid ); $this->setTemplateVar( 'folders' , $project->getAllFlatFolders() ); } + + public function post() { - parent::namePost(); // Save name and description + $parentAction = new ObjectNameAction(); + $parentAction->request = $this->request; + $parentAction->init(); + $parentAction->post(); // Save name and description $alias = $this->page->getAliasForLanguage( $this->getRequestId('languageid')); @@ -38,7 +48,7 @@ class PageNameAction extends PageAction implements Method { } else { - $alias->save(); + $alias->persist(); $this->addNotice($alias->getType(), 0, $alias->filename, 'SAVED', 'ok'); } diff --git a/modules/cms/action/pageelement/PageelementRestoreAction.class.php b/modules/cms/action/pageelement/PageelementRestoreAction.class.php @@ -21,7 +21,7 @@ class PageelementRestoreAction extends PageelementAction implements Method { $this->value->release = false; // Inhalt wieder herstellen, in dem er neu gespeichert wird. - $this->value->save(); + $this->value->add(); $this->addNotice('pageelement', 0, $this->value->element->name, 'PAGEELEMENT_USE_FROM_ARCHIVE', Action::NOTICE_OK); } diff --git a/modules/cms/action/profile/ProfileConfirmmailAction.class.php b/modules/cms/action/profile/ProfileConfirmmailAction.class.php @@ -19,7 +19,7 @@ class ProfileConfirmmailAction extends ProfileAction implements Method { // Best�tigungscode stimmt �berein. // E-Mail-Adresse �ndern. $this->user->mail = $newMail; - $this->user->save(); + $this->user->persist(); $this->addNoticeFor( $this->user,Messages::SAVED ); } diff --git a/modules/cms/action/profile/ProfileEditAction.class.php b/modules/cms/action/profile/ProfileEditAction.class.php @@ -58,7 +58,7 @@ class ProfileEditAction extends ProfileAction implements Method { if ( !empty($this->user->fullname) ) { - $this->user->save(); + $this->user->persist(); $this->addNoticeFor( $this->user,Messages::SAVED); } else diff --git a/modules/cms/action/projectlist/ProjectlistAddAction.class.php b/modules/cms/action/projectlist/ProjectlistAddAction.class.php @@ -39,7 +39,7 @@ class ProjectlistAddAction extends ProjectlistAction implements Method { $project = new Project(); $project->name = $name; - $project->add(); + $project->persist(); $this->addNoticeFor($project,Messages::ADDED); } diff --git a/modules/cms/action/template/TemplateAddelAction.class.php b/modules/cms/action/template/TemplateAddelAction.class.php @@ -49,7 +49,7 @@ class TemplateAddelAction extends TemplateAction implements Method { $templateModel = $template->loadTemplateModelFor( $modelId ); $templateModel->load(); $templateModel->src .= "\n".'{{'.$newElement->name.'}}'; - $templateModel->save(); + $templateModel->persist(); } } diff --git a/modules/cms/action/template/TemplateExtensionAction.class.php b/modules/cms/action/template/TemplateExtensionAction.class.php @@ -35,7 +35,7 @@ class TemplateExtensionAction extends TemplateAction implements Method { $templatemodel->extension = $extensions[ $modelId ]; - $templatemodel->save(); + $templatemodel->persist(); } $this->addNotice('template', 0, $this->template->name, 'SAVED', 'ok'); diff --git a/modules/cms/action/template/TemplateSrcAction.class.php b/modules/cms/action/template/TemplateSrcAction.class.php @@ -75,7 +75,7 @@ class TemplateSrcAction extends TemplateAction implements Method { $templatemodel->src = $newSource; $templatemodel->extension = $this->getRequestVar('extension'); - $templatemodel->save(); + $templatemodel->persist(); $this->addNotice('template', 0, $this->template->name, 'SAVED', Action::NOTICE_OK); } diff --git a/modules/cms/action/template/TemplateSrcelementAction.class.php b/modules/cms/action/template/TemplateSrcelementAction.class.php @@ -46,7 +46,7 @@ class TemplateSrcelementAction extends TemplateAction implements Method { throw new ValidationException('type'); } - $tplModel->save(); + $tplModel->persist(); $this->addNoticeFor($this->template,Messages::SAVED); } diff --git a/modules/cms/action/templatelist/TemplatelistAddAction.class.php b/modules/cms/action/templatelist/TemplatelistAddAction.class.php @@ -39,7 +39,7 @@ class TemplatelistAddAction extends TemplatelistAction implements Method { $template = new Template(); $template->projectid = $this->project->projectid; $template->name = $name; - $template->add(); + $template->persist(); $this->addNoticeFor($template, Messages::ADDED); @@ -56,7 +56,7 @@ class TemplatelistAddAction extends TemplatelistAction implements Method { /* @type $element Element */ $element->load(); $element->templateid = $template->templateid; - $element->add(); + $element->persist(); $element->save(); } @@ -71,7 +71,7 @@ class TemplatelistAddAction extends TemplatelistAction implements Method { $newTemplateModel = $template->loadTemplateModelFor( $modelid ); $newTemplateModel->src = $copyTemplateModel->src; $newTemplateModel->extension = $copyTemplateModel->extension; - $newTemplateModel->save(); + $newTemplateModel->persist(); } $this->addNoticeFor( $copyTemplate, Messages::COPIED); diff --git a/modules/cms/action/user/UserPropAction.class.php b/modules/cms/action/user/UserPropAction.class.php @@ -61,7 +61,7 @@ class UserPropAction extends UserAction implements Method { $this->user->style = $this->getRequestVar('style' ); - $this->user->save(); + $this->user->persist(); $this->addNotice('user', 0, $this->user->name, 'SAVED', 'ok'); } } diff --git a/modules/cms/action/userlist/UserlistAddAction.class.php b/modules/cms/action/userlist/UserlistAddAction.class.php @@ -26,7 +26,7 @@ class UserlistAddAction extends UserlistAction implements Method { $user = new User(); $user->name = $name; - $user->add(); + $user->persist(); $this->addNoticeFor($user, Messages::ADDED); } } diff --git a/modules/cms/model/Acl.class.php b/modules/cms/model/Acl.class.php @@ -247,7 +247,7 @@ class Acl extends ModelBase /** * Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile. * - * @param row Ergebniszeile aus ACL-Datenbanktabelle + * @param array row Ergebniszeile aus ACL-Datenbanktabelle */ public function setDatabaseRow( $row ) { @@ -275,7 +275,7 @@ class Acl extends ModelBase /** * Erzeugt eine Liste aller Berechtigungsbits dieser ACL. * - * @return Array (Schluessel=Berechtigungstyp, Wert=boolean) + * @return array (Schluessel=Berechtigungstyp, Wert=boolean) */ public function getProperties() { @@ -396,6 +396,10 @@ class Acl extends ModelBase } + public function save() { + // TODO updating the ACL is not implemented. + } + /** * ACL der Datenbank hinzufügen. */ diff --git a/modules/cms/model/Alias.class.php b/modules/cms/model/Alias.class.php @@ -76,16 +76,13 @@ class Alias extends BaseObject */ public function delete() { - if ( ! $this->isPersistent() ) - return; - $sql = Db::sql( 'DELETE FROM {{alias}} '. ' WHERE id={aliasid}' ); $sql->setInt( 'aliasid',$this->aliasid ); $sql->query(); - $this->objectDelete(); + parent::delete(); } @@ -94,9 +91,6 @@ class Alias extends BaseObject */ public function save() { - if ( ! $this->isPersistent() ) - $this->add(); - $sql = Db::sql('UPDATE {{alias}} SET '. ' link_objectid = {linkobjectid},'. ' languageid = {languageid}'. diff --git a/modules/cms/model/BaseObject.class.php b/modules/cms/model/BaseObject.class.php @@ -6,12 +6,11 @@ namespace cms\model; use cms\base\Configuration; use cms\base\DB as Db; use cms\base\Startup; +use cms\generator\Publisher; use util\ArrayUtils; -use cms\generator\Publish; use phpseclib\Math\BigInteger; use util\text\variables\VariableResolver; use util\YAML; -use template_engine\components\ElseComponent; /** * Base class for all objects in the content tree. @@ -227,7 +226,7 @@ class BaseObject extends ModelBase /** * Strategy for publishing objects. - * @var Publish + * @var Publisher */ public $publisher; @@ -847,15 +846,6 @@ SQL /** * Eigenschaften des Objektes in Datenbank speichern - * @deprecated - */ - public function objectSave( $ignored = true ) - { - self::save(); - } - - /** - * Eigenschaften des Objektes in Datenbank speichern */ public function save() { @@ -961,62 +951,6 @@ SQL } - /** - * Logischen Namen und Beschreibung des Objektes in Datenbank speichern - * (wird von objectSave() automatisch aufgerufen) - * - * @access private - */ - public function ObjectSaveName() - { - $db = \cms\base\DB::get(); - - $sql = $db->sql(<<<SQL -SELECT COUNT(*) FROM {{name}} WHERE objectid ={objectid} AND languageid={languageid} -SQL - ); - $sql->setInt( 'objectid' , $this->objectid ); - $sql->setInt( 'languageid', $this->languageid ); - $count = $sql->getOne(); - - if ($count > 0) - { - $sql = $db->sql( <<<SQL - UPDATE {{name}} SET - name = {name}, - descr = {desc} - WHERE objectid ={objectid} - AND languageid={languageid} -SQL - ); - $sql->setString('name', $this->name); - $sql->setString('desc', $this->desc); - $sql->setInt( 'objectid' , $this->objectid ); - $sql->setInt( 'languageid', $this->languageid ); - $sql->query(); - } - else - { - $sql = $db->sql('SELECT MAX(id) FROM {{name}}'); - $nameid = intval($sql->getOne())+1; - - $sql = $db->sql('INSERT INTO {{name}}'.' (id,objectid,languageid,name,descr)'.' VALUES( {nameid},{objectid},{languageid},{name},{desc} )'); - $sql->setInt ('objectid' , $this->objectid ); - $sql->setInt ('languageid', $this->languageid ); - $sql->setInt ('nameid', $nameid ); - $sql->setString('name' , $this->name); - $sql->setString('desc' , $this->desc); - $sql->query(); - } - } - - - - public function objectDelete() { - self::delete(); - } - - /** * Objekt loeschen. Es muss sichergestellt sein, dass auch das Unterobjekt geloeschet wird. @@ -1073,17 +1007,7 @@ SQL * * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt. */ - function objectAdd() - { - self::add(); - } - - /** - * Objekt hinzufuegen. - * - * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt. - */ - function add() + protected function add() { // Neue Objekt-Id bestimmen $sql = Db::sql('SELECT MAX(id) FROM {{object}}'); @@ -1131,7 +1055,7 @@ SQL $acl->create_folder = true; $acl->create_link = true; - $acl->add(); + $acl->persist(); // Aus dem Eltern-Ordner vererbbare Berechtigungen uebernehmen. $parent = new BaseObject( $this->parentid ); @@ -1142,8 +1066,9 @@ SQL if ( $acl->transmit ) // ACL is vererbbar, also kopieren. { + $acl->aclid = null; $acl->objectid = $this->objectid; - $acl->add(); // ... und hinzufuegen. + $acl->persist(); // ... und hinzufuegen. } } } @@ -1713,7 +1638,7 @@ SQL $name->name = $nam; $name->description = $description; - $name->save(); + $name->persist(); } } @@ -1756,7 +1681,7 @@ SQL /** * Creates an Alias for a specific language. - * @param $languageid could be null for the default alias. + * @param int $languageid could be null for the default alias. * @return Alias * @throws \util\exception\ObjectNotFoundException */ diff --git a/modules/cms/model/File.class.php b/modules/cms/model/File.class.php @@ -22,7 +22,6 @@ namespace cms\model; use cms\base\Configuration; use cms\base\DB as Db; use cms\generator\filter\AbstractFilter; -use cms\generator\PublishPublic; use logger\Logger; use util\cache\FileCache; @@ -456,7 +455,7 @@ class File extends BaseObject $sql->setInt( 'objectid',$this->objectid ); $sql->query(); - $this->objectDelete(); + parent::delete(); } @@ -488,7 +487,7 @@ class File extends BaseObject /** * Einen Dateinamen in Dateiname und Extension aufteilen. - * @param filename Dateiname + * @param string filename Dateiname */ function parse_filename($filename) { @@ -529,13 +528,13 @@ EOF $sql->setInt ('filterid' ,$this->filterid ); $sql->query(); - $this->objectSave(); + parent::save(); } /** * Kopieren des Inhaltes von einer anderen Datei - * @param ID der Datei, von der der Inhalt kopiert werden soll + * @param int ID der Datei, von der der Inhalt kopiert werden soll */ function copyValueFromFile( $otherfileid ) { diff --git a/modules/cms/model/Folder.class.php b/modules/cms/model/Folder.class.php @@ -4,7 +4,6 @@ namespace cms\model; use cms\base\Configuration; use cms\base\DB as Db; -use cms\generator\Publish; use Exception; @@ -84,7 +83,7 @@ class Folder extends BaseObject function save() { - $this->objectSave(); + parent::save(); } @@ -331,7 +330,7 @@ class Folder extends BaseObject /** * Liefert eine Liste von allen Dateien in diesem Ordner. * - * @return Array Schl�ssel=Objekt-Id, Wert=Dateiname + * @return array Schl�ssel=Objekt-Id, Wert=Dateiname */ function getFileFilenames() { @@ -570,8 +569,8 @@ SQL ' WHERE objectid={objectid}' ); $sql->setInt('objectid',$this->objectid); $sql->query(); - - $this->objectDelete(); + + parent::delete(); } else { throw new \RuntimeException('There are children in the folder '.$this->objectid.'.'); @@ -662,14 +661,11 @@ SQL /** * Ermittelt die letzten Änderung in diesem Ordner. - * @return Array[Objektid]=Array()) + * @return array[Objektid]=Array()) */ public function getLastChanges() { - - $db = \cms\base\DB::get(); - - $sql = $db->sql( <<<SQL + $sql = DB::sql( <<<SQL SELECT {{object}}.id as objectid, {{object}}.lastchange_date as lastchange_date, {{object}}.filename as filename, diff --git a/modules/cms/model/Group.class.php b/modules/cms/model/Group.class.php @@ -127,7 +127,7 @@ SQL /** * Rueckgabe aller Eigenschaften - * @return Array + * @return array */ function getProperties() { @@ -310,7 +310,7 @@ SQL * Ermitteln aller Berechtigungen dieser Gruppe.<br> * Diese Daten werden auf der Gruppenseite in der Administration angezeigt. * - * @return unknown + * @return mixed */ function getAllAcls() { @@ -342,17 +342,6 @@ SQL } - - // Berechtigung entfernen - function delRight( $aclid ) - { - $sql = $db->sql('DELETE FROM {{acl}} WHERE id={aclid}'); - $sql->setInt( 'aclid',$aclid ); - - // Datenbankabfrage ausf?hren - $sql->query( $sql ); - } - public function getName() { return $this->name; diff --git a/modules/cms/model/Image.class.php b/modules/cms/model/Image.class.php @@ -83,12 +83,12 @@ class Image extends File * * Diese Methode sollte natuerlich nur bei Bildern ausgefuehrt werden. * - * @param Neue Breite - * @param Neue Hoehe - * @param Bildgr��enfaktor - * @param Altes Format als Integer-Konstante IMG_xxx - * @param Neues Format als Integer-Konstante IMG_xxx - * @param Jpeg-Qualitaet (sofern neues Format = Jpeg) + * @param int Neue Breite + * @param int Neue Hoehe + * @param float Bildgr��enfaktor + * @param int Altes Format als Integer-Konstante IMG_xxx + * @param int Neues Format als Integer-Konstante IMG_xxx + * @param int Jpeg-Qualitaet (sofern neues Format = Jpeg) */ function imageResize( $newWidth,$newHeight,$factor,$oldformat,$newformat,$jpegquality ) { diff --git a/modules/cms/model/Language.class.php b/modules/cms/model/Language.class.php @@ -128,7 +128,7 @@ class Language extends ModelBase /** * Ermitteln aller Eigenschaften dieser Sprache - * @return Array + * @return array */ function getProperties() { diff --git a/modules/cms/model/Link.class.php b/modules/cms/model/Link.class.php @@ -64,7 +64,7 @@ class Link extends BaseObject $sql->query(); - $this->objectDelete(); + parent::delete(); } @@ -83,7 +83,7 @@ class Link extends BaseObject $sql->query(); - $this->objectSave(); + parent::save(); } diff --git a/modules/cms/model/Model.class.php b/modules/cms/model/Model.class.php @@ -112,7 +112,7 @@ class Model extends ModelBase * Alle notwendigen Eigenschaften dieses Projektmodells * werden als Array zurueckgegeben * - * @return Array + * @return array */ function getProperties() { diff --git a/modules/cms/model/ModelBase.class.php b/modules/cms/model/ModelBase.class.php @@ -1,6 +1,9 @@ <?php namespace cms\model; +use LogicException; +use util\text\TextMessage; + abstract class ModelBase { public function __construct() @@ -16,11 +19,73 @@ abstract class ModelBase return get_object_vars( $this ); } + /** + * The logical name of this object. + * + * @return string name + */ public abstract function getName(); + /** + * Loading the instance from the database + */ public abstract function load(); + /** + * Saving the instance to the database + */ + protected abstract function save(); + + /** + * Adding the instance to the database + */ + protected abstract function add(); + + /** + * Delete this instance + */ public abstract function delete(); + /** + * Returns the unique ID of this object. + * + * @return int + */ public abstract function getId(); + + + /** + * Is this instance already persistent in the database? + * + * @return bool + */ + public function isPersistent() + { + return boolval( $this->getId() ); + } + + + /** + * Persist the object in the database + */ + public function persist() + { + if ( ! $this->isPersistent() ) + $this->add(); + + $this->save(); + } + + /** + * Updates the already existing object in the database + * + * @throws LogicException if not persistent + */ + public function update() + { + if ( ! $this->isPersistent() ) + throw new LogicException(TextMessage::create('Object ${0} is not persistent and cannot be updated', [ get_class($this).' '.$this->getName() ]) ); + + $this->save(); + } } diff --git a/modules/cms/model/Name.class.php b/modules/cms/model/Name.class.php @@ -3,6 +3,8 @@ namespace cms\model; +use cms\base\DB; + /** * Darstellung von Name und Beschreibung eines Objektes. * @@ -54,7 +56,7 @@ class Name extends ModelBase */ public function load() { - $db = \cms\base\DB::get(); + $db = DB::get(); $stmt = $db->sql( <<<SQL SELECT id,objectid,name,descr,languageid @@ -91,6 +93,21 @@ SQL } + protected function add() + { + $db = DB::get(); + + $sql = $db->sql('SELECT MAX(id) FROM {{name}}'); + $this->nameid = intval($sql->getOne())+1; + + $sql = $db->sql('INSERT INTO {{name}}'.' (id,objectid,languageid,name,descr)'.' VALUES( {nameid},{objectid},{languageid},{name},{desc} )'); + $sql->setInt ('nameid' , $this->nameid ); + $sql->setInt ('objectid' , $this->objectid ); + $sql->setInt ('languageid', $this->languageid ); + $sql->setString('name' , $this->name); + $sql->setString('desc' , $this->description); + $sql->query(); + } /** * Logischen Namen und Beschreibung des Objektes in Datenbank speichern @@ -98,37 +115,21 @@ SQL */ public function save() { - $db = \cms\base\DB::get(); - - if ( intval($this->nameid) > 0) - { - $sql = $db->sql( <<<SQL - UPDATE {{name}} SET - name = {name}, - descr = {desc} - WHERE objectid ={objectid} - AND languageid={languageid} + $db = DB::get(); + + $sql = $db->sql( <<<SQL + UPDATE {{name}} SET + name = {name}, + descr = {desc} + WHERE objectid ={objectid} + AND languageid={languageid} SQL - ); - $sql->setString('name', $this->name); - $sql->setString('desc', $this->description); - $sql->setInt( 'objectid' , $this->objectid ); - $sql->setInt( 'languageid', $this->languageid ); - $sql->query(); - } - else - { - $sql = $db->sql('SELECT MAX(id) FROM {{name}}'); - $this->nameid = intval($sql->getOne())+1; - - $sql = $db->sql('INSERT INTO {{name}}'.' (id,objectid,languageid,name,descr)'.' VALUES( {nameid},{objectid},{languageid},{name},{desc} )'); - $sql->setInt ('nameid' , $this->nameid ); - $sql->setInt ('objectid' , $this->objectid ); - $sql->setInt ('languageid', $this->languageid ); - $sql->setString('name' , $this->name); - $sql->setString('desc' , $this->description); - $sql->query(); - } + ); + $sql->setString('name', $this->name); + $sql->setString('desc', $this->description); + $sql->setInt( 'objectid' , $this->objectid ); + $sql->setInt( 'languageid', $this->languageid ); + $sql->query(); } diff --git a/modules/cms/model/Page.class.php b/modules/cms/model/Page.class.php @@ -18,13 +18,6 @@ namespace cms\model; // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use cms\base\DB as Db; use cms\generator\PageContext; -use Exception; -use util\exception\GeneratorException; -use util\Mustache; -use cms\generator\PublishPreview;use cms\generator\PublishPublic; -use http\Exception\RuntimeException; -use logger\Logger; -use util\cache\FileCache; /** @@ -197,8 +190,8 @@ SQL ' WHERE objectid={objectid}' ); $sql->setInt('objectid',$this->objectid); $sql->query(); - - $this->objectDelete(); + + parent::delete(); } @@ -224,11 +217,11 @@ SQL $val->load(); // Inhalt nur speichern, wenn vorher vorhanden - if ( $val->valueid != 0 ) + if ( $val->isPersistent() ) { $val->objectid = $this->objectid; $val->pageid = Page::getPageIdFromObjectId( $this->objectid ); - $val->save(); + $val->add(); } } } @@ -248,7 +241,7 @@ SQL $sql->setInt('objectid' ,$this->objectid ); $sql->query(); - $this->objectSave(); + parent::save(); } @@ -308,7 +301,7 @@ SQL /** * Get all elements from this page. - * @return Array + * @return array */ public function getElementIds() { diff --git a/modules/cms/model/Pageelement.class.php b/modules/cms/model/Pageelement.class.php @@ -22,6 +22,8 @@ namespace cms\model; /** * Pageelement. * + * FIXME: Unused? + * * @author Jan Dankert */ @@ -64,5 +66,12 @@ class Pageelement extends ModelBase } + public function save() + { + } + + protected function add() + { + } } diff --git a/modules/cms/model/Project.class.php b/modules/cms/model/Project.class.php @@ -341,14 +341,14 @@ SQL $model = new Model(); $model->projectid = $this->projectid; $model->name = 'html'; - $model->add(); + $model->persist();; // Sprache anlegen $language = new Language(); $language->projectid = $this->projectid; $language->isoCode = 'en'; $language->name = 'english'; - $language->add(); + $language->persist(); // Haupt-Ordner anlegen $folder = new Folder(); @@ -358,20 +358,19 @@ SQL $folder->filename = $this->name; $folder->name = $this->name; $folder->isRoot = true; - $folder->add(); + $folder->persist(); // Template anlegen $template = new Template(); $template->projectid = $this->projectid; $template->name = '#1'; - $template->add(); - $template->save(); + $template->persist(); // Template anlegen $templateModel = $template->loadTemplateModelFor( $model->modelid ); $templateModel->extension = 'html'; $templateModel->src = '<html><body><h1>Hello world</h1><hr><p>Hello, World.</p></body></html>'; - $templateModel->save(); + $templateModel->persist(); // Beispiel-Seite anlegen $page = new Page(); @@ -381,7 +380,7 @@ SQL $page->templateid = $template->templateid; $page->filename = ''; $page->name = 'OpenRat'; - $page->add(); + $page->persist(); } @@ -518,7 +517,7 @@ EOF $lostAndFoundFolder->filename = "lostandfound"; $lostAndFoundFolder->name = 'Lost+found'; $lostAndFoundFolder->parentid = $this->getRootObjectId(); - $lostAndFoundFolder->add(); + $lostAndFoundFolder->persist(); foreach( $idList as $id ) { @@ -938,8 +937,8 @@ SQL * diesem Projekt befinden. * * @see objectClasses/Object#getAllObjectIds() - * @param types Array - * @return Liste von Object-Ids + * @param array types Array + * @return array Liste von Object-Ids */ public function getAllObjectIds( $types=array('folder','page','link','file','image','url','text') ) { diff --git a/modules/cms/model/README.md b/modules/cms/model/README.md @@ -0,0 +1,5 @@ +# Model + +These model classes are 'active records', means that every object is displaying a row in the database. + +See the [Active record pattern](https://en.wikipedia.org/wiki/Active_record_pattern).+ \ No newline at end of file diff --git a/modules/cms/model/Template.class.php b/modules/cms/model/Template.class.php @@ -232,7 +232,7 @@ SQL $element->templateid = $this->templateid; $element->format = Element::ELEMENT_FORMAT_TEXT; $element->writable = true; - $element->add(); + $element->persist(); return $element; } diff --git a/modules/cms/model/TemplateModel.class.php b/modules/cms/model/TemplateModel.class.php @@ -87,9 +87,6 @@ class TemplateModel extends ModelBase */ public function save() { - if ( ! $this->isPersistent() ) - $this->add(); - // Vorlagen-Quelltext existiert für diese Varianten schon. $stmt = Db::sql( 'UPDATE {{templatemodel}}'. ' SET extension={extension},'. diff --git a/modules/cms/model/Url.class.php b/modules/cms/model/Url.class.php @@ -25,7 +25,7 @@ class Url extends BaseObject // Lesen der Verkn�pfung aus der Datenbank function load() { - $db = \cms\base\DB::get(); + $db = Db::get(); $sql = $db->sql( 'SELECT *'. ' FROM {{url}}'. @@ -47,7 +47,7 @@ class Url extends BaseObject */ function delete() { - $db = \cms\base\DB::get(); + $db = Db::get(); $sql = $db->sql( 'DELETE FROM {{url}} '. ' WHERE objectid={objectid}' ); @@ -55,14 +55,14 @@ class Url extends BaseObject $sql->query(); - $this->objectDelete(); + parent::delete(); } public function save() { - $db = \cms\base\DB::get(); + $db = Db::get(); $sql = $db->sql('UPDATE {{url}} SET '. ' url = {url}'. @@ -72,7 +72,7 @@ class Url extends BaseObject $sql->query(); - $this->objectSave(); + parent::save(); } diff --git a/modules/cms/model/User.class.php b/modules/cms/model/User.class.php @@ -416,7 +416,7 @@ SQL /** * Speichern Benutzer in der Datenbank. */ - function save() + protected function save() { $sql = Db::sql( <<<SQL UPDATE {{user}} diff --git a/modules/cms/model/Value.class.php b/modules/cms/model/Value.class.php @@ -288,7 +288,7 @@ SQL /** * Alle Versionen des aktuellen Inhaltes werden ermittelt - * @return Array + * @return array */ function getVersionList() { @@ -337,7 +337,7 @@ SQL /** * Die Anzahl der Versionen des aktuellen Inhaltes wird ermittelt - * @return Array + * @return array */ function getCountVersions() { @@ -438,10 +438,20 @@ SQL $sql->query(); } + + /** + * No function, values are NOT updated, values are only added. + * @return name|void + */ + protected function save() + { + // not implemented, values are only added ("copy on write") + } + /** * Inhalt speichern */ - function save() + public function add() { $stmt = Db::sql( <<<SQL UPDATE {{value}} @@ -614,7 +624,7 @@ SQL /** * Es werden Objekte mit einem Inhalt gesucht. * @param String Suchbegriff - * @return Array Liste der gefundenen Objekt-IDs + * @return array Liste der gefundenen Objekt-IDs */ function getObjectIdsByValue( $text ) { @@ -640,7 +650,7 @@ SQL /** * Es werden Objekte mit einer UserId ermittelt * @param Integer Benutzer-Id der letzten ?nderung - * @return Array Liste der gefundenen Objekt-IDs + * @return array Liste der gefundenen Objekt-IDs */ function getObjectIdsByLastChangeUserId( $userid ) {