/**
  * @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;
 }
 /**
  * @access public
  */
 function &getMediaById($id)
 {
     $id = (int) $id;
     if (!is_numeric($id)) {
         return null;
     }
     $query = 'SELECT ' . OOMedia::_getTableName() . '.*, ' . OOMediaCategory::_getTableName() . '.name catname  FROM ' . OOMedia::_getTableJoin() . ' WHERE file_id = ' . $id;
     $sql = new sql();
     //        $sql->debugsql = true;
     $result = $sql->get_array($query);
     if (count($result) == 0) {
         //trigger_error('No OOMediaCategory found with id "'.$id.'"', E_USER_NOTICE);
         return null;
     }
     $result = $result[0];
     //        var_dump( $result);
     $media = new OOMedia();
     $media->_id = $result['file_id'];
     $media->_parent_id = $result['re_file_id'];
     $media->_cat_id = $result['category_id'];
     $media->_cat_name = $result['catname'];
     $media->_name = $result['filename'];
     $media->_orgname = $result['originalname'];
     $media->_type = $result['filetype'];
     $media->_size = $result['filesize'];
     $media->_width = $result['width'];
     $media->_height = $result['height'];
     $media->_title = $result['title'];
     $media->_description = $result['description'];
     $media->_copyright = $result['copyright'];
     $media->_updatedate = $result['updatedate'];
     $media->_updateuser = $result['updateuser'];
     $media->_createdate = $result['createdate'];
     $media->_createuser = $result['createuser'];
     return $media;
 }
 /**
  * @access public
  */
 function getChildren()
 {
     if ($this->_children === null) {
         $this->_children = array();
         $qry = 'SELECT id FROM ' . OOMediaCategory::_getTableName() . ' WHERE re_id = ' . $this->getId() . ' ORDER BY name ';
         $sql = new rex_sql();
         $sql->setQuery($qry);
         $result = $sql->getArray();
         if (is_array($result)) {
             foreach ($result as $row) {
                 $id = $row['id'];
                 $this->_children[] =& OOMediaCategory::getCategoryById($id);
             }
         }
     }
     return $this->_children;
 }
/**
 * Generiert eine Liste mit den Kindkategorien einer Kategorie.
 *
 * @param $category_id Id der Kategorie
 *
 * @return TRUE bei Erfolg, sonst FALSE
 */
function rex_generateMediaCategoryList($category_id)
{
    global $REX;
    $query = 'SELECT id, cast( name AS SIGNED ) AS sort FROM ' . OOMediaCategory::_getTableName() . ' WHERE re_id = ' . $category_id . ' ORDER BY sort, name';
    $sql = rex_sql::factory();
    //$sql->debugsql = true;
    $sql->setQuery($query);
    $content = '<?php' . "\n";
    for ($i = 0; $i < $sql->getRows(); $i++) {
        $content .= '$REX[\'MEDIA\'][\'RE_CAT_ID\'][' . $category_id . '][' . $i . '] = \'' . $sql->getValue('id') . '\';' . "\n";
        $sql->next();
    }
    $content .= '?>';
    $list_file = $REX['GENERATED_PATH'] . "/files/{$category_id}.mclist";
    if (rex_file::put($list_file, $content)) {
        return true;
    }
    return false;
}
 /**
  * @access public
  * @deprecated 20.02.2010
  * Stattdessen getCategoryById() nutzen
  */
 function getCategoryByName($name)
 {
     $query = 'SELECT id FROM ' . OOMediaCategory::_getTableName() . ' WHERE name = "' . $name . '"';
     $sql = new rex_sql();
     //$sql->debugsql = true;
     $result = $sql->getArray($query);
     $media = array();
     if (is_array($result)) {
         foreach ($result as $line) {
             $media[] = OOMediaCategory::getCategoryById($line['id']);
         }
     }
     return $media;
 }
 /**
  * @access public
  * @deprecated 20.02.2010
  * Stattdessen getCategoryById() nutzen
  */
 function getCategoryByName($name)
 {
     global $REX;
     $sql = rex_sql::factory();
     $sql->setQuery('SELECT id FROM ' . OOMediaCategory::_getTableName() . 'WHERE name="' . $name . '"');
     if ($sql->getRows() == 1) {
         return OOMediaCategory::getCategoryById($sql->getValue('id'));
     }
     return null;
 }
 /**
  * @access protected
  */
 function _getTableJoin()
 {
     $mediatable = OOMedia::_getTableName();
     $cattable = OOMediaCategory::_getTableName();
     return $mediatable . ' LEFT JOIN ' . $cattable . ' ON ' . $mediatable . '.category_id = ' . $cattable . '.id';
 }