public static function getTable($tbl_name) { $acl = Bootstrap::get('acl'); $zendDb = Bootstrap::get('ZendDb'); if (!self::canGroupViewTable($tbl_name)) { return false; } $sql = "SELECT T.TABLE_NAME AS id,\n T.TABLE_NAME AS table_name,\n CREATE_TIME AS date_created,\n TABLE_COMMENT AS comment,\n ifnull(hidden,0) as hidden,\n ifnull(single,0) as single,\n is_junction_table,\n user_create_column,\n user_update_column,\n date_create_column,\n date_update_column,\n footer,\n TABLE_ROWS AS count\n FROM INFORMATION_SCHEMA.TABLES T\n LEFT JOIN directus_tables DT ON (DT.table_name = T.TABLE_NAME)\n WHERE T.TABLE_SCHEMA = :schema AND T.TABLE_NAME = :table_name"; $sth = $zendDb->query($sql); $parameterContainer = new ParameterContainer(); $parameterContainer->offsetSet(':table_name', $tbl_name, ParameterContainer::TYPE_STRING); $parameterContainer->offsetSet(':schema', $zendDb->getCurrentSchema(), ParameterContainer::TYPE_STRING); $result = $sth->execute($parameterContainer); $info = $result->current(); if ($info) { $info['hidden'] = (bool) $info['hidden']; $info['single'] = (bool) $info['single']; $info['footer'] = (bool) $info['footer']; $info['is_junction_table'] = (bool) $info['is_junction_table']; } $relationalTableGateway = new RelationalTableGateway($acl, $tbl_name, $zendDb); $info = array_merge($info, $relationalTableGateway->countActiveOld()); $info['columns'] = self::getSchemaArray($tbl_name); $directusPreferencesTableGateway = new DirectusPreferencesTableGateway($acl, $zendDb); $currentUser = Auth::getUserInfo(); $info['preferences'] = $directusPreferencesTableGateway->fetchByUserAndTable($currentUser['id'], $tbl_name); return $info; }
public static function getTable($tbl_name) { $acl = Bootstrap::get('acl'); $zendDb = Bootstrap::get('ZendDb'); // TODO: getTable should return an empty object // or and empty array instead of false // in any given situation that the table // can be find or used. if (!self::canGroupViewTable($tbl_name)) { return false; } $info = SchemaManager::getTable($tbl_name); if (!$info) { return false; } if ($info) { $info['count'] = (int) $info['count']; $info['date_created'] = DateUtils::convertToISOFormat($info['date_created'], 'UTC', get_user_timezone()); $info['hidden'] = (bool) $info['hidden']; $info['single'] = (bool) $info['single']; $info['footer'] = (bool) $info['footer']; } $relationalTableGateway = new RelationalTableGateway($acl, $tbl_name, $zendDb); $info = array_merge($info, $relationalTableGateway->countActiveOld()); $info['columns'] = self::getSchemaArray($tbl_name); $directusPreferencesTableGateway = new DirectusPreferencesTableGateway($acl, $zendDb); $currentUser = Auth::getUserInfo(); $info['preferences'] = $directusPreferencesTableGateway->fetchByUserAndTable($currentUser['id'], $tbl_name); return $info; }