123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Description of Entity
- *
- * @license see /license.txt
- * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
- */
- class Entity
- {
- /**
- *
- * @return \Entity\Course
- */
- public static function current_course()
- {
- static $result = false;
- if ($result === false) {
- $repo = \Entity\Course::repository();
- $course_id = api_get_course_int_id();
- if ($course_id) {
- $result = $repo->find($course_id);
- }
- }
- return $result;
- }
- /**
- *
- * @return \Entity\Session
- */
- public static function current_session()
- {
- static $result = false;
- if ($result === false) {
- $repo = \Entity\Session::repository();
- $session_id = api_get_session_id();
- $result = $repo->find($session_id);
- }
- return $result;
- }
- function __construct($data = null)
- {
- if ($data) {
- foreach ($this as $key => $value) {
- if (isset($data->{$key})) {
- $this->{$key} = $data->{$key};
- }
- }
- }
- $this->defaults('session_id', api_get_session_id());
- }
- function __get($name)
- {
- $f = array($this, "get_$name");
- return call_user_func($f);
- }
- function __isset($name)
- {
- $f = array($this, "get_$name");
- return is_callable($f);
- }
- function __set($name, $value)
- {
- $f = array($this, "set_$name");
- if (!is_callable($f)) {
- return;
- }
- call_user_func($f, $value);
- }
- function before_save()
- {
- $repo = $this->repository();
- $field = $repo->get_id_field();
- if (empty($field)) {
- return;
- }
- $value = isset($this->{$field}) ? $this->{$field} : null;
- if ($value) {
- return;
- }
- $next_id = $repo->next_id($this);
- $this->{$field} = $next_id;
- }
- function defaults($name, $value)
- {
- if (property_exists($this, $name) && empty($this->{$name})) {
- $this->{$name} = $value;
- }
- }
- }
|