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