forum.func.php API参考文档
# forum.func.php API 参考文档
## 概述
`forum.func.php` 是 Xiuno BBS 的板块模型层,提供了板块的 CRUD 操作、列表缓存、权限过滤等核心功能。
## 原始 CURD 操作
### `forum__create()`
#### 说明
```php
function forum__create(array $arr): int|false
```
创建板块记录,最原生的插入操作,无关联其他数据。
#### 参数
- `$arr`: 要插入的板块数据数组,键为字段名,值为字段值
#### 返回值
- 成功返回插入的板块 ID
- 失败返回 FALSE
#### 示例
```php
$arr = array(
'name' => '测试板块',
'rank' => 100,
'create_date' => time(),
'threads' => 0,
'posts' => 0
);
$fid = forum__create($arr);
```
### `forum__update()`
#### 说明
```php
function forum__update(int $fid, array $arr): int|false
```
更新板块记录,最原生的更新操作。
#### 参数
- `$fid`: 板块 ID
- `$arr`: 要更新的数据数组
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$update = array('name' => '新板块名称');
$r = forum__update(1, $update);
```
### `forum__read()`
#### 说明
```php
function forum__read(int $fid): array|false
```
读取板块记录,最原生的查询操作。
#### 参数
- `$fid`: 板块 ID
#### 返回值
- 成功返回板块数组
- 失败返回 FALSE
#### 示例
```php
$forum = forum__read(1);
```
### `forum__delete()`
#### 说明
```php
function forum__delete(int $fid): int|false
```
删除板块记录,最原生的删除操作。
#### 参数
- `$fid`: 板块 ID
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$r = forum__delete(1);
```
### `forum__find()`
#### 说明
```php
function forum__find(array $cond = array(), array $orderby = array(), int $page = 1, int $pagesize = 1000): array
```
查找板块列表,最原生的查询操作。
#### 参数
- `$cond`: 条件数组
- `$orderby`: 排序数组
- `$page`: 页码
- `$pagesize`: 每页数量
#### 返回值
- 返回板块列表数组
#### 示例
```php
$forumlist = forum__find(array(), array('rank' => -1), 1, 1000);
```
## 关联 CURD 操作
### `forum_create()`
#### 说明
```php
function forum_create(array $arr): int|false
```
创建板块,包含缓存清理等关联操作。
#### 参数
- `$arr`: 要插入的板块数据数组
#### 返回值
- 成功返回插入的板块 ID
- 失败返回 FALSE
#### 示例
```php
$arr = array(
'name' => '测试板块',
'rank' => 100,
'create_date' => time(),
'threads' => 0,
'posts' => 0
);
$fid = forum_create($arr);
```
### `forum_update()`
#### 说明
```php
function forum_update(int $fid, array $arr): int|false
```
更新板块,包含缓存清理等关联操作。
#### 参数
- `$fid`: 板块 ID
- `$arr`: 要更新的数据数组
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$update = array('name' => '新板块名称');
$r = forum_update(1, $update);
```
### `forum_read()`
#### 说明
```php
function forum_read(int $fid): array
```
读取板块,优先从缓存中读取。
#### 参数
- `$fid`: 板块 ID
#### 返回值
- 返回板块数组
- 如果板块不存在,返回空数组
#### 示例
```php
$forum = forum_read(1);
```
### `forum_delete()`
#### 说明
```php
function forum_delete(int $fid): int|false
```
删除板块,包含清理关联数据(主题、帖子、权限等)。
#### 参数
- `$fid`: 板块 ID
#### 返回值
- 成功返回受影响的行数
- 失败返回 FALSE
#### 示例
```php
$r = forum_delete(1);
```
### `forum_find()`
#### 说明
```php
function forum_find(array $cond = array(), array $orderby = array('rank'=>-1), int $page = 1, int $pagesize = 1000): array
```
查找板块列表,包含数据格式化。
#### 参数
- `$cond`: 条件数组
- `$orderby`: 排序数组
- `$page`: 页码
- `$pagesize`: 每页数量
#### 返回值
- 返回格式化后的板块列表数组
#### 示例
```php
$forumlist = forum_find(array(), array('rank' => -1), 1, 1000);
```
## 其他方法
### `forum_format()`
#### 说明
```php
function forum_format(array &$forum): void
```
格式化板块数据。
#### 参数
- `$forum`: 板块数组(引用传递)
#### 返回值
- 无返回值,直接修改传入的数组
#### 示例
```php
$forum = forum__read(1);
forum_format($forum);
```
### `forum_count()`
#### 说明
```php
function forum_count(array $cond = array()): int|false
```
统计板块数量。
#### 参数
- `$cond`: 条件数组
#### 返回值
- 成功返回板块数量
- 失败返回 FALSE
#### 示例
```php
$count = forum_count();
```
### `forum_maxid()`
#### 说明
```php
function forum_maxid(): int|false
```
获取板块最大 ID。
#### 参数
- 无参数
#### 返回值
- 成功返回最大板块 ID
- 失败返回 FALSE
#### 示例
```php
$maxid = forum_maxid();
```
### `forum_list_cache()`
#### 说明
```php
function forum_list_cache(): array
```
从缓存中读取板块列表。
#### 参数
- 无参数
#### 返回值
- 返回板块列表数组
#### 示例
```php
$forumlist = forum_list_cache();
```
### `forum_list_cache_delete()`
#### 说明
```php
function forum_list_cache_delete(): void
```
删除板块列表缓存。
#### 参数
- 无参数
#### 返回值
- 无返回值
#### 示例
```php
forum_list_cache_delete();
```
### `forum_list_access_filter()`
#### 说明
```php
function forum_list_access_filter(array $forumlist, int $gid, string $allow = 'allowread'): array
```
对板块列表进行权限过滤。
#### 参数
- `$forumlist`: 板块列表数组
- `$gid`: 用户组 ID
- `$allow`: 权限名称,默认为 'allowread'
#### 返回值
- 返回过滤后的板块列表数组
#### 示例
```php
$forumlist = forum_find();
$filtered_list = forum_list_access_filter($forumlist, 2);
```
### `forum_filter_moduid()`
#### 说明
```php
function forum_filter_moduid(string $moduids): string
```
过滤板块版主 ID。
#### 参数
- `$moduids`: 逗号分隔的版主 ID 字符串
#### 返回值
- 返回过滤后的版主 ID 字符串
#### 示例
```php
$moduids = forum_filter_moduid('1,2,3');
```
### `forum_safe_info()`
#### 说明
```php
function forum_safe_info(array $forum): array
```
获取板块安全信息。
#### 参数
- `$forum`: 板块数组
#### 返回值
- 返回安全的板块数组
#### 示例
```php
$safe_forum = forum_safe_info($forum);
```