openrat-cms

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

commit fb5878341ec5492a5ebc3bdbddaf28b4c7b7ce75
parent 6e93e145bbd2727dd5b2a098842813bf7615a88e
Author: dankert <devnull@localhost>
Date:   Sat, 18 Apr 2009 01:19:09 +0200

Einbau Up-To-Date-Check

Diffstat:
actionClasses/PageelementAction.class.php | 16++++++++++++----
language/de.ini.php | 2++
objectClasses/Value.class.php | 26++++++++++++++++++++++++--
3 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php @@ -154,7 +154,8 @@ class PageelementAction extends Action $this->setTemplateVar('desc' ,$this->value->element->desc ); $this->setTemplateVar('elementid',$this->value->element->elementid); $this->setTemplateVar('type' ,$this->value->element->type ); - + $this->setTemplateVar('value_time',time() ); + $this->value->page = new Page( $this->page->objectid ); $this->value->page->languageid = $this->value->languageid; @@ -863,10 +864,17 @@ class PageelementAction extends Action // Inhalt sofort freigegeben, wenn // - Recht vorhanden // - Freigabe gewuenscht - if ( $value->page->hasRight( ACL_RELEASE ) && $this->getRequestVar('release')!='' ) - $value->publish = true; + if ( $value->page->hasRight( ACL_RELEASE ) && $this->hasRequestVar('release') ) + $value->publish = true; else - $value->publish = false; + $value->publish = false; + + // Up-To-Date-Check + $lastChangeTime = $value->getLastChangeTime(); + if ( $lastChangeTime > $this->getRequestVar('value_time') ) + { + $this->addNotice('pageelement',$value->element->name,'CONCURRENT_VALUE_CHANGE',OR_NOTICE_WARN,array('last_change_time'=>date(lang('DATE_FORMAT'),$lastChangeTime))); + } // Inhalt speichern diff --git a/language/de.ini.php b/language/de.ini.php @@ -862,6 +862,8 @@ NOTICE_USER_ADDED = "Der Benutzer wurde hinzugefügt." NOTICE_USER_ADDED_TO_GROUP = "Die Mitgliedschaften in der Gruppe wurden aktualisiert, {count} Benutzer hinzugefügt." NOTICE_USER_ALREADY_IN_DATABASE = "Der Benutzer ist bereits vorhanden. Bitte wählen Sie einen anderen Benutzernamen." NOTICE_VALUE_SAVED = "Inhalt wurde gespeichert." +NOTICE_CONCURRENT_VALUE_CHANGE="Während Ihrer Bearbeitung ist dieser Inhalt von einem anderen Benutzer um {last_change_time} geändert worden. Ihre Änderungen wurden gespeichert, prüfen Sie jedoch über das Archiv, ob gemachte Änderungen von Ihnen übernommen werden müssen." +NOTICE_CONCURRENT_VALUE_CHANGE_NOT_SAVED="Während Ihrer Bearbeitung ist der Inhalt von einem anderen Benutzer um {last_change_time} geändert worden. Ihre Änderung wird nicht gespeichert." OPENID="Open-ID" OPENID_USER="Open-ID Benutzername" OPTIONS="Optionen" diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php @@ -293,6 +293,28 @@ class Value } + function getLastChangeTime() + { + $db = db_connection(); + + $sql = new Sql( +<<<SQL + SELECT lastchange_date FROM {t_value} + WHERE elementid ={elementid} + AND pageid ={pageid} + AND languageid={languageid} + ORDER BY id DESC +SQL + ); + $sql->setInt( 'elementid' ,$this->element->elementid ); + $sql->setInt( 'pageid' ,$this->pageid ); + $sql->setInt( 'languageid',$this->languageid); + + return $db->getOne( $sql->query ); + } + + + /** * Inhalt freigeben */ @@ -745,11 +767,11 @@ SQL $inhalt = $this->element->defaultText; // Wenn HTML nicht erlaubt und Wiki-Formatierung aktiv, dann einfache HTML-Tags in Wiki umwandeln - if ( !$this->element->html && $this->element->wiki && $conf['wiki']['convert_html'] && $this->page->mimeType()=='text/html' ) + if ( !$this->element->html && $this->element->wiki && $conf['editor']['wiki']['convert_html'] && $this->page->mimeType()=='text/html' ) $inhalt = Text::html2Wiki( $inhalt ); // Wenn Wiki-Formatierung aktiv, dann BB-Code umwandeln - if ( $this->element->wiki && $conf['wiki']['convert_bbcode'] ) + if ( $this->element->wiki && $conf['editor']['wiki']['convert_bbcode'] ) $inhalt = Text::bbCode2Wiki( $inhalt ); // Wenn HTML nicht erlaubt ist, dann die HTML-Tags ersetzen