commit 007f23032d386966da0858484b04eb0412f2142c
parent dc1b0080df80bbf63050ad72a1b41aed0c0cb3e7
Author: Jan Dankert <develop@jandankert.de>
Date: Wed, 8 May 2019 21:49:08 +0200
Statt globalen Konstanten Klassenkonstanten verwenden.
Diffstat:
9 files changed, 1282 insertions(+), 1285 deletions(-)
diff --git a/modules/cms-core/action/ElementAction.class.php b/modules/cms-core/action/ElementAction.class.php
@@ -552,12 +552,12 @@ class ElementAction extends Action
switch( $this->element->typeid )
{
case ELEMENT_TYPE_LINK:
- if ( ! in_array( $o->typeid, array(OR_TYPEID_PAGE,OR_TYPEID_IMAGE,OR_TYPEID_FILE,OR_TYPEID_LINK,OR_TYPEID_URL,OR_TYPEID_TEXT ) ) )
+ if ( ! in_array( $o->typeid, array(BaseObject::TYPEID_PAGE,BaseObject::TYPEID_IMAGE,BaseObject::TYPEID_FILE,BaseObject::TYPEID_LINK,BaseObject::TYPEID_URL,BaseObject::TYPEID_TEXT ) ) )
continue 2;
break;
//Change tobias
case ELEMENT_TYPE_INSERT:
- if ( ! in_array( $o->typeid, array(OR_TYPEID_FOLDER,OR_TYPEID_PAGE,OR_TYPEID_IMAGE,OR_TYPEID_FILE,OR_TYPEID_LINK,OR_TYPEID_URL,OR_TYPEID_TEXT ) ) )
+ if ( ! in_array( $o->typeid, array(BaseObject::TYPEID_FOLDER,BaseObject::TYPEID_PAGE,BaseObject::TYPEID_IMAGE,BaseObject::TYPEID_FILE,BaseObject::TYPEID_LINK,BaseObject::TYPEID_URL,BaseObject::TYPEID_TEXT ) ) )
continue 2;
break;
//Change tobias end
diff --git a/modules/cms-core/model/BaseObject.class.php b/modules/cms-core/model/BaseObject.class.php
@@ -1,1529 +1,1526 @@
<?php
-namespace {
- define('OR_TYPEID_FOLDER',1);
- define('OR_TYPEID_FILE',2);
- define('OR_TYPEID_PAGE',3);
- define('OR_TYPEID_LINK',4);
- define('OR_TYPEID_URL',5);
- define('OR_TYPEID_IMAGE',6);
- define('OR_TYPEID_TEXT',7);
-}
+namespace cms\model;
+
+use cms\publish\Publish;
+use phpseclib\Math\BigInteger;
+use Spyc;
+
+/**
+ * Superklasse fuer Objekte im Projektbaum.
+ *
+ * Dieses Objekt ist die Oberklasse fuer die Klassen Ordner, Datei,
+ * Link, Seite usw.
+ *
+ * @author Jan Dankert
+ */
+class BaseObject
+{
+ const TYPEID_FOLDER = 1;
+ const TYPEID_FILE = 2;
+ const TYPEID_PAGE = 3;
+ const TYPEID_LINK = 4;
+ const TYPEID_URL = 5;
+ const TYPEID_IMAGE = 6;
+ const TYPEID_TEXT = 7;
+
+ /** eindeutige ID dieses Objektes
+ * @see #$objectid
+ * @type Integer
+ */
+ public $id;
+
+ /** eindeutige ID dieses Objektes
+ * @type Integer
+ */
+ public $objectid;
+
+ /** Objekt-ID des Ordners, in dem sich dieses Objekt befindet
+ * Kann "null" oder "0" sein, wenn es sich um den Wurzelordner des Projektes handelt
+ * @see #$isRoot
+ * @type Integer
+ */
+ public $parentid;
+
+ /** Physikalischer Dateiname des Objektes (bei Links nicht gef?llt)
+ * <em>enth?lt nicht die Dateinamen-Erweiterung</em>
+ * @type String
+ */
+ public $filename = '';
-namespace cms\model {
+ /** Logischer (sprachabhaengiger) Name des Objektes
+ * (wird in Tabelle <code>name</code> abgelegt)
+ * @type String
+ * @deprecated use modelclass Name instead
+ */
+ var $name = '';
- use cms\publish\Publish;
- use phpseclib\Math\BigInteger;
- use Spyc;
+ /** Logische (sprachabhaengige) Beschreibung des Objektes
+ * (wird in Tabelle <code>name</code> abgelegt)
+ * @type String
+ * @deprecated use modelclass Name instead
+ */
+ var $description = 'none';
/**
- * Superklasse fuer Objekte im Projektbaum.
- *
- * Dieses Objekt ist die Oberklasse fuer die Klassen Ordner, Datei,
- * Link, Seite usw.
- *
- * @author Jan Dankert
+ * @var string
+ * @deprecated
*/
- class BaseObject
- {
- /** eindeutige ID dieses Objektes
- * @see #$objectid
- * @type Integer
- */
- public $id;
-
- /** eindeutige ID dieses Objektes
- * @type Integer
- */
- public $objectid;
-
- /** Objekt-ID des Ordners, in dem sich dieses Objekt befindet
- * Kann "null" oder "0" sein, wenn es sich um den Wurzelordner des Projektes handelt
- * @see #$isRoot
- * @type Integer
- */
- public $parentid;
-
- /** Physikalischer Dateiname des Objektes (bei Links nicht gef?llt)
- * <em>enth?lt nicht die Dateinamen-Erweiterung</em>
- * @type String
- */
- public $filename = '';
-
- /** Logischer (sprachabhaengiger) Name des Objektes
- * (wird in Tabelle <code>name</code> abgelegt)
- * @type String
- * @deprecated use modelclass Name instead
- */
- var $name = '';
-
- /** Logische (sprachabhaengige) Beschreibung des Objektes
- * (wird in Tabelle <code>name</code> abgelegt)
- * @type String
- * @deprecated use modelclass Name instead
- */
- var $description = 'none';
-
- /**
- * @var string
- * @deprecated
- */
- var $desc = '';
-
- /** Zeitpunkt der Erstellung. Die Variable beinhaltet den Unix-Timestamp.
- * @type Integer
- */
- var $createDate;
-
- /** Zeitpunkt der letzten Aenderung. Die Variable beinhaltet den Unix-Timestamp.
- * @type Integer
- */
- var $lastchangeDate;
-
- /** Benutzer, welcher dieses Objekt erstellt hat.
- * @type User
- */
- public $createUser;
-
- /** Benutzer, welcher dieses Objekt zuletzt geaendert hat.
- * @type User
- */
- public $lastchangeUser;
-
- /**
- * Benutzer, der das Objekt zuletzt veröffentlicht hat.
- * @var User
- */
- public $publishedUser;
- /**
- * Zeitpunkt der letzten Veröffentlichung.
- * @var Integer
- */
- public $publishedDate;
-
-
- public $validFromDate;
- public $validToDate;
-
- /**
- * Kennzeichen, ob Objekt ein Ordner ist
- * @type Boolean
- */
- var $isFolder = false;
-
- /**
- * Kennzeichen, ob Objekt eine binaere Datei ist
- * @type Boolean
- */
- var $isFile = false;
-
- /**
- * Kennzeichen, ob Objekt ein Bild ist
- * @type Boolean
- */
- var $isImage = false;
-
- /**
- * Kennzeichen, ob Objekt ein Text ist
- * @type Boolean
- */
- var $isText = false;
-
- /**
- * Kennzeichen, ob Objekt eine Seite ist
- * @type Boolean
- */
- var $isPage = false;
-
- /**
- * Kennzeichen, ob Objekt eine Verknuepfung (Link) ist
- * @type Boolean
- */
- var $isLink = false;
-
- /**
- * Kennzeichen, ob Objekt eine Verknuepfung (Url) ist
- * @type Boolean
- */
- var $isUrl = false;
-
- /**
- * Kennzeichnet den Typ dieses Objektes.
- * Muss den Inhalt OR_FILE, OR_FOLDER, OR_PAGE oder OR_LINK haben.
- * Vorbelegung mit <code>null</code>.
- * @type Integer
- */
- var $type = null;
-
- /** Kennzeichen ob Objekt den Wurzelordner des Projektes darstellt (parentid ist dann NULL)
- * @type Boolean
- */
- var $isRoot = false;
-
- /** Sprach-ID
- * @see Language
- * @type Integer
- */
- var $languageid;
-
- /**
- * Projektmodell-ID
- * @see Projectmodel
- * @type Integer
- */
- var $modelid;
-
- /**
- * Projekt-ID
- * @see Project
- * @type Integer
- */
- var $projectid;
-
- /**
- * Dateiname der temporaeren Datei
- * @type String
- */
- var $tmpfile;
-
- var $aclMask = null;
-
- public $typeid;
-
- var $parentfolders = array();
-
- /**
- * @type String
- */
- public $settings;
-
- /**
- * Strategy for publishing objects.
- *
- * @var Publish
- */
- public $publisher;
-
- /** <strong>Konstruktor</strong>
- * F?llen des neuen Objektes mit Init-Werten
- * Es werden die Standardwerte aus der Session benutzt, um
- * Sprach-ID, Projektmodell-Id und Projekt-ID zu setzen
- *
- * @param Integer Objekt-ID (optional)
- */
- function __construct($objectid = '')
- {
- global $SESS;
+ var $desc = '';
- if ( is_numeric($objectid) )
- {
- $this->objectid = $objectid;
- $this->id = $objectid;
- }
- }
+ /** Zeitpunkt der Erstellung. Die Variable beinhaltet den Unix-Timestamp.
+ * @type Integer
+ */
+ var $createDate;
+ /** Zeitpunkt der letzten Aenderung. Die Variable beinhaltet den Unix-Timestamp.
+ * @type Integer
+ */
+ var $lastchangeDate;
- // Kompletten Dateinamen des Objektes erzeugen
- function full_filename()
- {
- $path = $this->path();
+ /** Benutzer, welcher dieses Objekt erstellt hat.
+ * @type User
+ */
+ public $createUser;
- if ($path != '')
- $path.= '/';
+ /** Benutzer, welcher dieses Objekt zuletzt geaendert hat.
+ * @type User
+ */
+ public $lastchangeUser;
- $path.= $this->filename();
+ /**
+ * Benutzer, der das Objekt zuletzt veröffentlicht hat.
+ * @var User
+ */
+ public $publishedUser;
+ /**
+ * Zeitpunkt der letzten Veröffentlichung.
+ * @var Integer
+ */
+ public $publishedDate;
- return $path;
- }
- /**
- * Pruefen einer Berechtigung zu diesem Objekt
- */
- public function hasRight( $type )
- {
- if ( is_null($this->aclMask) )
- {
- $user = \Session::getUser();
+ public $validFromDate;
+ public $validToDate;
- if ( $user->isAdmin )
- {
- // Administratoren erhalten eine Maske mit allen Rechten
- $this->aclMask = ACL_READ +
- ACL_WRITE +
- ACL_PROP +
- ACL_DELETE +
- ACL_RELEASE +
- ACL_PUBLISH +
- ACL_CREATE_FOLDER +
- ACL_CREATE_FILE +
- ACL_CREATE_LINK +
- ACL_CREATE_PAGE +
- ACL_GRANT +
- ACL_TRANSMIT;
- }
- else
- {
- $this->aclMask = 0;
+ /**
+ * Kennzeichen, ob Objekt ein Ordner ist
+ * @type Boolean
+ */
+ var $isFolder = false;
- $db = db_connection();
- $sqlGroupClause = $user->getGroupClause();
- $sql = $db->sql( <<<SQL
-SELECT {{acl}}.* FROM {{acl}}
- LEFT JOIN {{object}}
- ON {{object}}.id={{acl}}.objectid
- WHERE objectid={objectid}
- AND ( languageid={languageid} OR languageid IS NULL )
- AND ( {{acl}}.userid={userid} OR $sqlGroupClause
- OR ({{acl}}.userid IS NULL AND {{acl}}.groupid IS NULL) )
-SQL
- );
+ /**
+ * Kennzeichen, ob Objekt eine binaere Datei ist
+ * @type Boolean
+ */
+ var $isFile = false;
- $sql->setInt ( 'languageid' ,$this->languageid );
- $sql->setInt ( 'objectid' ,$this->objectid );
- $sql->setInt ( 'userid' ,$user->userid );
+ /**
+ * Kennzeichen, ob Objekt ein Bild ist
+ * @type Boolean
+ */
+ var $isImage = false;
- foreach($sql->getAll() as $row )
- {
- $acl = new Acl();
- $acl->setDatabaseRow( $row );
+ /**
+ * Kennzeichen, ob Objekt ein Text ist
+ * @type Boolean
+ */
+ var $isText = false;
- $this->aclMask |= $acl->getMask();
- }
- }
- }
+ /**
+ * Kennzeichen, ob Objekt eine Seite ist
+ * @type Boolean
+ */
+ var $isPage = false;
- if ( readonly() )
- // System ist im Nur-Lese-Zustand
- return $type == ACL_READ && $this->aclMask & $type;
- else
- // Ermittelte Maske auswerten
- return $this->aclMask & $type;
- }
+ /**
+ * Kennzeichen, ob Objekt eine Verknuepfung (Link) ist
+ * @type Boolean
+ */
+ var $isLink = false;
+ /**
+ * Kennzeichen, ob Objekt eine Verknuepfung (Url) ist
+ * @type Boolean
+ */
+ var $isUrl = false;
- /**
- * Typ des Objektes ermitteln
- *
- * @return String der Typ des Objektes entweder 'folder','file','page' oder 'link'.
- */
- function getType()
- {
- if ($this->isFolder)
- return OR_TYPE_FOLDER;
- if ($this->isFile)
- return OR_TYPE_FILE;
- if ($this->isImage)
- return OR_TYPE_IMAGE;
- if ($this->isText)
- return OR_TYPE_TEXT;
- if ($this->isPage)
- return OR_TYPE_PAGE;
- if ($this->isLink)
- return OR_TYPE_LINK;
- if ($this->isUrl)
- return OR_TYPE_URL;
-
- return 'unknown';
- }
+ /**
+ * Kennzeichnet den Typ dieses Objektes.
+ * Muss den Inhalt OR_FILE, OR_FOLDER, OR_PAGE oder OR_LINK haben.
+ * Vorbelegung mit <code>null</code>.
+ * @type Integer
+ */
+ var $type = null;
+ /** Kennzeichen ob Objekt den Wurzelordner des Projektes darstellt (parentid ist dann NULL)
+ * @type Boolean
+ */
+ var $isRoot = false;
- /**
- * Eigenschaften des Objektes. Kann durch Unterklassen erweitert werden.
- * @return array
- */
- public function getProperties()
- {
- return Array( 'id' =>$this->objectid,
- 'objectid' =>$this->objectid,
- 'parentid' =>$this->parentid,
- 'filename' =>$this->filename,
- 'name' =>$this->name,
- 'desc' =>$this->desc,
- 'description' =>$this->desc,
- 'create_date' =>$this->createDate,
- 'create_user' =>$this->createUser->getProperties(),
- 'lastchange_date' =>$this->lastchangeDate,
- 'lastchange_user' =>$this->lastchangeUser->getProperties(),
- 'published_date' =>$this->publishedDate,
- 'published_user' =>$this->publishedUser->getProperties(),
- 'isFolder' =>$this->isFolder,
- 'isFile' =>$this->isFile,
- 'isImage' =>$this->isImage,
- 'isText' =>$this->isText,
- 'isLink' =>$this->isLink,
- 'isUrl' =>$this->isUrl,
- 'isPage' =>$this->isPage,
- 'isRoot' =>$this->isRoot,
- 'languageid' =>$this->languageid,
- 'modelid' =>$this->modelid,
- 'projectid' =>$this->projectid,
- 'settings' =>$this->settings,
- 'type' =>$this->getType() );
- }
+ /** Sprach-ID
+ * @see Language
+ * @type Integer
+ */
+ var $languageid;
+ /**
+ * Projektmodell-ID
+ * @see Projectmodel
+ * @type Integer
+ */
+ var $modelid;
- /**
- * Ermitteln des physikalischen Dateipfades, in dem sich das Objekt befindet
- * @return String Pfadangabe, z.B. 'pfad/zu/objekt'
- */
- function path()
- {
- $folder = new Folder($this->parentid);
+ /**
+ * Projekt-ID
+ * @see Project
+ * @type Integer
+ */
+ var $projectid;
- return implode('/', $folder->parentObjectFileNames(false, true));
- }
+ /**
+ * Dateiname der temporaeren Datei
+ * @type String
+ */
+ var $tmpfile;
+ var $aclMask = null;
+ public $typeid;
- /**
- * Creates a slug url out of the filename.
- *
- * @param $filename String Name
- * @return string
- */
- public static function urlify( $filename )
- {
- $slug = $filename;
- $slug = iconv('utf-8', 'ascii//TRANSLIT', $slug);
- $slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $slug);
- $slug = trim($slug, '-');
- $slug = strtolower($slug);
+ var $parentfolders = array();
- return $slug;
- }
+ /**
+ * @type String
+ */
+ public $settings;
+ /**
+ * Strategy for publishing objects.
+ *
+ * @var Publish
+ */
+ public $publisher;
+ /** <strong>Konstruktor</strong>
+ * F?llen des neuen Objektes mit Init-Werten
+ * Es werden die Standardwerte aus der Session benutzt, um
+ * Sprach-ID, Projektmodell-Id und Projekt-ID zu setzen
+ *
+ * @param Integer Objekt-ID (optional)
+ */
+ function __construct($objectid = '')
+ {
+ global $SESS;
- /**
- * Ermitteln des Dateinamens und Rueckgabe desselben
- * @return String Dateiname
- */
- public function filename()
+ if ( is_numeric($objectid) )
{
- global $conf;
+ $this->objectid = $objectid;
+ $this->id = $objectid;
+ }
+ }
- if ( $conf['filename']['edit'] && $this->filename != '' && $this->filename != $this->objectid )
- {
- $this->filename = BaseObject::urlify($this->filename);
- return $this->filename;
- }
- if ( $this->type == OR_TYPE_FOLDER )
- {
- $this->filename = $this->objectid;
- }
- elseif ( $this->orderid == 1 &&
- !empty($conf['filename']['default']) &&
- !$conf['filename']['edit'] )
+ // Kompletten Dateinamen des Objektes erzeugen
+ function full_filename()
+ {
+ $path = $this->path();
+
+ if ($path != '')
+ $path.= '/';
+
+ $path.= $this->filename();
+
+ return $path;
+ }
+
+ /**
+ * Pruefen einer Berechtigung zu diesem Objekt
+ */
+ public function hasRight( $type )
+ {
+ if ( is_null($this->aclMask) )
+ {
+ $user = \Session::getUser();
+
+ if ( $user->isAdmin )
{
- $this->filename = $conf['filename']['default'];
+ // Administratoren erhalten eine Maske mit allen Rechten
+ $this->aclMask = ACL_READ +
+ ACL_WRITE +
+ ACL_PROP +
+ ACL_DELETE +
+ ACL_RELEASE +
+ ACL_PUBLISH +
+ ACL_CREATE_FOLDER +
+ ACL_CREATE_FILE +
+ ACL_CREATE_LINK +
+ ACL_CREATE_PAGE +
+ ACL_GRANT +
+ ACL_TRANSMIT;
}
else
{
- // Filename is not edited, so we are generating a pleasant filename.
- switch( $conf['filename']['style'] )
+ $this->aclMask = 0;
+
+ $db = db_connection();
+ $sqlGroupClause = $user->getGroupClause();
+ $sql = $db->sql( <<<SQL
+SELECT {{acl}}.* FROM {{acl}}
+ LEFT JOIN {{object}}
+ ON {{object}}.id={{acl}}.objectid
+ WHERE objectid={objectid}
+ AND ( languageid={languageid} OR languageid IS NULL )
+ AND ( {{acl}}.userid={userid} OR $sqlGroupClause
+ OR ({{acl}}.userid IS NULL AND {{acl}}.groupid IS NULL) )
+SQL
+ );
+
+ $sql->setInt ( 'languageid' ,$this->languageid );
+ $sql->setInt ( 'objectid' ,$this->objectid );
+ $sql->setInt ( 'userid' ,$user->userid );
+
+ foreach($sql->getAll() as $row )
{
- case 'longid':
- // Eine etwas laengere ID als Dateinamen benutzen
- $this->filename = base_convert(str_pad($this->objectid,6,'a'),11,10);
- break;
-
- case 'short':
- // So kurz wie moeglich: Erhoehen der Basis vom 10 auf 36.
- // Beispiele:
- // 1 -> 1
- // 10 -> a
- $this->filename = base_convert($this->objectid,10,36);
- break;
-
- case 'md5':
- // MD5-Summe als Dateinamen verwenden
- // Achtung: Kollisionen sind unwahrscheinlich, aber theoretisch möglich.
- $this->filename = md5(md5($this->objectid));
- break;
-
- case 'ss':
- // Imitieren von "StoryServer" URLs. Wers braucht.
- $this->filename = '0,'.
- base_convert(str_pad($this->parentid,3,'a'),11,10).
- ','.
- base_convert(str_pad($this->objectid,7,'a'),11,10).
- ',00';
- break;
-
- case 'title':
- // Achtung: Kollisionen sind möglich.
- // COLLISION ALARM! THIS IS NOT A GOOD IDEA!
- $this->filename = BaseObject::urlify($this->name);
- break;
-
- case 'id':
- default:
- // Einfach die Objekt-Id als Dateinamen verwenden.
- $this->filename = $this->objectid;
- break;
+ $acl = new Acl();
+ $acl->setDatabaseRow( $row );
+ $this->aclMask |= $acl->getMask();
}
}
-
- return $this->filename;
}
+ if ( readonly() )
+ // System ist im Nur-Lese-Zustand
+ return $type == ACL_READ && $this->aclMask & $type;
+ else
+ // Ermittelte Maske auswerten
+ return $this->aclMask & $type;
+ }
- /**
- * Stellt fest, ob das Objekt mit der angegebenen Id existiert.
- */
- public static function available( $objectid )
- {
- $db = db_connection();
+ /**
+ * Typ des Objektes ermitteln
+ *
+ * @return String der Typ des Objektes entweder 'folder','file','page' oder 'link'.
+ */
+ function getType()
+ {
+ if ($this->isFolder)
+ return OR_TYPE_FOLDER;
+ if ($this->isFile)
+ return OR_TYPE_FILE;
+ if ($this->isImage)
+ return OR_TYPE_IMAGE;
+ if ($this->isText)
+ return OR_TYPE_TEXT;
+ if ($this->isPage)
+ return OR_TYPE_PAGE;
+ if ($this->isLink)
+ return OR_TYPE_LINK;
+ if ($this->isUrl)
+ return OR_TYPE_URL;
+
+ return 'unknown';
+ }
- // Vielleicht k�nnen wir uns den DB-Zugriff auch ganz sparen.
- if ( !is_numeric($objectid) || $objectid <= 0 )
- return false; // Objekt-Id ung�ltig.
- $sql = $db->sql('SELECT 1 FROM {{object}} '.
- ' WHERE id={objectid}');
- $sql->setInt('objectid' , $objectid );
+ /**
+ * Eigenschaften des Objektes. Kann durch Unterklassen erweitert werden.
+ * @return array
+ */
+ public function getProperties()
+ {
+ return Array( 'id' =>$this->objectid,
+ 'objectid' =>$this->objectid,
+ 'parentid' =>$this->parentid,
+ 'filename' =>$this->filename,
+ 'name' =>$this->name,
+ 'desc' =>$this->desc,
+ 'description' =>$this->desc,
+ 'create_date' =>$this->createDate,
+ 'create_user' =>$this->createUser->getProperties(),
+ 'lastchange_date' =>$this->lastchangeDate,
+ 'lastchange_user' =>$this->lastchangeUser->getProperties(),
+ 'published_date' =>$this->publishedDate,
+ 'published_user' =>$this->publishedUser->getProperties(),
+ 'isFolder' =>$this->isFolder,
+ 'isFile' =>$this->isFile,
+ 'isImage' =>$this->isImage,
+ 'isText' =>$this->isText,
+ 'isLink' =>$this->isLink,
+ 'isUrl' =>$this->isUrl,
+ 'isPage' =>$this->isPage,
+ 'isRoot' =>$this->isRoot,
+ 'languageid' =>$this->languageid,
+ 'modelid' =>$this->modelid,
+ 'projectid' =>$this->projectid,
+ 'settings' =>$this->settings,
+ 'type' =>$this->getType() );
+ }
- return intval($sql->getOne()) == 1;
- }
+ /**
+ * Ermitteln des physikalischen Dateipfades, in dem sich das Objekt befindet
+ * @return String Pfadangabe, z.B. 'pfad/zu/objekt'
+ */
+ function path()
+ {
+ $folder = new Folder($this->parentid);
- /**
- * Lesen der Eigenschaften aus der Datenbank
- * Es werden
- * - die sprachunabh?ngigen Daten wie Dateiname, Typ sowie Erstellungs- und ?nderungsdatum geladen
- * - die sprachabh?ngigen Daten wie Name und Beschreibung geladen
- * @throws \ObjectNotFoundException
- */
- function objectLoad()
+ return implode('/', $folder->parentObjectFileNames(false, true));
+ }
+
+
+
+ /**
+ * Creates a slug url out of the filename.
+ *
+ * @param $filename String Name
+ * @return string
+ */
+ public static function urlify( $filename )
+ {
+ $slug = $filename;
+ $slug = iconv('utf-8', 'ascii//TRANSLIT', $slug);
+ $slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $slug);
+ $slug = trim($slug, '-');
+ $slug = strtolower($slug);
+
+ return $slug;
+ }
+
+
+
+ /**
+ * Ermitteln des Dateinamens und Rueckgabe desselben
+ * @return String Dateiname
+ */
+ public function filename()
+ {
+ global $conf;
+
+ if ( $conf['filename']['edit'] && $this->filename != '' && $this->filename != $this->objectid )
{
- $db = db_connection();
-
- $stmt = $db->sql('SELECT {{object}}.*,' .
- ' {{name}}.name,{{name}}.descr,'.
- ' lastchangeuser.name as lastchange_username, '.
- ' lastchangeuser.fullname as lastchange_userfullname, '.
- ' lastchangeuser.mail as lastchange_usermail, '.
- ' publisheduser.name as published_username, '.
- ' publisheduser.fullname as published_userfullname, '.
- ' publisheduser.mail as published_usermail, '.
- ' createuser.name as create_username, '.
- ' createuser.fullname as create_userfullname, '.
- ' createuser.mail as create_usermail '.
- ' FROM {{object}}'.
- ' LEFT JOIN {{name}} '.
- ' ON {{object}}.id={{name}}.objectid AND {{name}}.languageid={languageid} '.
- ' LEFT JOIN {{user}} as lastchangeuser '.
- ' ON {{object}}.lastchange_userid=lastchangeuser.id '.
- ' LEFT JOIN {{user}} as publisheduser '.
- ' ON {{object}}.published_userid=publisheduser.id '.
- ' LEFT JOIN {{user}} as createuser '.
- ' ON {{object}}.create_userid=createuser.id '.
- ' WHERE {{object}}.id={objectid}');
- $stmt->setInt('languageid', $this->languageid);
- $stmt->setInt('objectid' , $this->objectid );
-
- $row = $stmt->getRow();
-
- if (count($row) == 0)
- throw new \ObjectNotFoundException('object '.$this->objectid.' not found');
-
- $this->setDatabaseRow( $row );
+ $this->filename = self::urlify($this->filename);
+ return $this->filename;
}
-
- /**
- * Lesen der Eigenschaften aus der Datenbank
- * Es werden
- * - die sprachunabhaengigen Daten wie Dateiname, Typ sowie Erstellungs- und Aenderungsdatum geladen
- */
- function objectLoadRaw()
+ if ( $this->type == OR_TYPE_FOLDER )
+ {
+ $this->filename = $this->objectid;
+ }
+ elseif ( $this->orderid == 1 &&
+ !empty($conf['filename']['default']) &&
+ !$conf['filename']['edit'] )
+ {
+ $this->filename = $conf['filename']['default'];
+ }
+ else
{
- global $SESS;
- $db = db_connection();
+ // Filename is not edited, so we are generating a pleasant filename.
+ switch( $conf['filename']['style'] )
+ {
+ case 'longid':
+ // Eine etwas laengere ID als Dateinamen benutzen
+ $this->filename = base_convert(str_pad($this->objectid,6,'a'),11,10);
+ break;
+
+ case 'short':
+ // So kurz wie moeglich: Erhoehen der Basis vom 10 auf 36.
+ // Beispiele:
+ // 1 -> 1
+ // 10 -> a
+ $this->filename = base_convert($this->objectid,10,36);
+ break;
+
+ case 'md5':
+ // MD5-Summe als Dateinamen verwenden
+ // Achtung: Kollisionen sind unwahrscheinlich, aber theoretisch möglich.
+ $this->filename = md5(md5($this->objectid));
+ break;
+
+ case 'ss':
+ // Imitieren von "StoryServer" URLs. Wers braucht.
+ $this->filename = '0,'.
+ base_convert(str_pad($this->parentid,3,'a'),11,10).
+ ','.
+ base_convert(str_pad($this->objectid,7,'a'),11,10).
+ ',00';
+ break;
+
+ case 'title':
+ // Achtung: Kollisionen sind möglich.
+ // COLLISION ALARM! THIS IS NOT A GOOD IDEA!
+ $this->filename = self::urlify($this->name);
+ break;
+
+ case 'id':
+ default:
+ // Einfach die Objekt-Id als Dateinamen verwenden.
+ $this->filename = $this->objectid;
+ break;
- $sql = $db->sql('SELECT * FROM {{object}}'.
- ' WHERE {{object}}.id={objectid}');
- $sql->setInt('objectid' , $this->objectid );
- $row = $sql->getRow();
+ }
+ }
- if (count($row) == 0)
- throw new \ObjectNotFoundException('objectid not found: '.$this->objectid);
+ return $this->filename;
+ }
- $this->parentid = $row['parentid' ];
- $this->filename = $row['filename' ];
- $this->projectid = $row['projectid'];
- if ( intval($this->parentid) == 0 )
- $this->isRoot = true;
- else
- $this->isRoot = false;
- $this->name = 'n/a';
+ /**
+ * Stellt fest, ob das Objekt mit der angegebenen Id existiert.
+ */
+ public static function available( $objectid )
+ {
+ $db = db_connection();
- $this->create_date = $row['create_date'];
- $this->create_userid = $row['create_userid'];
- $this->lastchange_date = $row['lastchange_date'];
- $this->lastchange_userid = $row['lastchange_userid'];
+ // Vielleicht k�nnen wir uns den DB-Zugriff auch ganz sparen.
+ if ( !is_numeric($objectid) || $objectid <= 0 )
+ return false; // Objekt-Id ung�ltig.
- $this->isFolder = ( $row['typeid'] == OR_TYPEID_FOLDER );
- $this->isFile = ( $row['typeid'] == OR_TYPEID_FILE );
- $this->isImage = ( $row['typeid'] == OR_TYPEID_IMAGE );
- $this->isText = ( $row['typeid'] == OR_TYPEID_TEXT );
- $this->isPage = ( $row['typeid'] == OR_TYPEID_PAGE );
- $this->isLink = ( $row['typeid'] == OR_TYPEID_LINK );
- $this->isUrl = ( $row['typeid'] == OR_TYPEID_URL );
+ $sql = $db->sql('SELECT 1 FROM {{object}} '.
+ ' WHERE id={objectid}');
+ $sql->setInt('objectid' , $objectid );
- }
+ return intval($sql->getOne()) == 1;
+ }
- /**
- * Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile
- *
- * @param array Ergebniszeile aus Datenbanktabelle
- */
- public function setDatabaseRow( $row )
- {
- if ( count($row)==0 )
- throw new \LogicException('setDatabaseRow() got empty array, oid='.$this->objectid);
+ /**
+ * Lesen der Eigenschaften aus der Datenbank
+ * Es werden
+ * - die sprachunabh?ngigen Daten wie Dateiname, Typ sowie Erstellungs- und ?nderungsdatum geladen
+ * - die sprachabh?ngigen Daten wie Name und Beschreibung geladen
+ * @throws \ObjectNotFoundException
+ */
+ function objectLoad()
+ {
+ $db = db_connection();
+
+ $stmt = $db->sql('SELECT {{object}}.*,' .
+ ' {{name}}.name,{{name}}.descr,'.
+ ' lastchangeuser.name as lastchange_username, '.
+ ' lastchangeuser.fullname as lastchange_userfullname, '.
+ ' lastchangeuser.mail as lastchange_usermail, '.
+ ' publisheduser.name as published_username, '.
+ ' publisheduser.fullname as published_userfullname, '.
+ ' publisheduser.mail as published_usermail, '.
+ ' createuser.name as create_username, '.
+ ' createuser.fullname as create_userfullname, '.
+ ' createuser.mail as create_usermail '.
+ ' FROM {{object}}'.
+ ' LEFT JOIN {{name}} '.
+ ' ON {{object}}.id={{name}}.objectid AND {{name}}.languageid={languageid} '.
+ ' LEFT JOIN {{user}} as lastchangeuser '.
+ ' ON {{object}}.lastchange_userid=lastchangeuser.id '.
+ ' LEFT JOIN {{user}} as publisheduser '.
+ ' ON {{object}}.published_userid=publisheduser.id '.
+ ' LEFT JOIN {{user}} as createuser '.
+ ' ON {{object}}.create_userid=createuser.id '.
+ ' WHERE {{object}}.id={objectid}');
+ $stmt->setInt('languageid', $this->languageid);
+ $stmt->setInt('objectid' , $this->objectid );
+
+ $row = $stmt->getRow();
+
+ if (count($row) == 0)
+ throw new \ObjectNotFoundException('object '.$this->objectid.' not found');
+
+ $this->setDatabaseRow( $row );
+ }
- $this->parentid = $row['parentid' ];
- $this->projectid = $row['projectid'];
- $this->filename = $row['filename' ];
- $this->orderid = $row['orderid' ];
- if ( intval($this->parentid) == 0 )
- $this->isRoot = true;
- else
- $this->isRoot = false;
+ /**
+ * Lesen der Eigenschaften aus der Datenbank
+ * Es werden
+ * - die sprachunabhaengigen Daten wie Dateiname, Typ sowie Erstellungs- und Aenderungsdatum geladen
+ */
+ function objectLoadRaw()
+ {
+ global $SESS;
+ $db = db_connection();
- $this->createDate = $row['create_date' ];
- $this->lastchangeDate = $row['lastchange_date'];
- $this->publishedDate = $row['published_date' ];
+ $sql = $db->sql('SELECT * FROM {{object}}'.
+ ' WHERE {{object}}.id={objectid}');
+ $sql->setInt('objectid' , $this->objectid );
+ $row = $sql->getRow();
- $this->validFromDate = $row['valid_from' ];
- $this->validToDate = $row['valid_to' ];
+ if (count($row) == 0)
+ throw new \ObjectNotFoundException('objectid not found: '.$this->objectid);
- $this->createUser = new User();
- $this->createUser->userid = $row['create_userid' ];
- if ( !empty($row['create_username']) )
- {
- $this->createUser->name = $row['create_username' ];
- $this->createUser->fullname = $row['create_userfullname' ];
- $this->createUser->mail = $row['create_usermail' ];
- }
+ $this->parentid = $row['parentid' ];
+ $this->filename = $row['filename' ];
+ $this->projectid = $row['projectid'];
- $this->lastchangeUser = new User();
- $this->lastchangeUser->userid = $row['lastchange_userid' ];
+ if ( intval($this->parentid) == 0 )
+ $this->isRoot = true;
+ else
+ $this->isRoot = false;
- if ( !empty($row['lastchange_username']) )
- {
- $this->lastchangeUser->name = $row['lastchange_username' ];
- $this->lastchangeUser->fullname = $row['lastchange_userfullname'];
- $this->lastchangeUser->mail = $row['lastchange_usermail' ];
- }
+ $this->name = 'n/a';
- $this->publishedUser = new User();
- $this->publishedUser->userid = $row['published_userid' ];
+ $this->create_date = $row['create_date'];
+ $this->create_userid = $row['create_userid'];
+ $this->lastchange_date = $row['lastchange_date'];
+ $this->lastchange_userid = $row['lastchange_userid'];
- if ( !empty($row['published_username']) )
- {
- $this->publishedUser->name = $row['published_username' ];
- $this->publishedUser->fullname = $row['published_userfullname'];
- $this->publishedUser->mail = $row['published_usermail' ];
- }
+ $this->isFolder = ( $row['typeid'] == self::TYPEID_FOLDER );
+ $this->isFile = ( $row['typeid'] == self::TYPEID_FILE );
+ $this->isImage = ( $row['typeid'] == self::TYPEID_IMAGE );
+ $this->isText = ( $row['typeid'] == self::TYPEID_TEXT );
+ $this->isPage = ( $row['typeid'] == self::TYPEID_PAGE );
+ $this->isLink = ( $row['typeid'] == self::TYPEID_LINK );
+ $this->isUrl = ( $row['typeid'] == self::TYPEID_URL );
- $this->typeid = $row['typeid'];
+ }
- $this->isFolder = ( $row['typeid'] == OR_TYPEID_FOLDER );
- $this->isFile = ( $row['typeid'] == OR_TYPEID_FILE );
- $this->isImage = ( $row['typeid'] == OR_TYPEID_IMAGE );
- $this->isText = ( $row['typeid'] == OR_TYPEID_TEXT );
- $this->isPage = ( $row['typeid'] == OR_TYPEID_PAGE );
- $this->isLink = ( $row['typeid'] == OR_TYPEID_LINK );
- $this->isUrl = ( $row['typeid'] == OR_TYPEID_URL );
- if ( $this->isRoot )
- {
- $this->name = $row['name' ];
- $this->desc = '';
- $this->description = '';
- }
- else
- {
- $this->name = $row['name' ];
- $this->desc = $row['descr'];
- $this->description = $row['descr'];
- }
+ /**
+ * Setzt die Eigenschaften des Objektes mit einer Datenbank-Ergebniszeile
+ *
+ * @param array Ergebniszeile aus Datenbanktabelle
+ */
+ public function setDatabaseRow( $row )
+ {
+ if ( count($row)==0 )
+ throw new \LogicException('setDatabaseRow() got empty array, oid='.$this->objectid);
- $this->settings = $row['settings'];
+ $this->parentid = $row['parentid' ];
+ $this->projectid = $row['projectid'];
+ $this->filename = $row['filename' ];
+ $this->orderid = $row['orderid' ];
- $this->checkName();
- }
+ if ( intval($this->parentid) == 0 )
+ $this->isRoot = true;
+ else
+ $this->isRoot = false;
+ $this->createDate = $row['create_date' ];
+ $this->lastchangeDate = $row['lastchange_date'];
+ $this->publishedDate = $row['published_date' ];
+ $this->validFromDate = $row['valid_from' ];
+ $this->validToDate = $row['valid_to' ];
- /**
- * Laden des Objektes
- */
- public function load()
+ $this->createUser = new User();
+ $this->createUser->userid = $row['create_userid' ];
+ if ( !empty($row['create_username']) )
{
- return self::objectLoad();
+ $this->createUser->name = $row['create_username' ];
+ $this->createUser->fullname = $row['create_userfullname' ];
+ $this->createUser->mail = $row['create_usermail' ];
}
+ $this->lastchangeUser = new User();
+ $this->lastchangeUser->userid = $row['lastchange_userid' ];
- /**
- * Eigenschaften des Objektes in Datenbank speichern
- * @deprecated
- */
- public function objectSave( $ignored = true )
+ if ( !empty($row['lastchange_username']) )
{
- self::save();
+ $this->lastchangeUser->name = $row['lastchange_username' ];
+ $this->lastchangeUser->fullname = $row['lastchange_userfullname'];
+ $this->lastchangeUser->mail = $row['lastchange_usermail' ];
}
- /**
- * Eigenschaften des Objektes in Datenbank speichern
- */
- public function save()
+ $this->publishedUser = new User();
+ $this->publishedUser->userid = $row['published_userid' ];
+
+ if ( !empty($row['published_username']) )
{
- $this->setTimestamp();
- $this->checkFilename();
+ $this->publishedUser->name = $row['published_username' ];
+ $this->publishedUser->fullname = $row['published_userfullname'];
+ $this->publishedUser->mail = $row['published_usermail' ];
+ }
- $stmt = db()->sql( <<<SQL
-UPDATE {{object}} SET
- parentid = {parentid},
- lastchange_date = {time} ,
- lastchange_userid = {userid} ,
- filename = {filename},
- valid_from = {validFrom},
- valid_to = {validTo},
- settings = {settings}
- WHERE id={objectid}
-SQL
- );
+ $this->typeid = $row['typeid'];
+ $this->isFolder = ( $row['typeid'] == self::TYPEID_FOLDER );
+ $this->isFile = ( $row['typeid'] == self::TYPEID_FILE );
+ $this->isImage = ( $row['typeid'] == self::TYPEID_IMAGE );
+ $this->isText = ( $row['typeid'] == self::TYPEID_TEXT );
+ $this->isPage = ( $row['typeid'] == self::TYPEID_PAGE );
+ $this->isLink = ( $row['typeid'] == self::TYPEID_LINK );
+ $this->isUrl = ( $row['typeid'] == self::TYPEID_URL );
- if ( $this->isRoot )
- $stmt->setNull('parentid');
- else $stmt->setInt ('parentid',$this->parentid );
+ if ( $this->isRoot )
+ {
+ $this->name = $row['name' ];
+ $this->desc = '';
+ $this->description = '';
+ }
+ else
+ {
+ $this->name = $row['name' ];
+ $this->desc = $row['descr'];
+ $this->description = $row['descr'];
+ }
+ $this->settings = $row['settings'];
- $user = \Session::getUser();
- $this->lastchangeUser = $user;
- $this->lastchangeDate = now();
- $stmt->setInt ('time' , $this->lastchangeDate );
- $stmt->setInt ('userid' , $this->lastchangeUser->userid );
- $stmt->setString('filename' , $this->filename );
- $stmt->setString('settings' , $this->settings );
- $stmt->setInt ('validFrom', $this->validFromDate );
- $stmt->setInt ('validTo' , $this->validToDate );
- $stmt->setInt ('objectid' , $this->objectid );
+ $this->checkName();
+ }
- $stmt->query();
- $this->setTimestamp();
- }
+ /**
+ * Laden des Objektes
+ */
+ public function load()
+ {
+ return self::objectLoad();
+ }
+ /**
+ * Eigenschaften des Objektes in Datenbank speichern
+ * @deprecated
+ */
+ public function objectSave( $ignored = true )
+ {
+ self::save();
+ }
- /**
- * Aenderungsdatum auf Systemzeit setzen
- */
- public function setTimestamp()
- {
- $db = db_connection();
+ /**
+ * Eigenschaften des Objektes in Datenbank speichern
+ */
+ public function save()
+ {
+ $this->setTimestamp();
+ $this->checkFilename();
- $sql = $db->sql('UPDATE {{object}} SET '.
- ' lastchange_date = {time} ,'.
- ' lastchange_userid = {userid} '.
- ' WHERE id={objectid}');
+ $stmt = db()->sql( <<<SQL
+UPDATE {{object}} SET
+ parentid = {parentid},
+ lastchange_date = {time} ,
+ lastchange_userid = {userid} ,
+ filename = {filename},
+ valid_from = {validFrom},
+ valid_to = {validTo},
+ settings = {settings}
+WHERE id={objectid}
+SQL
+ );
- $user = \Session::getUser();
- $this->lastchangeUser = $user;
- $this->lastchangeDate = now();
- $sql->setInt ('userid' ,$this->lastchangeUser->userid );
- $sql->setInt ('objectid',$this->objectid );
- $sql->setInt ('time' ,$this->lastchangeDate );
+ if ( $this->isRoot )
+ $stmt->setNull('parentid');
+ else $stmt->setInt ('parentid',$this->parentid );
- $sql->query();
- }
+ $user = \Session::getUser();
+ $this->lastchangeUser = $user;
+ $this->lastchangeDate = now();
+ $stmt->setInt ('time' , $this->lastchangeDate );
+ $stmt->setInt ('userid' , $this->lastchangeUser->userid );
+ $stmt->setString('filename' , $this->filename );
+ $stmt->setString('settings' , $this->settings );
+ $stmt->setInt ('validFrom', $this->validFromDate );
+ $stmt->setInt ('validTo' , $this->validToDate );
+ $stmt->setInt ('objectid' , $this->objectid );
- public function setCreationTimestamp()
- {
- $db = db_connection();
+ $stmt->query();
- $sql = $db->sql('UPDATE {{object}} SET '.
- ' create_date = {time} '.
- ' WHERE id={objectid}');
+ $this->setTimestamp();
+ }
- $sql->setInt ('objectid',$this->objectid );
- $sql->setInt ('time' ,$this->createDate );
- $sql->query();
- }
+ /**
+ * Aenderungsdatum auf Systemzeit setzen
+ */
+ public function setTimestamp()
+ {
+ $db = db_connection();
- public function setPublishedTimestamp()
- {
- $db = db_connection();
+ $sql = $db->sql('UPDATE {{object}} SET '.
+ ' lastchange_date = {time} ,'.
+ ' lastchange_userid = {userid} '.
+ ' WHERE id={objectid}');
- $sql = $db->sql('UPDATE {{object}} SET '.
- ' published_date = {time} ,'.
- ' published_userid = {userid} '.
- ' WHERE id={objectid}');
+ $user = \Session::getUser();
+ $this->lastchangeUser = $user;
+ $this->lastchangeDate = now();
- $user = \Session::getUser();
- $this->publishedUser = $user;
- $this->publishedDate = now();
+ $sql->setInt ('userid' ,$this->lastchangeUser->userid );
+ $sql->setInt ('objectid',$this->objectid );
+ $sql->setInt ('time' ,$this->lastchangeDate );
- $sql->setInt ('userid' ,$this->publishedUser->userid );
- $sql->setInt ('objectid',$this->objectid );
- $sql->setInt ('time' ,$this->publishedDate );
+ $sql->query();
- $sql->query();
- }
+ }
- /**
- * Logischen Namen und Beschreibung des Objektes in Datenbank speichern
- * (wird von objectSave() automatisch aufgerufen)
- *
- * @access private
- */
- public function ObjectSaveName()
- {
- $db = db_connection();
+ public function setCreationTimestamp()
+ {
+ $db = db_connection();
- $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();
+ $sql = $db->sql('UPDATE {{object}} SET '.
+ ' create_date = {time} '.
+ ' WHERE id={objectid}');
- 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();
- }
- }
+ $sql->setInt ('objectid',$this->objectid );
+ $sql->setInt ('time' ,$this->createDate );
- /**
- * Objekt loeschen. Es muss sichergestellt sein, dass auch das Unterobjekt geloeschet wird.
- * Diese Methode wird daher normalerweise nur vom Unterobjekt augerufen
- * @access protected
- */
- public function objectDelete()
- {
- $db = db_connection();
+ $sql->query();
+ }
- $sql = $db->sql( 'UPDATE {{element}} '.
- ' SET default_objectid=NULL '.
- ' WHERE default_objectid={objectid}' );
- $sql->setInt('objectid',$this->objectid);
- $sql->query();
- $sql = $db->sql( 'UPDATE {{value}} '.
- ' SET linkobjectid=NULL '.
- ' WHERE linkobjectid={objectid}' );
- $sql->setInt('objectid',$this->objectid);
- $sql->query();
+ public function setPublishedTimestamp()
+ {
+ $db = db_connection();
- $sql = $db->sql( 'UPDATE {{link}} '.
- ' SET link_objectid=NULL '.
- ' WHERE link_objectid={objectid}' );
- $sql->setInt('objectid',$this->objectid);
- $sql->query();
+ $sql = $db->sql('UPDATE {{object}} SET '.
+ ' published_date = {time} ,'.
+ ' published_userid = {userid} '.
+ ' WHERE id={objectid}');
+ $user = \Session::getUser();
+ $this->publishedUser = $user;
+ $this->publishedDate = now();
- // Objekt-Namen l?schen
- $sql = $db->sql('DELETE FROM {{name}} WHERE objectid={objectid}');
- $sql->setInt('objectid', $this->objectid);
- $sql->query();
+ $sql->setInt ('userid' ,$this->publishedUser->userid );
+ $sql->setInt ('objectid',$this->objectid );
+ $sql->setInt ('time' ,$this->publishedDate );
- // ACLs loeschen
- $this->deleteAllACLs();
+ $sql->query();
+ }
- // Objekt l?schen
- $sql = $db->sql('DELETE FROM {{object}} WHERE id={objectid}');
- $sql->setInt('objectid', $this->objectid);
- $sql->query();
- }
+ /**
+ * Logischen Namen und Beschreibung des Objektes in Datenbank speichern
+ * (wird von objectSave() automatisch aufgerufen)
+ *
+ * @access private
+ */
+ public function ObjectSaveName()
+ {
+ $db = db_connection();
+
+ $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();
- /**
- * Objekt hinzufuegen.
- *
- * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt.
- */
- function objectAdd()
+ if ($count > 0)
{
- self::add();
+ $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();
}
-
- /**
- * Objekt hinzufuegen.
- *
- * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt.
- */
- function add()
+ else
{
- // Neue Objekt-Id bestimmen
- $sql = db()->sql('SELECT MAX(id) FROM {{object}}');
- $this->objectid = intval($sql->getOne())+1;
-
- $this->checkFilename();
- $sql = db()->sql('INSERT INTO {{object}}'.
- ' (id,parentid,projectid,filename,orderid,create_date,create_userid,lastchange_date,lastchange_userid,typeid,settings)'.
- ' VALUES( {objectid},{parentid},{projectid},{filename},{orderid},{time},{createuserid},{createtime},{userid},{typeid},\'\' )');
-
- if ( $this->isRoot )
- $sql->setNull('parentid');
- else $sql->setInt ('parentid',$this->parentid );
-
- $sql->setInt ('objectid' , $this->objectid );
- $sql->setString('filename' , $this->filename );
- $sql->setString('projectid', $this->projectid);
- $sql->setInt ('orderid' , 99999 );
- $sql->setInt ('time' , now() );
- $user = \Session::getUser();
- $sql->setInt ('createuserid' , $user->userid );
- $sql->setInt ('createtime' , now() );
- $user = \Session::getUser();
- $sql->setInt ('userid' , $user->userid );
-
- $sql->setInt( 'typeid',$this->getTypeid());
-
+ $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();
+ }
+ }
- // Standard-Rechte fuer dieses neue Objekt setzen.
- // Der angemeldete Benutzer erhaelt alle Rechte auf
- // das neue Objekt. Legitim, denn er hat es ja angelegt.
- $acl = new Acl();
- $acl->userid = $user->userid;
- $acl->objectid = $this->objectid;
-
- $acl->read = true;
- $acl->write = true;
- $acl->prop = true;
- $acl->delete = true;
- $acl->grant = true;
-
- $acl->create_file = true;
- $acl->create_page = true;
- $acl->create_folder = true;
- $acl->create_link = true;
-
- $acl->add();
-
- // Aus dem Eltern-Ordner vererbbare Berechtigungen uebernehmen.
- $parent = new BaseObject( $this->parentid );
- foreach( $parent->getAllAclIds() as $aclid )
- {
- $acl = new Acl( $aclid );
- $acl->load();
+ /**
+ * Objekt loeschen. Es muss sichergestellt sein, dass auch das Unterobjekt geloeschet wird.
+ * Diese Methode wird daher normalerweise nur vom Unterobjekt augerufen
+ * @access protected
+ */
+ public function objectDelete()
+ {
+ $db = db_connection();
+
+ $sql = $db->sql( 'UPDATE {{element}} '.
+ ' SET default_objectid=NULL '.
+ ' WHERE default_objectid={objectid}' );
+ $sql->setInt('objectid',$this->objectid);
+ $sql->query();
+
+ $sql = $db->sql( 'UPDATE {{value}} '.
+ ' SET linkobjectid=NULL '.
+ ' WHERE linkobjectid={objectid}' );
+ $sql->setInt('objectid',$this->objectid);
+ $sql->query();
+
+ $sql = $db->sql( 'UPDATE {{link}} '.
+ ' SET link_objectid=NULL '.
+ ' WHERE link_objectid={objectid}' );
+ $sql->setInt('objectid',$this->objectid);
+ $sql->query();
+
+
+ // Objekt-Namen l?schen
+ $sql = $db->sql('DELETE FROM {{name}} WHERE objectid={objectid}');
+ $sql->setInt('objectid', $this->objectid);
+ $sql->query();
+
+ // ACLs loeschen
+ $this->deleteAllACLs();
+
+ // Objekt l?schen
+ $sql = $db->sql('DELETE FROM {{object}} WHERE id={objectid}');
+ $sql->setInt('objectid', $this->objectid);
+ $sql->query();
+ }
- if ( $acl->transmit ) // ACL is vererbbar, also kopieren.
- {
- $acl->objectid = $this->objectid;
- $acl->add(); // ... und hinzufuegen.
- }
- }
- }
+ /**
+ * Objekt hinzufuegen.
+ *
+ * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt.
+ */
+ function objectAdd()
+ {
+ self::add();
+ }
- /**
- * Pruefung auf Gueltigkeit des Dateinamens
- */
- private function checkFilename()
+ /**
+ * Objekt hinzufuegen.
+ *
+ * Standardrechte und vom Elternobjekt vererbbare Berechtigungen werden gesetzt.
+ */
+ function add()
+ {
+ // Neue Objekt-Id bestimmen
+ $sql = db()->sql('SELECT MAX(id) FROM {{object}}');
+ $this->objectid = intval($sql->getOne())+1;
+
+ $this->checkFilename();
+ $sql = db()->sql('INSERT INTO {{object}}'.
+ ' (id,parentid,projectid,filename,orderid,create_date,create_userid,lastchange_date,lastchange_userid,typeid,settings)'.
+ ' VALUES( {objectid},{parentid},{projectid},{filename},{orderid},{time},{createuserid},{createtime},{userid},{typeid},\'\' )');
+
+ if ( $this->isRoot )
+ $sql->setNull('parentid');
+ else $sql->setInt ('parentid',$this->parentid );
+
+ $sql->setInt ('objectid' , $this->objectid );
+ $sql->setString('filename' , $this->filename );
+ $sql->setString('projectid', $this->projectid);
+ $sql->setInt ('orderid' , 99999 );
+ $sql->setInt ('time' , now() );
+ $user = \Session::getUser();
+ $sql->setInt ('createuserid' , $user->userid );
+ $sql->setInt ('createtime' , now() );
+ $user = \Session::getUser();
+ $sql->setInt ('userid' , $user->userid );
+
+ $sql->setInt( 'typeid',$this->getTypeid());
+
+ $sql->query();
+
+ // Standard-Rechte fuer dieses neue Objekt setzen.
+ // Der angemeldete Benutzer erhaelt alle Rechte auf
+ // das neue Objekt. Legitim, denn er hat es ja angelegt.
+ $acl = new Acl();
+ $acl->userid = $user->userid;
+ $acl->objectid = $this->objectid;
+
+ $acl->read = true;
+ $acl->write = true;
+ $acl->prop = true;
+ $acl->delete = true;
+ $acl->grant = true;
+
+ $acl->create_file = true;
+ $acl->create_page = true;
+ $acl->create_folder = true;
+ $acl->create_link = true;
+
+ $acl->add();
+
+ // Aus dem Eltern-Ordner vererbbare Berechtigungen uebernehmen.
+ $parent = new BaseObject( $this->parentid );
+ foreach( $parent->getAllAclIds() as $aclid )
{
- if ( empty($this->filename) )
- $this->filename = $this->objectid;
+ $acl = new Acl( $aclid );
+ $acl->load();
- if ( $this->isRoot ) // Beim Root-Ordner ist es egal, es gibt nur einen.
- return;
-
- if ( !$this->filenameIsUnique( $this->filename ) )
+ if ( $acl->transmit ) // ACL is vererbbar, also kopieren.
{
- // Append some string to filename.
- $this->filename = $this->filename.'-'.base_convert(time(), 10, 36);
+ $acl->objectid = $this->objectid;
+ $acl->add(); // ... und hinzufuegen.
}
}
+ }
+
+
+ /**
+ * Pruefung auf Gueltigkeit des Dateinamens
+ */
+ private function checkFilename()
+ {
+ if ( empty($this->filename) )
+ $this->filename = $this->objectid;
+ if ( $this->isRoot ) // Beim Root-Ordner ist es egal, es gibt nur einen.
+ return;
- /**
- * Stellt fest, dass der Dateiname im aktuellen Ordner kein weiteres Mal vorkommt.
- * Dies muss vor dem Speichern geprüft werden, ansonsten erfolgt eine Index-Verletzung
- * und der Datensatz kann nicht gespeichert werde.
- *
- * @param $filename
- * @return bool
- */
- private function filenameIsUnique( $filename )
+ if ( !$this->filenameIsUnique( $this->filename ) )
{
- $sql = db()->sql( <<<SQL
+ // Append some string to filename.
+ $this->filename = $this->filename.'-'.base_convert(time(), 10, 36);
+ }
+ }
+
+
+ /**
+ * Stellt fest, dass der Dateiname im aktuellen Ordner kein weiteres Mal vorkommt.
+ * Dies muss vor dem Speichern geprüft werden, ansonsten erfolgt eine Index-Verletzung
+ * und der Datensatz kann nicht gespeichert werde.
+ *
+ * @param $filename
+ * @return bool
+ */
+ private function filenameIsUnique( $filename )
+ {
+ $sql = db()->sql( <<<SQL
SELECT COUNT(*) FROM {{object}}
- WHERE parentid={parentid} AND filename={filename}
- AND NOT id = {objectid}
+WHERE parentid={parentid} AND filename={filename}
+AND NOT id = {objectid}
SQL
- );
+ );
- $sql->setString('parentid', $this->parentid);
- $sql->setString('filename', $filename );
- $sql->setString('objectid', $this->objectid);
+ $sql->setString('parentid', $this->parentid);
+ $sql->setString('filename', $filename );
+ $sql->setString('objectid', $this->objectid);
- return( intval($sql->getOne()) == 0 );
- }
+ return( intval($sql->getOne()) == 0 );
+ }
- /**
- * Pruefung auf Gueltigkeit des logischen Namens
- */
- function checkName()
- {
- if ( empty($this->name) )
- $this->name = $this->filename;
+ /**
+ * Pruefung auf Gueltigkeit des logischen Namens
+ */
+ function checkName()
+ {
+ if ( empty($this->name) )
+ $this->name = $this->filename;
- if ( empty($this->name) )
- $this->name = $this->objectid;
- }
+ if ( empty($this->name) )
+ $this->name = $this->objectid;
+ }
- function getAllAclIds()
- {
- $db = db_connection();
+ function getAllAclIds()
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT id FROM {{acl}} '.
- ' WHERE objectid={objectid}'.
- ' ORDER BY userid,groupid ASC' );
- $sql->setInt('objectid' ,$this->objectid);
+ $sql = $db->sql( 'SELECT id FROM {{acl}} '.
+ ' WHERE objectid={objectid}'.
+ ' ORDER BY userid,groupid ASC' );
+ $sql->setInt('objectid' ,$this->objectid);
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- /**
- * Ermitteln aller Berechtigungsstufen.
- */
- function getRelatedAclTypes()
- {
- return( array('read','write','delete','prop','release','publish','create_folder','create_file','create_page','create_link','grant','transmit') );
- }
+ /**
+ * Ermitteln aller Berechtigungsstufen.
+ */
+ function getRelatedAclTypes()
+ {
+ return( array('read','write','delete','prop','release','publish','create_folder','create_file','create_page','create_link','grant','transmit') );
+ }
- /**
- * Ermitteln aller Berechtigungsstufen.
- */
- function getAssocRelatedAclTypes()
- {
- $types = array();
+ /**
+ * Ermitteln aller Berechtigungsstufen.
+ */
+ function getAssocRelatedAclTypes()
+ {
+ $types = array();
- foreach( $this->getRelatedAclTypes() as $t )
- $types[$t] = true;
+ foreach( $this->getRelatedAclTypes() as $t )
+ $types[$t] = true;
- return $types;
- }
+ return $types;
+ }
- /**
- * Entfernen aller ACLs zu diesem Objekt
- * @access private
- */
- private function deleteAllACLs()
+ /**
+ * Entfernen aller ACLs zu diesem Objekt
+ * @access private
+ */
+ private function deleteAllACLs()
+ {
+ foreach( $this->getAllAclIds() as $aclid )
{
- foreach( $this->getAllAclIds() as $aclid )
- {
- $acl = new Acl( $aclid );
- $acl->load();
- $acl->delete();
- }
+ $acl = new Acl( $aclid );
+ $acl->load();
+ $acl->delete();
}
+ }
- /**
- * Reihenfolge-Sequenznr. dieses Objektes neu speichern
- * die Nr. wird sofort in der Datenbank gespeichert.
- *
- * @param Integer neue Sequenz-Nr.
- */
- public function setOrderId( $orderid )
- {
- $sql = db()->sql('UPDATE {{object}} '.' SET orderid={orderid}'.' WHERE id={objectid}');
- $sql->setInt('objectid', $this->objectid);
- $sql->setInt('orderid', $orderid);
+ /**
+ * Reihenfolge-Sequenznr. dieses Objektes neu speichern
+ * die Nr. wird sofort in der Datenbank gespeichert.
+ *
+ * @param Integer neue Sequenz-Nr.
+ */
+ public function setOrderId( $orderid )
+ {
+ $sql = db()->sql('UPDATE {{object}} '.' SET orderid={orderid}'.' WHERE id={objectid}');
+ $sql->setInt('objectid', $this->objectid);
+ $sql->setInt('orderid', $orderid);
- $sql->query();
- }
+ $sql->query();
+ }
- /**
- * ?bergeordnete Objekt-ID dieses Objektes neu speichern
- * die Nr. wird sofort in der Datenbank gespeichert.
- *
- * @param Integer ?bergeordnete Objekt-ID
- */
- public function setParentId( $parentid )
- {
- $db = db_connection();
+ /**
+ * ?bergeordnete Objekt-ID dieses Objektes neu speichern
+ * die Nr. wird sofort in der Datenbank gespeichert.
+ *
+ * @param Integer ?bergeordnete Objekt-ID
+ */
+ public function setParentId( $parentid )
+ {
+ $db = db_connection();
- $sql = $db->sql('UPDATE {{object}} '.' SET parentid={parentid}'.' WHERE id={objectid}');
- $sql->setInt('objectid', $this->objectid);
- $sql->setInt('parentid', $parentid);
+ $sql = $db->sql('UPDATE {{object}} '.' SET parentid={parentid}'.' WHERE id={objectid}');
+ $sql->setInt('objectid', $this->objectid);
+ $sql->setInt('parentid', $parentid);
- $sql->query();
- }
+ $sql->query();
+ }
- public function getDependentObjectIds()
- {
- $db = db_connection();
+ public function getDependentObjectIds()
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT {{page}}.objectid FROM {{value}}'.
- ' LEFT JOIN {{page}} '.
- ' ON {{value}}.pageid = {{page}}.id '.
- ' WHERE linkobjectid={objectid}' );
- $sql->setInt( 'objectid',$this->objectid );
+ $sql = $db->sql( 'SELECT {{page}}.objectid FROM {{value}}'.
+ ' LEFT JOIN {{page}} '.
+ ' ON {{value}}.pageid = {{page}}.id '.
+ ' WHERE linkobjectid={objectid}' );
+ $sql->setInt( 'objectid',$this->objectid );
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- /**
- * Liefert die Link-Ids, die auf das aktuelle Objekt verweisen.
- * @return array Liste der gefundenen Objekt-IDs
- */
- public function getLinksToMe()
- {
- $db = db_connection();
+ /**
+ * Liefert die Link-Ids, die auf das aktuelle Objekt verweisen.
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public function getLinksToMe()
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT objectid FROM {{link}} '.
- ' WHERE link_objectid={myid}' );
- $sql->setInt ( 'myid' ,$this->objectid );
+ $sql = $db->sql( 'SELECT objectid FROM {{link}} '.
+ ' WHERE link_objectid={myid}' );
+ $sql->setInt ( 'myid' ,$this->objectid );
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- private function getTypeid()
- {
- if ($this->isFolder) return OR_TYPEID_FOLDER;
- if ($this->isFile) return OR_TYPEID_FILE;
- if ($this->isImage) return OR_TYPEID_IMAGE;
- if ($this->isText) return OR_TYPEID_TEXT;
- if ($this->isPage) return OR_TYPEID_PAGE;
- if ($this->isLink) return OR_TYPEID_LINK;
- if ($this->isUrl) return OR_TYPEID_URL;
- }
+ private function getTypeid()
+ {
+ if ($this->isFolder) return self::TYPEID_FOLDER;
+ if ($this->isFile ) return self::TYPEID_FILE;
+ if ($this->isImage ) return self::TYPEID_IMAGE;
+ if ($this->isText ) return self::TYPEID_TEXT;
+ if ($this->isPage ) return self::TYPEID_PAGE;
+ if ($this->isLink ) return self::TYPEID_LINK;
+ if ($this->isUrl ) return self::TYPEID_URL;
+ }
- /**
- * Local Settings.
- *
- * @return array
- */
- public function getSettings()
- {
- return Spyc::YAMLLoad($this->settings);
- }
+ /**
+ * Local Settings.
+ *
+ * @return array
+ */
+ public function getSettings()
+ {
+ return Spyc::YAMLLoad($this->settings);
+ }
- /**
- * Inherited Settings.
- *
- * @return array
- */
- public function getTotalSettings()
- {
- $totalSettings = array();
+ /**
+ * Inherited Settings.
+ *
+ * @return array
+ */
+ public function getTotalSettings()
+ {
+ $totalSettings = array();
- // cumulate settings of parent objects
- $parentIds = array_keys( $this->parentObjectFileNames(true, false) );
- foreach( $parentIds as $id )
- {
- $parentObject = new BaseObject( $id );
- $parentObject->objectLoad();
- $totalSettings = array_merge($totalSettings,$parentObject->getSettings());
- }
+ // cumulate settings of parent objects
+ $parentIds = array_keys( $this->parentObjectFileNames(true, false) );
+ foreach( $parentIds as $id )
+ {
+ $parentObject = new BaseObject( $id );
+ $parentObject->objectLoad();
+ $totalSettings = array_merge($totalSettings,$parentObject->getSettings());
+ }
- // add settings from this base object.
- $totalSettings = array_merge($totalSettings,$this->getSettings());
+ // add settings from this base object.
+ $totalSettings = array_merge($totalSettings,$this->getSettings());
- return $totalSettings;
- }
+ return $totalSettings;
+ }
- /**
- * Liefert alle übergeordneten Ordner.
- *
- * @param bool $with_root Mit Root-Folder?
- * @param bool $with_self Mit dem aktuellen Ordner?
- * @return array
- */
- public function parentObjectFileNames( $with_root = false, $with_self = false )
- {
- $db = \Session::getDatabase();
+ /**
+ * Liefert alle übergeordneten Ordner.
+ *
+ * @param bool $with_root Mit Root-Folder?
+ * @param bool $with_self Mit dem aktuellen Ordner?
+ * @return array
+ */
+ public function parentObjectFileNames( $with_root = false, $with_self = false )
+ {
+ $db = \Session::getDatabase();
- $foid = $this->id;
- $idCache = array();
+ $foid = $this->id;
+ $idCache = array();
- while( intval($foid)!=0 )
- {
- $sql = $db->sql( <<<SQL
-
- SELECT parentid,id,filename
- FROM {{object}}
- WHERE {{object}}.id={parentid}
+ while( intval($foid)!=0 )
+ {
+ $sql = $db->sql( <<<SQL
+
+SELECT parentid,id,filename
+ FROM {{object}}
+ WHERE {{object}}.id={parentid}
SQL
- );
- $sql->setInt('parentid' ,$foid );
+ );
+ $sql->setInt('parentid' ,$foid );
- $row = $sql->getRow();
+ $row = $sql->getRow();
- if ( in_array($row['id'],$idCache))
- throw new \LogicException('fatal: parent-rekursion in object-id: '.$this->objectid.', double-parent-id: '.$row['id']);
- else
- $idCache[] = $row['id'];
+ if ( in_array($row['id'],$idCache))
+ throw new \LogicException('fatal: parent-rekursion in object-id: '.$this->objectid.', double-parent-id: '.$row['id']);
+ else
+ $idCache[] = $row['id'];
- $this->addParentfolder( $row['id'],$row['filename'] );
- $foid = $row['parentid'];
- }
+ $this->addParentfolder( $row['id'],$row['filename'] );
+ $foid = $row['parentid'];
+ }
- $this->checkParentFolders($with_root,$with_self);
+ $this->checkParentFolders($with_root,$with_self);
- return $this->parentfolders;
- }
+ return $this->parentfolders;
+ }
- public function parentObjectNames( $with_root = false, $with_self = false )
- {
- $db = \Session::getDatabase();
+ public function parentObjectNames( $with_root = false, $with_self = false )
+ {
+ $db = \Session::getDatabase();
- $foid = $this->id;
- $idCache = array();
+ $foid = $this->id;
+ $idCache = array();
- while( intval($foid)!=0 )
- {
- $sql = $db->sql( <<<SQL
-
- SELECT {{object}}.parentid,{{object}}.id,{{object}}.filename,{{name}}.name FROM {{object}}
- LEFT JOIN {{name}}
- ON {{object}}.id = {{name}}.objectid
- AND {{name}}.languageid = {languageid}
- WHERE {{object}}.id={parentid}
+ while( intval($foid)!=0 )
+ {
+ $sql = $db->sql( <<<SQL
+
+SELECT {{object}}.parentid,{{object}}.id,{{object}}.filename,{{name}}.name FROM {{object}}
+ LEFT JOIN {{name}}
+ ON {{object}}.id = {{name}}.objectid
+ AND {{name}}.languageid = {languageid}
+ WHERE {{object}}.id={parentid}
SQL
- );
- $sql->setInt('languageid',$this->languageid);
- $sql->setInt('parentid' ,$foid );
-
- $row = $sql->getRow();
-
- if ( in_array($row['id'],$idCache))
- throw new \LogicException('fatal: parent-rekursion in object-id: '.$this->objectid.', double-parent-id: '.$row['id']);
- else
- $idCache[] = $row['id'];
+ );
+ $sql->setInt('languageid',$this->languageid);
+ $sql->setInt('parentid' ,$foid );
- $this->addParentfolder( $row['id'],$row['name'],$row['filename'] );
- $foid = $row['parentid'];
- }
+ $row = $sql->getRow();
- $this->checkParentFolders($with_root,$with_self);
+ if ( in_array($row['id'],$idCache))
+ throw new \LogicException('fatal: parent-rekursion in object-id: '.$this->objectid.', double-parent-id: '.$row['id']);
+ else
+ $idCache[] = $row['id'];
- return $this->parentfolders;
+ $this->addParentfolder( $row['id'],$row['name'],$row['filename'] );
+ $foid = $row['parentid'];
}
+ $this->checkParentFolders($with_root,$with_self);
- private function addParentFolder( $id,$name,$filename='' )
- {
- if ( empty($name) )
- $name = $filename;
+ return $this->parentfolders;
+ }
- if ( empty($name) )
- $name = "($id)";
- if ( intval($id) != 0 )
- $this->parentfolders[ $id ] = $name;
- }
+ private function addParentFolder( $id,$name,$filename='' )
+ {
+ if ( empty($name) )
+ $name = $filename;
+ if ( empty($name) )
+ $name = "($id)";
- private function checkParentFolders( $with_root, $with_self )
- {
- // Reihenfolge umdrehen
- $this->parentfolders = array_reverse($this->parentfolders,true);
+ if ( intval($id) != 0 )
+ $this->parentfolders[ $id ] = $name;
+ }
- // Ordner ist bereits hoechster Ordner
- // if ( count($this->parentfolders) == 2 && $this->isRoot && $with_root && $with_self )
- // {
- // array_pop ( $this->parentfolders );
- // return;
- // }
+ private function checkParentFolders( $with_root, $with_self )
+ {
+ // Reihenfolge umdrehen
+ $this->parentfolders = array_reverse($this->parentfolders,true);
- if ( !$with_root && !empty($this->parentfolders) )
- {
- $keys = array_keys( $this->parentfolders );
- unset( $this->parentfolders[$keys[0]] );
- }
+ // Ordner ist bereits hoechster Ordner
+// if ( count($this->parentfolders) == 2 && $this->isRoot && $with_root && $with_self )
+// {
+// array_pop ( $this->parentfolders );
+// return;
+// }
- if ( !$with_self && !empty($this->parentfolders) )
- {
- $keys = array_keys( $this->parentfolders );
- unset( $this->parentfolders[$keys[count($keys)-1]] );
- }
- }
-
- /**
- * Liefert das Projekt-Objekt.
- *
- * @return Project
- * @throws \ObjectNotFoundException
- */
- public function getProject() {
- return Project::create( $this->projectid );
+ if ( !$with_root && !empty($this->parentfolders) )
+ {
+ $keys = array_keys( $this->parentfolders );
+ unset( $this->parentfolders[$keys[0]] );
}
-
-
-
- /**
- * Es werden Objekte mit einem bestimmten Namen ermittelt
- * @param String Suchbegriff
- * @return array Liste der gefundenen Objekt-IDs
- */
- public static function getObjectIdsByFileName( $text )
+ if ( !$with_self && !empty($this->parentfolders) )
{
- $db = db_connection();
-
- $sql = $db->sql( 'SELECT id FROM {{object}} '.
- ' WHERE filename LIKE {filename}'.
- ' ORDER BY lastchange_date DESC' );
- $sql->setString( 'filename','%'.$text.'%' );
-
- return $sql->getCol();
+ $keys = array_keys( $this->parentfolders );
+ unset( $this->parentfolders[$keys[count($keys)-1]] );
}
+ }
- /**
- * Es werden Objekte mit einem Namen ermittelt
- * @param String Suchbegriff
- * @return array Liste der gefundenen Objekt-IDs
- */
- public static function getObjectIdsByName( $text )
- {
- $db = db_connection();
+ /**
+ * Liefert das Projekt-Objekt.
+ *
+ * @return Project
+ * @throws \ObjectNotFoundException
+ */
+ public function getProject() {
+ return Project::create( $this->projectid );
+ }
- $sql = $db->sql( 'SELECT {{object}}.id FROM {{object}} '.
- ' LEFT JOIN {{name}} '.
- ' ON {{object}}.id={{name}}.objectid'.
- ' WHERE {{name}}.name LIKE {name}'.
- ' ORDER BY lastchange_date DESC' );
- $sql->setString( 'name' ,'%'.$text.'%' );
- return $sql->getCol();
- }
- /**
- * Es werden Objekte mit einer Beschreibung ermittelt
- * @param String Suchbegriff
- * @return array Liste der gefundenen Objekt-IDs
- */
- public static function getObjectIdsByDescription( $text )
- {
- $db = db_connection();
+ /**
+ * Es werden Objekte mit einem bestimmten Namen ermittelt
+ * @param String Suchbegriff
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public static function getObjectIdsByFileName( $text )
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT {{object}}.id FROM {{object}} '.
- ' LEFT JOIN {{name}} '.
- ' ON {{object}}.id={{name}}.objectid'.
- ' WHERE {{name}}.descr LIKE {desc}'.
- ' ORDER BY lastchange_date DESC' );
- $sql->setString( 'desc' ,'%'.$text.'%' );
+ $sql = $db->sql( 'SELECT id FROM {{object}} '.
+ ' WHERE filename LIKE {filename}'.
+ ' ORDER BY lastchange_date DESC' );
+ $sql->setString( 'filename','%'.$text.'%' );
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- /**
- * Es werden Objekte mit einer UserId ermittelt
- * @param Integer Benutzer-Id der Erstellung
- * @return array Liste der gefundenen Objekt-IDs
- */
- public static function getObjectIdsByCreateUserId( $userid )
- {
- $db = db_connection();
+ /**
+ * Es werden Objekte mit einem Namen ermittelt
+ * @param String Suchbegriff
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public static function getObjectIdsByName( $text )
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT id FROM {{object}} '.
- ' WHERE create_userid={userid}'.
- ' ORDER BY lastchange_date DESC' );
- $sql->setInt ( 'userid' ,$userid );
+ $sql = $db->sql( 'SELECT {{object}}.id FROM {{object}} '.
+ ' LEFT JOIN {{name}} '.
+ ' ON {{object}}.id={{name}}.objectid'.
+ ' WHERE {{name}}.name LIKE {name}'.
+ ' ORDER BY lastchange_date DESC' );
+ $sql->setString( 'name' ,'%'.$text.'%' );
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- /**
- * Es werden Objekte mit einer UserId ermittelt
- * @param Integer Benutzer-Id der letzten ?nderung
- * @return array Liste der gefundenen Objekt-IDs
- */
- public static function getObjectIdsByLastChangeUserId( $userid )
- {
- $db = db_connection();
+ /**
+ * Es werden Objekte mit einer Beschreibung ermittelt
+ * @param String Suchbegriff
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public static function getObjectIdsByDescription( $text )
+ {
+ $db = db_connection();
- $sql = $db->sql( 'SELECT id FROM {{object}} '.
- ' WHERE lastchange_userid={userid}'.
- ' ORDER BY lastchange_date DESC' );
- $sql->setInt ( 'userid' ,$userid );
+ $sql = $db->sql( 'SELECT {{object}}.id FROM {{object}} '.
+ ' LEFT JOIN {{name}} '.
+ ' ON {{object}}.id={{name}}.objectid'.
+ ' WHERE {{name}}.descr LIKE {desc}'.
+ ' ORDER BY lastchange_date DESC' );
+ $sql->setString( 'desc' ,'%'.$text.'%' );
- return $sql->getCol();
- }
+ return $sql->getCol();
+ }
- /**
- * Stellt fest, ob das Objekt gueltig ist.
- */
- public function isValid()
- {
- $now = time();
+ /**
+ * Es werden Objekte mit einer UserId ermittelt
+ * @param Integer Benutzer-Id der Erstellung
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public static function getObjectIdsByCreateUserId( $userid )
+ {
+ $db = db_connection();
- return
- ($this->validFromDate == null || $this->validFromDate < $now) &&
- ($this->validToDate == null || $this->validToDate > $now);
+ $sql = $db->sql( 'SELECT id FROM {{object}} '.
+ ' WHERE create_userid={userid}'.
+ ' ORDER BY lastchange_date DESC' );
+ $sql->setInt ( 'userid' ,$userid );
- }
+ return $sql->getCol();
+ }
- public function __toString()
- {
- return 'Object-Id '.$this->objectid.' (type='.$this->getType().',filename='.$this->filename.',language='.$this->languageid.', modelid='.$this->modelid.')';
- }
+ /**
+ * Es werden Objekte mit einer UserId ermittelt
+ * @param Integer Benutzer-Id der letzten ?nderung
+ * @return array Liste der gefundenen Objekt-IDs
+ */
+ public static function getObjectIdsByLastChangeUserId( $userid )
+ {
+ $db = db_connection();
- /**
- * Liefert alle Name-Objekte.
- * @return array
- * @throws \ObjectNotFoundException
- */
- public function getNames()
- {
- $names = array();
+ $sql = $db->sql( 'SELECT id FROM {{object}} '.
+ ' WHERE lastchange_userid={userid}'.
+ ' ORDER BY lastchange_date DESC' );
+ $sql->setInt ( 'userid' ,$userid );
- foreach( $this->getProject()->getLanguages() as $languageId=>$languageName )
- {
- $name = new Name();
- $name->objectid = $this->objectid;
- $name->languageid = $languageId;
- $name->load();
+ return $sql->getCol();
+ }
- $names[] = $name;
- }
- return $names;
- }
+ /**
+ * Stellt fest, ob das Objekt gueltig ist.
+ */
+ public function isValid()
+ {
+ $now = time();
+ return
+ ($this->validFromDate == null || $this->validFromDate < $now) &&
+ ($this->validToDate == null || $this->validToDate > $now);
- /**
- * @return Name
- */
- public function getDefaultName()
- {
- $languageId = $this->getProject()->getDefaultLanguageId();
+ }
+
+ public function __toString()
+ {
+ return 'Object-Id '.$this->objectid.' (type='.$this->getType().',filename='.$this->filename.',language='.$this->languageid.', modelid='.$this->modelid.')';
+ }
- return $this->getNameForLanguage( $languageId );
- }
+ /**
+ * Liefert alle Name-Objekte.
+ * @return array
+ * @throws \ObjectNotFoundException
+ */
+ public function getNames()
+ {
+ $names = array();
- /**
- * @return Name
- */
- public function getNameForLanguage( $languageid )
+ foreach( $this->getProject()->getLanguages() as $languageId=>$languageName )
{
$name = new Name();
$name->objectid = $this->objectid;
- $name->languageid = $languageid;
+ $name->languageid = $languageId;
$name->load();
- return $name;
+ $names[] = $name;
}
+ return $names;
+ }
- /**
- * Name of the object. If not exist, the filename will be used.
- * @return string Name
- */
- public function getName()
- {
- $name = $this->getDefaultName()->name;
- if ( empty($name))
- $name = $this->filename;
+ /**
+ * @return Name
+ */
+ public function getDefaultName()
+ {
+ $languageId = $this->getProject()->getDefaultLanguageId();
- return $name;
- }
+ return $this->getNameForLanguage( $languageId );
+ }
- /**
- * Speichert Namen und Beschreibung für alle Sprachen. Das ist bei der Neuanlage von Objekten ganz praktisch.
- *
- * @param $nam string
- * @param $description string
- */
- public function setNameForAllLanguages($nam, $description)
- {
- foreach( $this->getProject()->getLanguages() as $languageId=>$languageName )
- {
- $name = new Name();
- $name->objectid = $this->objectid;
- $name->languageid = $languageId;
- $name->load();
+ /**
+ * @return Name
+ */
+ public function getNameForLanguage( $languageid )
+ {
+ $name = new Name();
+ $name->objectid = $this->objectid;
+ $name->languageid = $languageid;
+ $name->load();
+
+ return $name;
+ }
- $name->name = $nam;
- $name->description = $description;
- $name->save();
- }
+ /**
+ * Name of the object. If not exist, the filename will be used.
+ * @return string Name
+ */
+ public function getName()
+ {
+ $name = $this->getDefaultName()->name;
+
+ if ( empty($name))
+ $name = $this->filename;
+ return $name;
+ }
+
+
+ /**
+ * Speichert Namen und Beschreibung für alle Sprachen. Das ist bei der Neuanlage von Objekten ganz praktisch.
+ *
+ * @param $nam string
+ * @param $description string
+ */
+ public function setNameForAllLanguages($nam, $description)
+ {
+ foreach( $this->getProject()->getLanguages() as $languageId=>$languageName )
+ {
+ $name = new Name();
+ $name->objectid = $this->objectid;
+ $name->languageid = $languageId;
+ $name->load();
+
+ $name->name = $nam;
+ $name->description = $description;
+
+ $name->save();
}
}
+}
+
-}-
\ No newline at end of file
diff --git a/modules/cms-core/model/File.class.php b/modules/cms-core/model/File.class.php
@@ -167,11 +167,11 @@ class File extends BaseObject
$ext = explode(',',$extension);
$sqlquery .= implode( "' OR extension='",$ext );
- $sqlquery .= "' AND typeid=".OR_TYPEID_FILE." AND projectid={projectid}";
+ $sqlquery .= "' AND typeid=".BaseObject::TYPEID_FILE." AND projectid={projectid}";
}
else
{
- $sqlquery .= " WHERE typeid=".OR_TYPEID_FILE." AND projectid={projectid}";
+ $sqlquery .= " WHERE typeid=".BaseObject::TYPEID_FILE." AND projectid={projectid}";
}
$sql = $db->sql( $sqlquery );
diff --git a/modules/cms-core/model/Folder.class.php b/modules/cms-core/model/Folder.class.php
@@ -284,7 +284,7 @@ class Folder extends BaseObject
$db = db_connection();
$sql = $db->sql('SELECT id FROM {{object}} '.
- ' WHERE parentid={objectid} AND typeid='.OR_TYPEID_PAGE.
+ ' WHERE parentid={objectid} AND typeid='.BaseObject::TYPEID_PAGE.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -303,7 +303,7 @@ class Folder extends BaseObject
$sql = $db->sql('SELECT id FROM {{object}} '.
' WHERE parentid={objectid}'.
- ' AND (typeid='.OR_TYPEID_PAGE.')'.
+ ' AND (typeid='.BaseObject::TYPEID_PAGE.')'.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -329,7 +329,7 @@ class Folder extends BaseObject
$sql = $db->sql('SELECT id FROM {{object}} '.
' WHERE parentid={objectid}'.
- ' AND (typeid='.OR_TYPEID_PAGE.' OR typeid='.OR_TYPEID_LINK.')'.
+ ' AND (typeid='.BaseObject::TYPEID_PAGE.' OR typeid='.BaseObject::TYPEID_LINK.')'.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -350,7 +350,7 @@ class Folder extends BaseObject
$sql = $db->sql('SELECT id FROM {{object}} '.
' WHERE parentid={objectid}'.
- ' AND (typeid='.OR_TYPEID_PAGE.' OR typeid='.OR_TYPEID_LINK.')'.
+ ' AND (typeid='.BaseObject::TYPEID_PAGE.' OR typeid='.BaseObject::TYPEID_LINK.')'.
' ORDER BY orderid DESC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -370,7 +370,7 @@ class Folder extends BaseObject
$db = db_connection();
$sql = $db->sql('SELECT id FROM {{object}} '.
- ' WHERE parentid={objectid} AND typeid='.OR_TYPEID_FILE.
+ ' WHERE parentid={objectid} AND typeid='.BaseObject::TYPEID_FILE.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -389,7 +389,7 @@ class Folder extends BaseObject
$db = db_connection();
$sql = $db->sql('SELECT id,filename FROM {{object}} '.
- ' WHERE parentid={objectid} AND typeid='.OR_TYPEID_FILE.
+ ' WHERE parentid={objectid} AND typeid='.BaseObject::TYPEID_FILE.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -402,7 +402,7 @@ class Folder extends BaseObject
$db = db_connection();
$sql = $db->sql('SELECT id FROM {{object}} '.
- ' WHERE parentid={objectid} AND typeid='.OR_TYPEID_LINK.
+ ' WHERE parentid={objectid} AND typeid='.BaseObject::TYPEID_LINK.
' ORDER BY orderid ASC' );
$sql->setInt( 'objectid' ,$this->objectid );
@@ -538,7 +538,7 @@ SQL
);
$stmt->setInt( 'objectid' ,$this->objectid );
- $stmt->setInt( 'typeid' ,OR_TYPEID_FOLDER );
+ $stmt->setInt( 'typeid' ,BaseObject::TYPEID_FOLDER );
$this->subfolders = $stmt->getCol();
@@ -557,7 +557,7 @@ SQL
);
$stmt->setInt( 'objectid' ,$this->objectid );
- $stmt->setInt( 'typeid' ,OR_TYPEID_FOLDER );
+ $stmt->setInt( 'typeid' ,BaseObject::TYPEID_FOLDER );
return $stmt->getAssoc();
}
diff --git a/modules/cms-core/model/Project.class.php b/modules/cms-core/model/Project.class.php
@@ -993,13 +993,13 @@ SQL
);
$stmt->setInt('projectid',$this->projectid );
- $stmt->setInt('is_folder',in_array('folder',$types)?OR_TYPEID_FOLDER:0);
- $stmt->setInt('is_file' ,in_array('file' ,$types)?OR_TYPEID_FILE :0);
- $stmt->setInt('is_image' ,in_array('image' ,$types)?OR_TYPEID_IMAGE :0);
- $stmt->setInt('is_text' ,in_array('text' ,$types)?OR_TYPEID_TEXT :0);
- $stmt->setInt('is_page' ,in_array('page' ,$types)?OR_TYPEID_PAGE :0);
- $stmt->setInt('is_link' ,in_array('link' ,$types)?OR_TYPEID_LINK :0);
- $stmt->setInt('is_url' ,in_array('url' ,$types)?OR_TYPEID_URL :0);
+ $stmt->setInt('is_folder',in_array('folder',$types)?BaseObject::TYPEID_FOLDER:0);
+ $stmt->setInt('is_file' ,in_array('file' ,$types)?BaseObject::TYPEID_FILE :0);
+ $stmt->setInt('is_image' ,in_array('image' ,$types)?BaseObject::TYPEID_IMAGE :0);
+ $stmt->setInt('is_text' ,in_array('text' ,$types)?BaseObject::TYPEID_TEXT :0);
+ $stmt->setInt('is_page' ,in_array('page' ,$types)?BaseObject::TYPEID_PAGE :0);
+ $stmt->setInt('is_link' ,in_array('link' ,$types)?BaseObject::TYPEID_LINK :0);
+ $stmt->setInt('is_url' ,in_array('url' ,$types)?BaseObject::TYPEID_URL :0);
return( $stmt->getCol() );
}
@@ -1015,7 +1015,7 @@ SQL
$db = db_connection();
$stmt = $db->sql('SELECT id FROM {{object}}'.
- ' WHERE typeid='.OR_TYPEID_FOLDER.
+ ' WHERE typeid='.BaseObject::TYPEID_FOLDER.
' AND projectid={projectid}' );
$stmt->setInt( 'projectid',$this->projectid );
diff --git a/modules/cms-macros/macro/LastChanges.class.php b/modules/cms-macros/macro/LastChanges.class.php
@@ -15,6 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+use cms\model\BaseObject;
use cms\model\Folder;
use cms\model\Link;
use cms\model\Page;
@@ -79,16 +80,16 @@ class LastChanges extends Macro
if ($o['objectid'] == $this->getObjectId() )
continue;
- if ( ($o['typeid']==OR_TYPEID_PAGE && istrue($this->showPages)) ||
- ($o['typeid']==OR_TYPEID_LINK && istrue($this->showLinks)) ) // Nur wenn gewünschter Typ
+ if ( ($o['typeid']==BaseObject::TYPEID_PAGE && istrue($this->showPages)) ||
+ ($o['typeid']==BaseObject::TYPEID_LINK && istrue($this->showLinks)) ) // Nur wenn gewünschter Typ
{
- if ( $o['typeid']==OR_TYPEID_LINK ) {
+ if ( $o['typeid']==BaseObject::TYPEID_LINK ) {
$l = new Link( $o['objectid'] );
$l->load();
$p = new Page( $l->linkedObjectId );
}
- elseif ( $o['typeid']==OR_TYPEID_PAGE )
+ elseif ( $o['typeid']==BaseObject::TYPEID_PAGE )
{
$p = new Page( $o['objectid'] );
}
diff --git a/modules/cms-publish/PublishPreview.class.php b/modules/cms-publish/PublishPreview.class.php
@@ -35,16 +35,16 @@ class PublishPreview extends Publish
// Interne Verlinkungen in der Seitenvorschau
switch( $to->typeid )
{
- case OR_TYPEID_FILE:
- case OR_TYPEID_IMAGE:
- case OR_TYPEID_TEXT:
+ case BaseObject::TYPEID_FILE:
+ case BaseObject::TYPEID_IMAGE:
+ case BaseObject::TYPEID_TEXT:
$inhalt = \Html::url('file','show',$to->objectid,$param);
break;
- case OR_TYPEID_PAGE:
+ case BaseObject::TYPEID_PAGE:
$inhalt = \Html::url('page','show',$to->objectid,$param);
break;
- case OR_TYPEID_LINK:
+ case BaseObject::TYPEID_LINK:
$link = new Link( $to->objectid );
$link->load();
@@ -53,20 +53,20 @@ class PublishPreview extends Publish
switch( $linkedObject->typeid )
{
- case OR_TYPEID_FILE:
+ case BaseObject::TYPEID_FILE:
$inhalt = \Html::url('file','show',$link->linkedObjectId,$param);
break;
- case OR_TYPEID_PAGE:
+ case BaseObject::TYPEID_PAGE:
$inhalt = \Html::url('page','show',$link->linkedObjectId,$param);
break;
- case OR_TYPEID_URL:
+ case BaseObject::TYPEID_URL:
$inhalt = \Html::url('url','show',$link->linkedObjectId,$param);
break;
}
break;
- case OR_TYPEID_URL:
+ case BaseObject::TYPEID_URL:
$url = new Url( $to->objectid );
$url->load();
$inhalt = $url->url;
diff --git a/modules/cms-publish/PublishPublic.class.php b/modules/cms-publish/PublishPublic.class.php
@@ -39,9 +39,9 @@ class PublishPublic extends Publish
switch( $to->typeid )
{
- case OR_TYPEID_FILE:
- case OR_TYPEID_IMAGE:
- case OR_TYPEID_TEXT:
+ case BaseObject::TYPEID_FILE:
+ case BaseObject::TYPEID_IMAGE:
+ case BaseObject::TYPEID_TEXT:
$f = new File( $to->objectid );
@@ -54,7 +54,7 @@ class PublishPublic extends Publish
$filename .= '.'.$f->extension;
break;
- case OR_TYPEID_PAGE:
+ case BaseObject::TYPEID_PAGE:
$p = new Page( $to->objectid );
$p->languageid = $from->languageid;
@@ -67,7 +67,7 @@ class PublishPublic extends Publish
$filename = $p->getFilename();
break;
- case OR_TYPEID_LINK:
+ case BaseObject::TYPEID_LINK:
$link = new Link( $to->objectid );
$link->load();
@@ -76,7 +76,7 @@ class PublishPublic extends Publish
switch( $linkedObject->typeid )
{
- case OR_TYPEID_FILE:
+ case BaseObject::TYPEID_FILE:
$f = new File( $link->linkedObjectId );
$f->load();
$f->content_negotiation = $from->content_negotiation;
@@ -84,7 +84,7 @@ class PublishPublic extends Publish
$to = $f;
break;
- case OR_TYPEID_PAGE:
+ case BaseObject::TYPEID_PAGE:
$p = new Page( $link->linkedObjectId );
$p->languageid = $from->languageid;
$p->modelid = $from->modelid;
@@ -101,7 +101,7 @@ class PublishPublic extends Publish
}
break;
- case OR_TYPEID_URL:
+ case BaseObject::TYPEID_URL:
$url = new Url( $to->objectid );
$url->load();
return $url->url;
diff --git a/modules/database-update/update/DBVersion000009.class.php b/modules/database-update/update/DBVersion000009.class.php
@@ -41,7 +41,7 @@ class DBVersion000009 extends DbVersion
// Updating the typeid for URL entrys in table 'object'
$updateStmt = $db->sql('UPDATE '.$this->getTableName('object').
- ' SET typeid='.OR_TYPEID_URL.' WHERE id IN (SELECT objectid FROM '.$this->getTableName('url').')'
+ ' SET typeid='.BaseObject::TYPEID_URL.' WHERE id IN (SELECT objectid FROM '.$this->getTableName('url').')'
);
$updateStmt->query();