/** * @access public */ function getMediaById($id) { $id = (int) $id; if ($id == 0) { return null; } $query = 'SELECT ' . OOMedia::_getTableName() . '.*, ' . OOMediaCategory::_getTableName() . '.name catname FROM ' . OOMedia::_getTableJoin() . ' WHERE file_id = ' . $id; $sql = new rex_sql(); // $sql->debugsql = true; $result = $sql->getArray($query); if (count($result) == 0) { trigger_error('No OOMediaCategory found with id "' . $id . '"', E_USER_NOTICE); return null; } $result = $result[0]; $aliasMap = array('file_id' => 'id', 're_file_id' => 'parent_id', 'category_id' => 'cat_id', 'catname' => 'cat_name', 'filename' => 'name', 'originalname' => 'orgname', 'filetype' => 'type', 'filesize' => 'size'); $media = new OOMedia(); foreach ($sql->getFieldNames() as $fieldName) { if (in_array($fieldName, array_keys($aliasMap))) { $var_name = '_' . $aliasMap[$fieldName]; } else { $var_name = '_' . $fieldName; } $media->{$var_name} = $result[$fieldName]; } return $media; }