public static function save($id) { $res = Data::query('movie', 'id_ac = ' . $id); if (!count($res)) { $info = static::getInfosMovie($id); $info['id_ac'] = $id; $info['id_video'] = null; $info['plateforme'] = null; $movie = Data::getById('movie', Data::add('movie', $info)); } else { $movie = Data::getObject(current($res)); } return $movie; }
public function checkTimeout() { $sessions = parent::query('thinsession', 'expire < ' . time()); if (count($sessions)) { foreach ($sessions as $session) { $session = parent::getObject($session); $delete = parent::delete('thinsession', $session->getId()); } } }
/** * Delete an item from the cache. * * @param string $key * @return void */ public function forget($key) { $this->_cleanCache(); $res = Data::query('cache', 'key = ' . $key . ' && namespace = ' . $this->namespace); if (count($res)) { $obj = Data::getObject(current($res)); $del = Data::delete('cache', $obj->getId()); } }
public function join($fkTable, $condition) { $joinResults = array(); $db = new \SQLite3(':memory:'); $results = count($this->results) ? $this->results : $this->all()->sub(); $fields = Arrays::exists($fkTable, Data::$_fields) ? Data::$_fields[$fkTable] : Data::noConfigFields($fkTable); $q = "DROP TABLE IF EXISTS {$fkTable}; CREATE TABLE {$fkTable} (id VARCHAR PRIMARY KEY, date_create"; if (count($fields)) { foreach ($fields as $field => $infos) { $q .= ", {$field}"; } } $q .= ");"; $db->exec($q); $datas = Data::getAll($fkTable); foreach ($datas as $tmpObject) { $object = Data::getObject($tmpObject, $fkTable); $q = "INSERT INTO {$fkTable} (id, date_create) VALUES ('" . \SQLite3::escapeString($object->id) . "', '" . \SQLite3::escapeString($object->date_create) . "')"; $db->exec($q); foreach ($fields as $field => $info) { $q = "UPDATE {$fkTable} SET {$field} = '" . \SQLite3::escapeString($object->{$field}) . "' WHERE id = '" . \SQLite3::escapeString($object->id) . "'"; $db->exec($q); } } $fields = Arrays::exists($this->type, Data::$_fields) ? Data::$_fields[$this->type] : Data::noConfigFields($this->type); $q = "DROP TABLE IF EXISTS {$this->type}; CREATE TABLE {$this->type} (id VARCHAR PRIMARY KEY, date_create"; if (count($fields)) { foreach ($fields as $field => $infos) { $q .= ", {$field}"; } } $q .= ");"; $db->exec($q); $datas = Data::getAll($this->type); foreach ($datas as $tmpObject) { $object = Data::getObject($tmpObject, $this->type); $q = "INSERT INTO {$this->type} (id, date_create) VALUES ('" . \SQLite3::escapeString($object->id) . "', '" . \SQLite3::escapeString($object->date_create) . "')"; $db->exec($q); foreach ($fields as $field => $info) { $q = "UPDATE {$this->type} SET {$field} = '" . \SQLite3::escapeString($object->{$field}) . "' WHERE id = '" . \SQLite3::escapeString($object->id) . "'"; $db->exec($q); } } list($field, $op, $value) = explode(' ', $condition, 3); $where = "{$fkTable}.{$field} {$op} '" . \SQLite3::escapeString($value) . "'"; $q = "SELECT {$this->type}.id\n FROM {$this->type}\n LEFT JOIN {$fkTable} ON {$this->type}.{$fkTable} = {$fkTable}.id\n WHERE {$where}\n "; $res = $db->query($q); while ($row = $res->fetchArray()) { array_push($joinResults, $row['id']); } if (count($joinResults)) { $this->results = $joinResults; } return $this; }