$value) { if ($field!='id' AND isset($_POST[$field]) AND !is_array($_POST[$field])) { $this->$field = trim($_POST[$field]); if ($this->$field AND !is_numeric($this->$field)) $this->$field = $interface->purify($this->$field); } } $this->forceBools(); } function forceBools () { } function updateObjectDB () { remositoryRepository::doSQL($this->updateSQL()); } function timeStampField () { return ''; } function prepareValues () { $interface = remositoryInterface::getInstance(); foreach (get_class_vars(get_class($this)) as $field=>$value) { if (!is_numeric($this->$field)) $this->$field = $interface->getEscaped($this->$field); } } function updateSQL () { $interface = remositoryInterface::getInstance(); $tabname = $this->tableName(); $sql = "UPDATE $tabname SET "; $exclude = $this->notSQL(); foreach (get_class_vars(get_class($this)) as $field=>$value) { if (!in_array($field,$exclude)) { $data = is_numeric($this->$field) ? $this->$field : $interface->getEscaped($this->$field); $item[] = $field."='".$data."'"; } } if ($this->timeStampField()) $item[] = $this->timeStampField()."='".date('Y-m-d H:i:s')."'"; if (isset($item)) { $sql .= implode (', ', $item); } return $sql.' WHERE id='.$this->id; } function notSQL () { return array ('id'); } function insertSQL () { $interface = remositoryInterface::getInstance(); $tabname = $this->tableName(); $exclude = $this->notSQL(); foreach (get_class_vars(get_class($this)) as $field=>$value) { if (!in_array($field,$exclude)) { $column[] = $field; $data = is_numeric($this->$field) ? $this->$field : $interface->getEscaped($this->$field); $item[] = "'".$data."'"; } } $timestamp = $this->timeStampField(); if ($timestamp) { $column[] = $timestamp; $item[] = "'".date('Y-m-d H:i:s')."'"; } $columns = implode(',', $column); $datafields = implode(',', $item); return "INSERT INTO $tabname ($columns) VALUES($datafields)"; } function setValues ($anObject) { foreach (get_class_vars(get_class($this)) as $field=>$value) { if ($field != 'id' AND isset($anObject->$field)) $this->$field = $anObject->$field; } } function readDataBase($sql) { $interface = remositoryInterface::getInstance(); $database = $interface->getDB(); $database->setQuery( $sql ); if (!($result = $database->loadObject($this))) $this->id = 0; if (is_object($result)) $this->setValues($result); return $result ? true : false; } function lastPart ($field, $separator, $lowercase=true) { $last = end(explode($separator, $field)); return $lowercase ? strtolower($last) : $last; } function allButLast ($field, $separator) { $last = remositoryAbstract::lastPart($field,$separator); return substr($field,0,strlen($field)-strlen($last)-1); } public static function visibilitySQL ($user) { $cvisibility = remositoryAbstract::containerVisibilitySQL($user); if (!$cvisibility) return ''; $fvisibility = remositoryAbstract::fileVisibilitySQL($user); return $fvisibility ? "($cvisibility OR $fvisibility)" : $cvisibility; } private static function containerVisibilitySQL ($user) { $repository = remositoryRepository::getInstance(); if (!$user->isAdmin() AND !$repository->See_Files_no_download) { $refuseSQL = aliroAuthoriser::getInstance()->getRefusedListSQL ('aUser', $user->id, 'remosFolder', 'download,edit', 'f.containerid'); } return empty($refuseSQL) ? '' : $refuseSQL; } private static function fileVisibilitySQL ($user) { $repository = remositoryRepository::getInstance(); if (!$user->isAdmin() AND !$repository->See_Files_no_download) { $refuseSQL = aliroAuthoriser::getInstance()->getRefusedListSQL ('aUser', $user->id, 'remosFile', 'download,edit', 'f.id'); } return empty($refuseSQL) ? '' : $refuseSQL; } }