返回首页 文档
文档 / 插件开发

插件视图模板

2026-06-22 48 次阅读
{/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}
{$title}
{if $c} {/if}
{include file="app/admin/view/editor.html" /}
取消
{/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); } } ``` ---