插件视图模板
{/block}
```
### 2 后台编辑页 (web_listAe.html)
```html
{extend name="app/admin/view/base.html"}
{block name="main"}
{php}
$m = 'app_{插件名称}';
$tid = input('tid', 0);
$c = Db::name($m)->where('id', $tid)->find();
$act = $c ? 'edit' : 'add';
$title = $c ? '编辑' : '添加';
{/php}
{/block}
```
### 3 前端布局页面 (view/layout/页面名.php)
```php
1,
'name' => '页面名称',
'url' => '/pages/mi/apps?id=page_name',
'set' => array(
array(
'alias' => 'title',
'name' => '页面标题',
'type' => '输入框',
'value' => '默认标题',
),
array(
'alias' => 'color',
'name' => '主题颜色',
'type' => '颜色',
'value' => '#10dba7',
),
),
);
// ============================================================
// 2. 主布局方法
// ============================================================
public function layout()
{
// 2.1 获取请求参数
$post = input()['config'] ?? [];
$page = input('page', 1);
$limit = 10;
// 2.2 获取插件配置
$zhuti = addons('plugin_name', 'color');
$title = addons('plugin_name', 'title');
// 2.3 查询数据
$list = Db::name('app_plugin_name')
->where('status', 1)
->order('id desc')
->page($page, $limit)
->select();
// 2.4 构建页面数据
$data = array(
'zhuti' => $zhuti,
'title' => $title,
'style' => 'padding: 16px;',
'dataStyle' => '',
'dataModel' => array(),
'data' => array(
// 导航栏
viewLayout('msg', 'navigate', array(
'return' => false,
'title' => $title,
'color' => $zhuti,
)),
// 内容列表
$this->buildList($list),
)
);
return array('code' => 1, 'msg' => '加载成功', 'data' => $data, 'scroll' => 0.01);
}
// ============================================================
// 3. 构建列表数据
// ============================================================
private function buildList($list)
{
$htmlList = [];
if (empty($list)) {
$htmlList[] = array(
'content' => '
',
);
} else {
foreach ($list as $vo) {
$htmlList[] = array(
'url' => '/pages/mi/index?id=detail&tid=' . $vo['id'],
'type' => 'navigateTo',
'content' => '
' . htmlspecialchars($vo['title']) . '
' . cut($vo['content'], 50) . '
' . date('Y-m-d', $vo['create_time']) . '
',
);
}
}
return array(
'type' => 'html',
'lists' => $htmlList
);
}
}
```
### 4 前端详情页 (view/layout/detail.php)
```php
1,
'name' => '详情页',
'url' => '/pages/mi/index?id=detail&tid=1',
);
public function layout()
{
$post = input()['config'] ?? [];
$tid = $post['tid'] ?? 0;
// 查询数据
$data = Db::name('app_plugin_name')
->where(['id' => $tid, 'status' => 1])
->find();
if (!$data) {
$data = viewLayout('msg', 'tips', [
'title' => '温馨提示',
'msg' => '数据不存在或已删除',
]);
return array('code' => 1, 'msg' => '加载成功', 'data' => $data);
}
$zhuti = addons('plugin_name', 'color');
$title = $data['title'];
$result = array(
'zhuti' => $zhuti,
'title' => $title,
'style' => 'padding: 16px;',
'data' => array(
viewLayout('msg', 'navigate', array(
'return' => true,
'title' => $title,
'color' => $zhuti,
)),
array(
'type' => 'html',
'lists' => array(
array(
'content' => '
' . htmlspecialchars($data['title']) . '
' . makeHtml($data['content']) . '
' . date('Y-m-d H:i', $data['create_time']) . '
',
)
)
)
)
);
return array('code' => 1, 'msg' => '加载成功', 'data' => $result);
}
}
```
---