/**
  * @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;
 }