get_info($id); foreach ($info as $key=>$value) { $this->$key = $value; } return true; } // Constructor /** * gc * * This cleans out unused movies */ public static function gc() { $sql = "DELETE FROM `movie` USING `movie` LEFT JOIN `video` ON `video`.`id` = `movie`.`id` " . "WHERE `video`.`id` IS NULL"; Dba::write($sql); } /** * create * This takes a key'd array of data as input and inserts a new movie entry, it returns the record id */ public static function insert(array $data, $gtypes = array(), $options = array()) { $trimmed = Catalog::trim_prefix(trim($data['original_name'])); $name = $trimmed['string']; $prefix = $trimmed['prefix']; $sql = "INSERT INTO `movie` (`id`, `original_name`, `prefix`, `summary`, `year`) " . "VALUES (?, ?, ?, ?, ?)"; Dba::write($sql, array($data['id'], $name, $prefix, $data['summary'], $data['year'])); return $data['id']; } // create /** * update * This takes a key'd array of data as input and updates a movie entry */ public function update(array $data) { parent::update($data); if (isset($data['original_name'])) { $trimmed = Catalog::trim_prefix(trim($data['original_name'])); $name = $trimmed['string']; $prefix = $trimmed['prefix']; } else { $name = $this->original_name; $prefix = $this->prefix; } $summary = $data['summary'] ?: $this->summary; $year = $data['year'] ?: $this->year; $sql = "UPDATE `movie` SET `original_name` = ?, `prefix` = ?, `summary` = ?, `year` = ? WHERE `id` = ?"; Dba::write($sql, array($name, $prefix, $summary, $year, $this->id)); $this->original_name = $name; $this->prefix = $prefix; $this->summary = $summary; $this->year = $year; return $this->id; } // update /** * format * this function takes the object and reformats some values */ public function format($details = true) { parent::format($details); $this->f_original_name = trim($this->prefix . " " . $this->f_title); $this->f_title = ($this->f_original_name ?: $this->f_title); $this->f_full_title = $this->f_title; $this->f_link = '' . $this->f_title . ''; return true; } //format /** * Get item keywords for metadata searches. * @return array */ public function get_keywords() { $keywords = parent::get_keywords(); $keywords['type'] = array('important' => false, 'label' => null, 'value' => 'movie' ); return $keywords; } public function get_default_art_kind() { return 'default'; } } // Movie class