예제 #1
0
 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;
 }
예제 #2
0
 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;
 }