iris
iris copied to clipboard
how to convert string to html language
my string:
ayer.open({
type: 1
,title: false
,closeBtn: false
,area: '300px;'
,shade: 0.8
,id: 'LAY_layuipro'
,btn: ["admin","index"]
,btnAlign: 'c'
,moveType: 1
,content: '<div style="padding: 50px; line-height: 22px;font-weight: 300;"> layer.msg(install sucess)</div>'
,success: function(layero){
var btn = layero.find('.layui-layer-btn');
"btn.find('.layui-layer-btn0').attr({href: '/system/',target: '_blank'});btn.find('.layui-layer-btn1').attr({href: '/',target: '_blank'});"
}
});
html
<!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.0">
<title>安企CMS(AnqiCMS)初始化安装</title>
<style>
.container {
padding: 30px;
}
.title {
text-align: center;
padding: 20px;
}
.layui-form {
max-width: 600px;
margin: 50px auto;
padding: 20px;
max-width: 600px;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
border-radius: 5px;
}
.layui-form-item {
display: flex;
margin-bottom: 20px;
align-items: top;
}
.layui-form-label {
padding: 6px 0;
width: 100px;
}
.layui-input-block {
flex: 1;
}
.layui-input {
box-sizing: border-box;
width: 100%;
padding: 2px 10px;
border: 1px solid #eaeaea;
border-radius: 4px;
height: 36px;
font-size: 15px;
}
input:focus,
textarea:focus {
outline: 1px solid #29d;
}
.layui-form-mid {
padding: 3px 0;
}
.layui-aux-word {
color: #999;
font-size: 12px;
}
.layui-btn {
cursor: pointer;
border-radius: 2px;
color: #555;
background-color: #fff;
padding: 10px 15px;
margin: 0 5px;
border: 1px solid #eaeaea;
}
.layui-btn.btn-primary {
color: #fff;
background-color: #3f90f9;
}
.submit-buttons {
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<h1 class="title">初始化安装</h1>
<form class="layui-form" action="/install" method="post">
<div>
<div class="layui-form-item">
<label class="layui-form-label">数据库地址</label>
<div class="layui-input-block">
<input type="text" name="host" value="localhost" required placeholder="一般是localhost"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数据库端口</label>
<div class="layui-input-block">
<input type="text" name="port" value="3306" required placeholder="一般是3306" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数据库名称</label>
<div class="layui-input-block">
<input type="text" name="database" value="anqicms" required placeholder="安装到哪个数据库"
autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-aux-word">如果数据库不存在,程序则会尝试创建它</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数据库用户</label>
<div class="layui-input-block">
<input type="text" name="user" required placeholder="填写数据库用户名" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">数据库密码</label>
<div class="layui-input-block">
<input type="password" name="password" required placeholder="填写数据库密码" autocomplete="off"
class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">后台用户名</label>
<div class="layui-input-block">
<input type="text" name="admin_user" value="admin" required placeholder="用于登录管理后台"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">后台密码</label>
<div class="layui-input-block">
<input type="password" name="admin_password" minlength="6" maxlength="20" required
placeholder="请填写6位以上的密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">网站地址</label>
<div class="layui-input-block">
<input type="text" name="base_url" value="" autocomplete="off" class="layui-input">
<div class="layui-form-mid layui-aux-word">
指该网站的网址,如:https://www.anqicms.com,用来生成全站的绝对地址
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block submit-buttons">
<button type="reset" class="layui-btn">重置</button>
<button class="layui-btn btn-primary" type="submit">确认初始化</button>
</div>
</div>
</form>
</div>
</body>
<script src="https://www.layuicdn.com/layui/layui.js"></script>
<script>
{{ if .message }}
{{ $length := len .btns }}{{ if eq $length 0 }}
layer.msg({{.message}})
{{else}}
layer.open({
type: 1
,title: false //不显示标题栏
,closeBtn: false
,area: '300px;'
,shade: 0.8
,id: 'LAY_layuipro' //设定一个id,防止重复弹出
,btn: {{.btns}}
,btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1
,content: '<div style="padding: 50px; line-height: 22px;font-weight: 300;"> layer.msg({{.message}})</div>'
,success: function(layero){
var btn = layero.find('.layui-layer-btn');
{{.links}}
}
});
{{end}}
{{ end }}
</script>
</html>
context
type Button struct {
Name string
Link string
}
func Install(ctx iris.Context) {
fmt.Println("........")
if dao.DB != nil {
ctx.Redirect("/")
return
}
templateName := "install.html"
//data := iris.Map{
// "message": "",
// "bts": []Button{},
//}
button := []Button{
{Name: "admin", Link: "/system/"},
{Name: "index", Link: "/"},
}
links := ""
btns := []string{}
i := 0
for _, btn := range button {
links += fmt.Sprintf("btn.find('.layui-layer-btn%v').attr({href: '%v',target: '_blank'});", i, btn.Link)
btns = append(btns, btn.Name)
i += 1
}
data := iris.Map{
"message": "install success",
"btns": btns,
"links": links,
}
ctx.View(templateName, data)
return
}
Hello @PalaChen, this is a general Go question.
Please check the standard html/template's template.HTML, template.URL, template.CSS and template.JS - they are used to pass "unsecure" 3rd-party html contents into templates.
Since it's not relevant to Iris and also the issue is stale, it should be closed.