完善表单功能
This commit is contained in:
60
app/controller/api/Form.php
Normal file
60
app/controller/api/Form.php
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
namespace app\controller\api;
|
||||||
|
|
||||||
|
use think\facade\Db;
|
||||||
|
use \app\model\Form as FormModel;
|
||||||
|
use \app\model\FormAttr;
|
||||||
|
|
||||||
|
class Form extends Base {
|
||||||
|
|
||||||
|
public function index(){
|
||||||
|
$id = $this->request->param('id');
|
||||||
|
$name = $this->request->param('name');
|
||||||
|
|
||||||
|
$map = [];
|
||||||
|
|
||||||
|
$map[] = ['id', '=', $id];
|
||||||
|
|
||||||
|
$info = FormModel::where($map)->find();
|
||||||
|
$attr = FormAttr::where('form_id', $info['id'])->select();
|
||||||
|
|
||||||
|
if ($info['relation'] && strpos($info['relation'], ":")) {
|
||||||
|
list($model, $relation) = explode(":", $info['relation']);
|
||||||
|
$relation = explode(",", $relation);
|
||||||
|
if (is_array($relation)) {
|
||||||
|
$rmap['id'] = ['IN', $relation];
|
||||||
|
}elseif (is_string($relation)) {
|
||||||
|
$rmap['id'] = $relation;
|
||||||
|
}
|
||||||
|
$info['relation_list'] = Db::name(ucfirst($model))->where($rmap)->order('sort desc, id asc')->select();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->data['data'] = [
|
||||||
|
'info' => $info,
|
||||||
|
'attr' => $attr
|
||||||
|
];
|
||||||
|
return $this->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function save(){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$id = $this->request->param('id');
|
||||||
|
|
||||||
|
$info = FormModel::where('id', $id)->find();
|
||||||
|
|
||||||
|
$result = Db::name(ucfirst($info['name']))->save($data);
|
||||||
|
if (false !== $result) {
|
||||||
|
$this->data['code'] = 1;
|
||||||
|
}else{
|
||||||
|
$this->data['code'] = 0;
|
||||||
|
}
|
||||||
|
return $this->data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
namespace app\controller\front;
|
namespace app\controller\front;
|
||||||
|
|
||||||
|
use think\facade\Db;
|
||||||
use \app\model\Form as FormModel;
|
use \app\model\Form as FormModel;
|
||||||
use \app\model\FormAttr;
|
use \app\model\FormAttr;
|
||||||
|
|
||||||
@@ -19,7 +20,18 @@ class Form extends Base {
|
|||||||
*/
|
*/
|
||||||
public function index(){
|
public function index(){
|
||||||
if($this->request->isAjax()){
|
if($this->request->isAjax()){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$id = $this->request->param('id');
|
||||||
|
|
||||||
|
$info = FormModel::where('id', $id)->find();
|
||||||
|
|
||||||
|
$result = Db::name(ucfirst($info['name']))->save($data);
|
||||||
|
if (false !== $result) {
|
||||||
|
$url = (isset($info['redirect_url']) && $info['redirect_url']) ? $info['redirect_url'] : '';
|
||||||
|
return $this->success("提交成功!", $url);
|
||||||
|
}else{
|
||||||
|
return $this->error("提交失败!");
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
$id = $this->request->param('id');
|
$id = $this->request->param('id');
|
||||||
$name = $this->request->param('name');
|
$name = $this->request->param('name');
|
||||||
@@ -28,10 +40,23 @@ class Form extends Base {
|
|||||||
|
|
||||||
$map[] = ['id', '=', $id];
|
$map[] = ['id', '=', $id];
|
||||||
|
|
||||||
$info = Form::where($map)->find();
|
$info = FormModel::where($map)->find();
|
||||||
|
$attr = FormAttr::where('form_id', $info['id'])->select();
|
||||||
|
|
||||||
|
if ($info['relation'] && strpos($info['relation'], ":")) {
|
||||||
|
list($model, $relation) = explode(":", $info['relation']);
|
||||||
|
$relation = explode(",", $relation);
|
||||||
|
if (is_array($relation)) {
|
||||||
|
$rmap['id'] = ['IN', $relation];
|
||||||
|
}elseif (is_string($relation)) {
|
||||||
|
$rmap['id'] = $relation;
|
||||||
|
}
|
||||||
|
$info['relation_list'] = Db::name(ucfirst($model))->where($rmap)->order('sort desc, id asc')->select();
|
||||||
|
}
|
||||||
|
|
||||||
$this->data = [
|
$this->data = [
|
||||||
'info' => $info
|
'info' => $info,
|
||||||
|
'attr' => $attr
|
||||||
];
|
];
|
||||||
return $this->fetch();
|
return $this->fetch();
|
||||||
}
|
}
|
||||||
|
|||||||
35
public/template/default/front/form_index.html
Normal file
35
public/template/default/front/form_index.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>SentCMS网站管理系统</title>
|
||||||
|
<!-- Fonts -->
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
|
||||||
|
<!-- Styles -->
|
||||||
|
<style>
|
||||||
|
html, body {background-color: #fff; color: #636b6f; font-family: 'Raleway', sans-serif; font-weight: 100; height: 100vh; margin: 0;}
|
||||||
|
.top{text-align: right; line-height: 35px; padding: 0 20px;}
|
||||||
|
.top a{color: #333333; padding: 0 10px}
|
||||||
|
.full-height {height: 90vh;}
|
||||||
|
.flex-center {align-items: center;display: flex;justify-content: center;}
|
||||||
|
.position-ref {position: relative;}
|
||||||
|
.top-right {position: absolute;right: 10px;top: 18px;}
|
||||||
|
.content {text-align: center;}
|
||||||
|
.title {font-size: 84px;}
|
||||||
|
.links > a {color: #636b6f;padding: 0 25px; font-size: 12px;font-weight: 600;letter-spacing: .1rem;text-decoration: none;text-transform: uppercase;}
|
||||||
|
.m-b-md {margin-bottom: 30px;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="top">
|
||||||
|
<a href="{:url('/user/index/register')}">注册</a>
|
||||||
|
<a href="{:url('/user/index/login')}">登录</a>
|
||||||
|
</div>
|
||||||
|
<div class="flex-center position-ref full-height">
|
||||||
|
<div class="content">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -25,7 +25,7 @@ Route::rule('/', 'front.Index/index');
|
|||||||
Route::rule('search', 'front.Content/search');
|
Route::rule('search', 'front.Content/search');
|
||||||
Route::rule('category', 'front.Content/category');
|
Route::rule('category', 'front.Content/category');
|
||||||
Route::rule('topic-:id', 'front.Content/topic');
|
Route::rule('topic-:id', 'front.Content/topic');
|
||||||
Route::rule('form/:id/:name', 'front.Form/index');
|
Route::rule('form/:id/[:name]', 'front.Form/index');
|
||||||
Route::rule('front/:controller/:function', 'front.:controller/:function');
|
Route::rule('front/:controller/:function', 'front.:controller/:function');
|
||||||
|
|
||||||
Route::group('admin', function () {
|
Route::group('admin', function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user