# 模型字段变量函数
[TOC]
## text 文本框
~~~
function text($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$value = $setting['defaultvalue'];
//是否密码框
$type = "text";
if( $setting['ispassword'] ) {
$type = "password";
}
$form = <<<EOF
<input id="info_$field" name="info[$field]" type="$type" class="form-control" value="$value">
EOF;
return $form;
}
~~~
## textarea 多行文本框
~~~
function textarea($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$value = $setting['defaultvalue'];
$height = $setting['height'].'px';
$form = <<<EOF
<textarea type="text" id="info_$field" name="info[$field]" class="form-control" style="height:$height">$value</textarea>
EOF;
return $form;
}
~~~
## number 数字
~~~
function number($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$value = $setting['defaultvalue'];
$form = <<<EOF
<input id="info_$field" name="info[$field]" type="text" class="form-control" value="$value">
EOF;
return $form;
}
~~~
## datetime 日期时间
~~~
function datetime($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$value = $setting['defaultvalue'];
//字段类型
$fieldtype = $setting['fieldtype'];
$date = is_null($fieldinfo['realvalue']) ? date('Y-m-d') : $fieldinfo['realvalue'];
$datetime = is_null($fieldinfo['realvalue']) ? date('Y-m-d H:i:s') : $fieldinfo['realvalue'];
if( $fieldtype=='date' ) {
$str = <<<EOF
<label class="laydate-icon"></label>
<input class="form-control layer-date" name="info[$field]" value="$date" onclick="laydate({format: 'YYYY-MM-DD'})">
EOF;
}elseif( $fieldtype=='datetime' ) {
$str = <<<EOF
<label class="laydate-icon"></label>
<input class="form-control layer-date" name="info[$field]" value="$datetime" onclick="laydate({istime: true, format: 'YYYY-MM-DD hh:mm:ss'})">
EOF;
}
return $str;
}
~~~
## image 单图上传
~~~
function image($fieldinfo){
//字段名
$field = $fieldinfo['field'];
$form = <<<EOF
<div id="file-pretty">
<input type="file" id="info_$field" name="info[$field]" class="form-control">
</div>
EOF;
return $form;
}
~~~
## images 多图上传
~~~
function images($fieldinfo){
//字段名
$field = $fieldinfo['field'];
$form = <<<EOF
<div id="uploader" class="xb-uploader">
<div class="queueList">
<div class="placeholder">
<div class="filePicker"></div>
<p>或将照片拖到这里,单次最多可选300张</p>
</div>
</div>
<div class="statusBar" style="display:none;">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div>
<div class="info"></div>
<div class="btns">
<div class="webuploader-container filePicker2">
<div class="webuploader-pick">继续添加</div>
<div style="position: absolute; top: 0px; left: 0px; width: 1px; height: 1px; overflow: hidden;" id="rt_rt_1armv2159g1o1i9c2a313hadij6">
</div>
</div>
<div class="uploadBtn">开始上传</div>
</div>
</div>
</div>
EOF;
return $form;
}
~~~
## downfile 单文件上传
~~~
function downfile($fieldinfo){
//字段名
$field = $fieldinfo['field'];
$form = <<<EOF
<div id="file-pretty">
<input type="file" id="info_$field" name="info[$field]" class="form-control">
</div>
EOF;
return $form;
}
~~~
## downfiles 多文件上传
~~~
function downfiles($fieldinfo){
//字段名
$field = $fieldinfo['field'];
$form = <<<EOF
<div id="uploader" class="xb-uploader">
<div class="queueList">
<div class="placeholder">
<div class="filePicker"></div>
<p>或将文件拖到这里</p>
</div>
</div>
<div class="statusBar" style="display:none;">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div>
<div class="info"></div>
<div class="btns">
<div class="webuploader-container filePicker2">
<div class="webuploader-pick">继续添加</div>
<div style="position: absolute; top: 0px; left: 0px; width: 1px; height: 1px; overflow: hidden;" id="rt_rt_1armv2159g1o1i9c2a313hadij6">
</div>
</div>
<div class="uploadBtn">开始上传</div>
</div>
</div>
</div>
EOF;
return $form;
}
~~~
## editor 编辑器
~~~
function editor($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$value = $setting['defaultvalue'];
//高度
$height = $setting['height'];
// 插件地址
$admin = config("view_replace_str.__ADMIN__");
$str = <<<EOF
<script id="container" name="content" type="text/plain">$value</script>
<script src="$admin/plugins/ueditor1_4_3_3/ueditor.config.js"></script>
<script src="$admin/plugins/ueditor1_4_3_3/ueditor.all.js"></script>
<script>
var um = UE.getEditor('container',{
initialFrameHeight:$height,
autoHeightEnabled:false,
catchRemoteImageEnable:true
});
</script>
EOF;
return $str;
}
~~~
## box 选项
~~~
function box($fieldinfo){
//字段名
$field = $fieldinfo['field'];
//反序列化设置项
$setting = unserialize($fieldinfo['setting']);
//默认值
$defaultvalue = $setting['defaultvalue'];
$options = explode("\n",$setting['options']);
foreach ($options as $name_value) {
$v = explode('|', $name_value);
$k = trim($v['1']);
$option[$k] = $v['0'];
}//return $option;
switch ($setting['boxtype']) {
case 'radio':
$radio = '';
$state = '';
foreach ($option as $key => $value) {
$state = $defaultvalue == $key ? 'checked' : '';
$radio .="<input type='radio' name='$field' value='$key' $state> <i></i> $value ";
}
$str = <<<EOF
<div class="radio i-checks">
<label style="padding-left:0">
$radio
</label>
</div>
EOF;
break;
case 'checkbox':
$checkbox = '';
$state = '';
$defaultvalues = explode(",",$defaultvalue);
foreach ($option as $key => $value) {
$state = in_array($key,$defaultvalues) ? 'checked' : '';
$checkbox .="<input type='checkbox' name='$field' value='$key' $state> <i></i> $value ";
}
$str = <<<EOF
<div class="checkbox i-checks">
<label style="padding-left:0">
$checkbox
</label>
</div>
EOF;
break;
case 'select':
$select = '';
$state = '';
foreach ($option as $key => $value) {
$state = $defaultvalue == $key ? 'selected' : '';
$select .="<option value='$key' $state>$value</option>";
}
$str = <<<EOF
<select class="form-control m-b" name="$field">
$select
</select>
EOF;
break;
case 'multiple':
$multiple = '';
$state = '';
$defaultvalues = explode(",",$defaultvalue);
foreach ($option as $key => $value) {
$state = in_array($key,$defaultvalues) ? 'selected' : '';
$multiple .="<option value='$key' $state>$value</option>";
}
$str = <<<EOF
<select class="form-control m-b" name="$field" multiple>
$multiple
</select>
EOF;
break;
}
return $str;
}
~~~
- Layer无刷新不跳转弹框提示信息
- 整合ThinkPHP+实用代码
- TP整合Layer插件实现无刷新
- 自定义助手函数
- 添加信息失败后不跳转
- 三种无限级分类
- TP常用代码
- 自定义公共函数
- TP模型管理专题
- TP模型管理之添加模型
- sfox_newmodel.sql
- TP模型管理之删除模型
- TP模型管理之编辑模型
- TP模型管理之字段添加
- sfox_newmodel.sql_edit
- layer_hplus.js_edit
- TP模型管理之字段删除
- TP模型管理之字段编辑
- TP模型管理之预览模型
- TP模型管理之公共函数
- layer_hplus.js_修订一
- TP模型管理之预览模型静态页
- 后台内容管理系统
- 分类树显示
- 内容列表显示
- 信息发布
- 编辑信息
- layer_hplus.js
- myJs第一版
- myJs第二版
- myJs第三版
- myJs第四版
- TP5插件用法
- Datatables
- WebUploader
- bootstrap-fileinput
- UEditor
- 简单调用
- 路径问题
- 跨域多图上传
- 跨域单图上传
- UEditor图片跨域上传解决方案
- 定制工具栏图标
- ajaxFileUpload
- LayUI
- 图片上传
- layui分页
- 搜索页
- 搜索优化及删除
- Uploadify
- TP5前端应用
- 静态首页
- 前台首页功能实现
- 自定义标签库
- 前台模板继承应用
- 首页自定义标签改进
- 文章内容页
- 自定义标签改进
- 自定义标签修正
- 图片等比例自动缩放
- 后台权限管理
- 角色管理
- 规则管理
- 权限设置
- 会员管理
- 权限管理
- 前台登录注册功能
- 注册登录
- 阿里大于手机注册
- 阿里大于升级阿里云短信服务
- 自动登录完成
- PHP异位或加密实现自动登陆
- 微信开发
- 分享接口
- 静态页面实现微信分享
- 动态页微信分享
- 页面静态化
- 1-全站静态化前期配置
- 2-链接地址静态化
- TP5常用片段代码
- 加载静态资源路径与常量
- thinkphp5预定义常量
- 删除某文件夹的内容
- 解压插件包
- 异步提交插件
- 其他功能
- 背景音乐
- 手机访问PC网站自动跳转到手机网站代码
- 手机微信音乐MP3播放器
- 后盾之网页背景音乐
- 播放器宽度自适应
- 前台首页数据调用
- 视频列表
- 搜索分页
- H5解决苹果(IOS)不能自动播放音乐
- 清空缓存
- 文件处理常识
- 删除路径下的所有文件夹和文件
- 一键清空缓存
- 评论留言
- 格式化时间
- 替换微博内容的URL地址@用户与表情
- PHP正则理解
- jQuery评论插件
- TP空操作
- TP路由
- 跨域访问
- 设置请其头允许跨域请求
- 模板前台判断手机访问跳转手机网址代码
- PHP遍历一个文件夹下所有文件和子文件夹
- PHP获取视频的第一帧与时长
- TP5数据库
- 链式操作原理
- update替换字段部分内容
- 后台开发
- 后台登录页居中显示
- TP5自带验证码
- JS & JQuery专题
- 二级城市联动菜单
- 模板引擎
- 混合模板编译
- 黄永成TP微博开发
- 消息推送
- memcache安装
- 插件开发
- 插件介绍
- 插件钩子
- 浅谈初步理解钩子
- 插件钩子(hooks)分析
- 插件钩子简单理解
- 控制器调用插件
- 钩子通用处理函数
- 插件基类代码
- 插件测试代码
- 浅谈钩子与插件
- 技术综合
- 常用代码
- PHP
- 56个PHP开发常用代码片段(上)
- 56个PHP 开发常用代码片段(中)
- 56个PHP 开发常用代码片段(下)
- sublime text安装自动补全注释的插件
- 影音视频开发
- 视频
- H5视频直播扫盲
- 音乐
- 语音
- PHP实现语音播报功能
- MUI
- 窗体操作