2255 lines
91 KiB
PHP
2255 lines
91 KiB
PHP
|
<?php
|
|||
|
|
|||
|
/**
|
|||
|
* @Descripttion : FOXCMS 是一款高效的 PHP 多端跨平台内容管理系统
|
|||
|
* @Author : FoxCMS Team
|
|||
|
* @Date : 2023/6/26 17:42
|
|||
|
* @version : V1.08
|
|||
|
* @copyright : ©2021-现在 贵州黔狐科技股份有限公司 版权所有
|
|||
|
* @LastEditTime : 2023/6/26 17:42
|
|||
|
*/
|
|||
|
|
|||
|
use think\facade\Db;
|
|||
|
use app\admin\util\TableUtil;
|
|||
|
|
|||
|
//获取基本设置对象
|
|||
|
function getBasic()
|
|||
|
{
|
|||
|
//获取静态文件存放目录
|
|||
|
$basic = \app\common\model\Basic::where("status", 1)->find();
|
|||
|
return $basic;
|
|||
|
}
|
|||
|
|
|||
|
//组合多维数组
|
|||
|
function unlimitedForLayer($cate, $name = 'sub', $pid = 0)
|
|||
|
{
|
|||
|
$arr = array();
|
|||
|
foreach ($cate as $v) {
|
|||
|
if ($v['pid'] == $pid) {
|
|||
|
$v["link"] = getColumnUrl($v);
|
|||
|
$v[$name] = unlimitedForLayer($cate, $name, $v['id']);
|
|||
|
$arr[] = $v;
|
|||
|
}
|
|||
|
}
|
|||
|
return $arr;
|
|||
|
}
|
|||
|
|
|||
|
//子栏目重新组装数据
|
|||
|
function alterChildColumn($list)
|
|||
|
{
|
|||
|
$arr = array();
|
|||
|
foreach ($list as $v) {
|
|||
|
$v['url'] = $v['v_path'];
|
|||
|
$arr[] = $v;
|
|||
|
}
|
|||
|
return $arr;
|
|||
|
}
|
|||
|
//栏目地址重新组装
|
|||
|
function columnList($list, $titlelen = -1)
|
|||
|
{
|
|||
|
$arr = array();
|
|||
|
$table_prefix = config("database.connections.mysql.prefix");
|
|||
|
foreach ($list as $v) {
|
|||
|
$v["link"] = getColumnUrl($v);
|
|||
|
$v['source'] = $v['article_source'];
|
|||
|
if ($titlelen != -1 && $titlelen > 0 && strlen($v['title']) > 0) {
|
|||
|
$v['title'] = myTitle($v['title'], $titlelen);
|
|||
|
}
|
|||
|
|
|||
|
$columnList = get_column_down($v['id']);
|
|||
|
$v['child_num'] = sizeof($columnList); //子栏目数
|
|||
|
$sum = 0;
|
|||
|
foreach ($columnList as $column) {
|
|||
|
$table_name = $table_prefix . $column['column_model'];
|
|||
|
if (TableUtil::check_table($table_name)) {
|
|||
|
$sum += Db::name($column['column_model'])->where('column_id', $column['id'])->count();
|
|||
|
}
|
|||
|
}
|
|||
|
$v['sum'] = $sum;
|
|||
|
$arr[] = $v;
|
|||
|
}
|
|||
|
return $arr;
|
|||
|
}
|
|||
|
|
|||
|
//获取父类对象
|
|||
|
function getParent($list, $pid)
|
|||
|
{
|
|||
|
|
|||
|
foreach ($list as $data) {
|
|||
|
if ($pid == $data->id) {
|
|||
|
return $data;
|
|||
|
}
|
|||
|
}
|
|||
|
return [];
|
|||
|
}
|
|||
|
|
|||
|
//栏目地址重新组装
|
|||
|
function alterList($list, $pmodel = "", $titlelen = -1)
|
|||
|
{
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
$url_html_suffix = config("route.url_html_suffix");
|
|||
|
$arr = array();
|
|||
|
$basic = getBasic(); //基本信息
|
|||
|
$isMobile = is_mobile();
|
|||
|
$home_lang = xn_cfg("base.home_lang"); //默认语言
|
|||
|
|
|||
|
foreach ($list as $v) {
|
|||
|
$html_save_path = $basic["html_save_path"];
|
|||
|
$cur_lang = $v['visit_lang'];
|
|||
|
if ($home_lang == $cur_lang) {
|
|||
|
$cur_lang = "";
|
|||
|
} else {
|
|||
|
$html_save_path = $cur_lang;
|
|||
|
}
|
|||
|
if (empty($pmodel)) {
|
|||
|
$model = $v["model"];
|
|||
|
} else {
|
|||
|
$model = $pmodel;
|
|||
|
}
|
|||
|
if ($v["id"] == -1) {
|
|||
|
$v["link"] = "javascript:void(0);";
|
|||
|
} else {
|
|||
|
if ($url_model == 1) {
|
|||
|
$nUrl = DIRECTORY_SEPARATOR . $model . DIRECTORY_SEPARATOR . 'detail';
|
|||
|
if (empty($cur_lang)) {
|
|||
|
$v["link"] = url("{$nUrl}") . "?id={$v['id']}";
|
|||
|
} else {
|
|||
|
$v["link"] = url("{$nUrl}") . "?id={$v['id']}&lang={$cur_lang}";
|
|||
|
}
|
|||
|
} elseif ($url_model == 2) {
|
|||
|
$nUrl = "/{$cur_lang}" . DIRECTORY_SEPARATOR . $model . DIRECTORY_SEPARATOR . 'detail';
|
|||
|
$v["link"] = url("{$nUrl}/{$v['id']}");
|
|||
|
} elseif ($url_model == 3) {
|
|||
|
$column_id = $v['column_id'];
|
|||
|
if (empty($column_id)) {
|
|||
|
$v["link"] = "javascript:void(0);";
|
|||
|
continue;
|
|||
|
}
|
|||
|
if ($isMobile) { //手机访问
|
|||
|
$nUrl = "/$cur_lang" . DIRECTORY_SEPARATOR . $model . DIRECTORY_SEPARATOR . 'detail';
|
|||
|
$v["link"] = url("{$nUrl}/{$v['id']}");
|
|||
|
} else {
|
|||
|
$columnList = get_column_up($column_id, "", $v['visit_lang']);
|
|||
|
$parenPath = "";
|
|||
|
foreach ($columnList as $column) {
|
|||
|
$parenPath .= $column["dir_path"];
|
|||
|
}
|
|||
|
$document_page = xn_cfg("seo.document_page"); //文档生成方式
|
|||
|
if ($document_page == 1) { //多加一层时间
|
|||
|
$url = "/{$html_save_path}/" . $parenPath . '/' . foxDate("Ymd", $v['create_time']) . '/' . $v['id'] . "." . $url_html_suffix;
|
|||
|
} else {
|
|||
|
$url = "/{$html_save_path}/" . $parenPath . '/' . $v['id'] . "." . $url_html_suffix;
|
|||
|
}
|
|||
|
$v["link"] = replaceSymbol($url);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$v['source'] = $v['article_source'];
|
|||
|
$v['image'] = $v['img_url'];
|
|||
|
if ($titlelen != -1 && $titlelen > 0 && strlen($v['title']) > 0) {
|
|||
|
$v['title'] = myTitle($v['title'], $titlelen);
|
|||
|
}
|
|||
|
$v["link"] = replaceSymbol($v["link"]);
|
|||
|
$arr[] = $v;
|
|||
|
}
|
|||
|
|
|||
|
return $arr;
|
|||
|
}
|
|||
|
|
|||
|
//当前导航添加
|
|||
|
function navAddField(&$list, $id, $currentstyle, $at = "yes")
|
|||
|
{
|
|||
|
|
|||
|
if ($at == "yes") {
|
|||
|
$curColumn = \app\common\model\Column::field("tier")->find($id);
|
|||
|
if ($curColumn) {
|
|||
|
$tierArr = explode(",", $curColumn["tier"]);
|
|||
|
foreach ($tierArr as $id) {
|
|||
|
foreach ($list as $v) {
|
|||
|
if ($v["id"] == $id) {
|
|||
|
$v["currentstyle"] = $currentstyle;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
} elseif ($at == "no") {
|
|||
|
foreach ($list as $v) {
|
|||
|
if ($v["id"] == $id) {
|
|||
|
$v["currentstyle"] = $currentstyle;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//栏目、模型、会员属性动态组装
|
|||
|
function fieldObjTag($field, $obj)
|
|||
|
{
|
|||
|
if ($field->dtype == "text") { //单行文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input class="foxui-size-small {$field->name}" placeholder="{$field->remark}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "multitext") { //多行文本
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="block-box">
|
|||
|
<div class="foxui-textarea">
|
|||
|
<textarea class="{$field->name}" autocomplete="off" rows="16" placeholder="{$field->remark}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "htmltext") { //HTML文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="block-box rich-text">
|
|||
|
<!-- 富文本 -->
|
|||
|
<textarea class="richText {$field->name}" id="{$field->name}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "radio") { //单选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
$content = "";
|
|||
|
if ($obj) {
|
|||
|
$valf = getFieldVal($obj, $field->name);
|
|||
|
} else {
|
|||
|
if (sizeof($valArr) > 0) {
|
|||
|
$valf = $valArr[0];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if ($val == $valf) {
|
|||
|
$content .= '<div class="foxui-radio is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-radio">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-radio-input">
|
|||
|
<i class="foxui-radio-icon"></i>
|
|||
|
<input type="radio" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-radio-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label class="foxui-required">{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-radio-group {$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "checkbox") { //多选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
|
|||
|
$valfArr = explode(",", getFieldVal($obj, $field->name));
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if (in_array($val, $valfArr)) {
|
|||
|
$content .= '<div class="foxui-checkbox is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-checkbox">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-checkbox-input">
|
|||
|
<i class="foxui-checkbox-icon"></i>
|
|||
|
<input type="checkbox" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-checkbox-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="{$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "switch") { //开关
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
$isCheck = "";
|
|||
|
if ($val == 1) {
|
|||
|
$isCheck = "is-checked";
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box display-flex foxui-align-items-center">
|
|||
|
<div class="foxui-switch {$isCheck}">
|
|||
|
<input type="checkbox" checked="checked" value="{$val}" class="foxui-switch-input {$field->name}" />
|
|||
|
<span class="foxui-switch-core"></span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "select") { //下拉框
|
|||
|
|
|||
|
$val = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$define = $field->define;
|
|||
|
$define = str_replace("enum(", "", $define);
|
|||
|
$define = str_replace(")", "", $define);
|
|||
|
$define = str_replace("'", "", $define);
|
|||
|
$valArr = explode(",", $define);
|
|||
|
// $valArr = explode(",", $field->dfvalue);
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $valLi) {
|
|||
|
$content .= '<li class="foxui-select-item" data-id="' . $valLi . '">' . $valLi . '</li>';
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-select">
|
|||
|
<div class="foxui-select-handle foxui-select-icon">
|
|||
|
<input class="foxui-select-input foxui-size-small {$field->name}" readonly="readonly" placeholder="请选择值" value="{$val}" data-id="{$val}"/>
|
|||
|
<i class="foxui-icon-close-circle"></i>
|
|||
|
</div>
|
|||
|
<div class="foxui-select-menu">
|
|||
|
<ul class="foxui-select-slide">
|
|||
|
{$content}
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "datetime") { //日期和时间
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-picker foxui-datetime-picker">
|
|||
|
<div class="foxui-picker-handle foxui-input-prefix">
|
|||
|
<i class="foxui-icon-gongzuo-o foxui-prefix-icon"></i>
|
|||
|
<input class="foxui-size-small {$field->name}" readonly="readonly"placeholder="请选择时间" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "int") { //整数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" class="foxui-size-small {$field->name}" placeholder="只允许纯数字" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "float") { //小数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的数值" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "decimal") { //金额类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的金额" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "pic") { //图片
|
|||
|
|
|||
|
$contentImg = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$imgIds = getFieldVal($obj, $field->name);
|
|||
|
if (!empty($imgIds)) {
|
|||
|
$idsArr = explode(",", $imgIds);
|
|||
|
if (sizeof($idsArr) > 0) {
|
|||
|
foreach ($idsArr as $k => $img) {
|
|||
|
$contentImg .= '
|
|||
|
<li class="foxui-images-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img src="' . $img . '" />
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-images foxui-images-fluid">
|
|||
|
<div class="foxui-images-card {$field->name}">
|
|||
|
<ul class="foxui-images-list">
|
|||
|
{$contentImg}
|
|||
|
<div class="foxui-images-handle">
|
|||
|
<div class="foxui-images-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加图片</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "pics") { //图片集合
|
|||
|
|
|||
|
$contentImg = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$imgIds = getFieldVal($obj, $field->name);
|
|||
|
if (!empty($imgIds)) {
|
|||
|
$idsArr = explode(",", $imgIds);
|
|||
|
if (sizeof($idsArr) > 0) {
|
|||
|
foreach ($idsArr as $k => $img) {
|
|||
|
$contentImg .= '
|
|||
|
<li class="foxui-images-item foxui-drag-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img src="' . $img . '" />
|
|||
|
<div class="foxui-drag-handle"></div>
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-images foxui-drag" data-count="-1">
|
|||
|
<div class="foxui-images-card {$field->name}">
|
|||
|
<ul class="foxui-images-list foxui-drag-container">
|
|||
|
{$contentImg}
|
|||
|
<div class="foxui-images-handle">
|
|||
|
<div class="foxui-images-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加图片</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "media") { //媒体
|
|||
|
|
|||
|
$contentMedia = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$videostr = getFieldVal($obj, $field->name);
|
|||
|
$videoArr = json_decode($videostr);
|
|||
|
if (sizeof($videoArr) > 0) {
|
|||
|
|
|||
|
foreach ($videoArr as $video) {
|
|||
|
$contentMedia .= '
|
|||
|
<li class="foxui-videos-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img data-id="' . $video->id . '" src="' . $video->pic . '" data-url="' . $video->url . '"/>
|
|||
|
<span class="duration">' . $video->duration . '</span>
|
|||
|
<div class="play">
|
|||
|
<i class="foxui-icon-kaishi-f"></i>
|
|||
|
</div>
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
<input type="text" class="foxui-videos-title" placeholder="请输入标题" value="' . $video->title . '"/>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-videos foxui-drag" data-count="-1">
|
|||
|
<div class="foxui-videos-card {$field->name}">
|
|||
|
<ul class="foxui-videos-list foxui-drag-container">
|
|||
|
{$contentMedia}
|
|||
|
<div class="foxui-videos-handle">
|
|||
|
<div class="foxui-videos-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加视频</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "color") {
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-color">
|
|||
|
<div class="foxui-color-handle is-alpha">
|
|||
|
<span class="foxui-color-show" style="background-color: {$val}"></span>
|
|||
|
<i class="foxui-icon-close"></i>
|
|||
|
<span class="foxui-color-background"></span>
|
|||
|
<input class="foxui-color-input {$field->name}" value="{$val}"/>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "icon") { //图标
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="inline-box">
|
|||
|
<div class="foxui-iconsel foxui-size-medium">
|
|||
|
<div class="foxui-iconsel-handle">
|
|||
|
<div class="foxui-iconsel-show">
|
|||
|
<i class="{$val}"></i>
|
|||
|
</div>
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<input class="foxui-iconsel-input {$field->name}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//基本设置、联系方式属性动态组装
|
|||
|
function fieldTag($field, $obj, $group = "")
|
|||
|
{
|
|||
|
$group = $group ?? "basic"; //默认
|
|||
|
$call = "{fox:{$group} name='{$field->name}'/}";
|
|||
|
|
|||
|
if ($field->dtype == "text") { //单行文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input class="foxui-size-small {$field->name}" placeholder="{$field->remark}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "multitext") { //多行文本
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-textarea">
|
|||
|
<textarea class="{$field->name}" autocomplete="off" rows="1" placeholder="{$field->remark}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "htmltext") { //HTML文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="block-box rich-text">
|
|||
|
<!-- 富文本 -->
|
|||
|
<textarea class="richText {$field->name}" id="{$field->name}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "radio") { //单选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
$content = "";
|
|||
|
if ($obj) {
|
|||
|
$valf = getFieldVal($obj, $field->name);
|
|||
|
} else {
|
|||
|
if (sizeof($valArr) > 0) {
|
|||
|
$valf = $valArr[0];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if ($val == $valf) {
|
|||
|
$content .= '<div class="foxui-radio is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-radio">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-radio-input">
|
|||
|
<i class="foxui-radio-icon"></i>
|
|||
|
<input type="radio" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-radio-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label class="foxui-required">{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-radio-group {$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "checkbox") { //多选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
|
|||
|
$valfArr = explode(",", getFieldVal($obj, $field->name));
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if (in_array($val, $valfArr)) {
|
|||
|
$content .= '<div class="foxui-checkbox is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-checkbox">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-checkbox-input">
|
|||
|
<i class="foxui-checkbox-icon"></i>
|
|||
|
<input type="checkbox" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-checkbox-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="{$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "switch") { //开关
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
$isCheck = "";
|
|||
|
if ($val == 1) {
|
|||
|
$isCheck = "is-checked";
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box display-flex foxui-align-items-center">
|
|||
|
<div class="foxui-switch {$isCheck}">
|
|||
|
<input type="checkbox" checked="checked" value="{$val}" class="foxui-switch-input {$field->name}" />
|
|||
|
<span class="foxui-switch-core"></span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "select") { //下拉框
|
|||
|
|
|||
|
$val = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$define = $field->define;
|
|||
|
$define = str_replace("enum(", "", $define);
|
|||
|
$define = str_replace(")", "", $define);
|
|||
|
$define = str_replace("'", "", $define);
|
|||
|
$valArr = explode(",", $define);
|
|||
|
// $valArr = explode(",", $field->dfvalue);
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $valLi) {
|
|||
|
$content .= '<li class="foxui-select-item" data-id="' . $valLi . '">' . $valLi . '</li>';
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-select">
|
|||
|
<div class="foxui-select-handle foxui-select-icon">
|
|||
|
<input class="foxui-select-input foxui-size-small {$field->name}" readonly="readonly" placeholder="请选择值" value="{$val}" data-id="{$val}"/>
|
|||
|
<i class="foxui-icon-close-circle"></i>
|
|||
|
</div>
|
|||
|
<div class="foxui-select-menu">
|
|||
|
<ul class="foxui-select-slide">
|
|||
|
{$content}
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "datetime") { //日期和时间
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-picker foxui-datetime-picker">
|
|||
|
<div class="foxui-picker-handle foxui-input-prefix">
|
|||
|
<i class="foxui-icon-gongzuo-o foxui-prefix-icon"></i>
|
|||
|
<input class="foxui-size-small {$field->name}" readonly="readonly"placeholder="请选择时间" value="{$val}" data-id="{$val}"/>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "int") { //整数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" class="foxui-size-small {$field->name}" placeholder="只允许纯数字" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "float") { //小数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的数值" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "decimal") { //金额类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的金额" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "pic") { //图片
|
|||
|
|
|||
|
$contentImg = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$imgIds = getFieldVal($obj, $field->name);
|
|||
|
if (!empty($imgIds)) {
|
|||
|
$idsArr = explode(",", $imgIds);
|
|||
|
if (sizeof($idsArr) > 0) {
|
|||
|
foreach ($idsArr as $k => $img) {
|
|||
|
$contentImg .= '
|
|||
|
<li class="foxui-images-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img src="' . $img . '" />
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-images foxui-images-fluid">
|
|||
|
<div class="foxui-images-card {$field->name}">
|
|||
|
<ul class="foxui-images-list">
|
|||
|
{$contentImg}
|
|||
|
<div class="foxui-images-handle">
|
|||
|
<div class="foxui-images-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加图片</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "media") { //媒体
|
|||
|
|
|||
|
$contentMedia = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$videostr = getFieldVal($obj, $field->name);
|
|||
|
$videoArr = json_decode($videostr);
|
|||
|
if (sizeof($videoArr) > 0) {
|
|||
|
foreach ($videoArr as $video) {
|
|||
|
$contentMedia .= '
|
|||
|
<li class="foxui-videos-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img data-id="' . $video->id . '" src="' . $video->pic . '" data-url="' . $video->url . '"/>
|
|||
|
<span class="duration">' . $video->duration . '</span>
|
|||
|
<div class="play">
|
|||
|
<i class="foxui-icon-kaishi-f"></i>
|
|||
|
</div>
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
<input type="text" class="foxui-videos-title" placeholder="请输入标题" value="' . $video->title . '"/>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-videos foxui-drag" data-count="1">
|
|||
|
<div class="foxui-videos-card {$field->name}">
|
|||
|
<ul class="foxui-videos-list foxui-drag-container">
|
|||
|
{$contentMedia}
|
|||
|
<div class="foxui-videos-handle">
|
|||
|
<div class="foxui-videos-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加视频</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "color") {
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-color">
|
|||
|
<div class="foxui-color-handle is-alpha">
|
|||
|
<span class="foxui-color-show" style="background-color: {$val}"></span>
|
|||
|
<i class="foxui-icon-close"></i>
|
|||
|
<span class="foxui-color-background"></span>
|
|||
|
<input class="foxui-color-input {$field->name}" value="{$val}"/>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "icon") { //图标
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="inline-box">
|
|||
|
<div class="foxui-iconsel foxui-size-medium">
|
|||
|
<div class="foxui-iconsel-handle">
|
|||
|
<div class="foxui-iconsel-show">
|
|||
|
<i class="{$val}"></i>
|
|||
|
</div>
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<input class="foxui-iconsel-input {$field->name}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
}
|
|||
|
}
|
|||
|
//广告位等直接显示字段值
|
|||
|
function fieldOtherTag($field, $obj)
|
|||
|
{
|
|||
|
$call = "{$field->name}";
|
|||
|
if ($field->dtype == "text") { //单行文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input class="foxui-size-small {$field->name}" placeholder="{$field->remark}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "multitext") { //多行文本
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-textarea">
|
|||
|
<textarea class="{$field->name}" autocomplete="off" rows="1" placeholder="{$field->remark}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "htmltext") { //HTML文本
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="block-box rich-text">
|
|||
|
<!-- 富文本 -->
|
|||
|
<textarea class="richText {$field->name}" id="{$field->name}">{$val}</textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "radio") { //单选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
$content = "";
|
|||
|
if ($obj) {
|
|||
|
$valf = getFieldVal($obj, $field->name);
|
|||
|
} else {
|
|||
|
if (sizeof($valArr) > 0) {
|
|||
|
$valf = $valArr[0];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if ($val == $valf) {
|
|||
|
$content .= '<div class="foxui-radio is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-radio">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-radio-input">
|
|||
|
<i class="foxui-radio-icon"></i>
|
|||
|
<input type="radio" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-radio-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label class="foxui-required">{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-radio-group {$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "checkbox") { //多选
|
|||
|
$valArr = explode(",", $field->dfvalue);
|
|||
|
|
|||
|
$valfArr = explode(",", getFieldVal($obj, $field->name));
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $val) {
|
|||
|
if (in_array($val, $valfArr)) {
|
|||
|
$content .= '<div class="foxui-checkbox is-checked">';
|
|||
|
} else {
|
|||
|
$content .= '<div class="foxui-checkbox">';
|
|||
|
}
|
|||
|
|
|||
|
$content .= '<span class="foxui-checkbox-input">
|
|||
|
<i class="foxui-checkbox-icon"></i>
|
|||
|
<input type="checkbox" value="' . $val . '" checked="checked" />
|
|||
|
</span>
|
|||
|
<span class="foxui-checkbox-label">' . $val . '</span>
|
|||
|
</div>';
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="{$field->name}">
|
|||
|
{$content}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "switch") { //开关
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
$isCheck = "";
|
|||
|
if ($val == 1) {
|
|||
|
$isCheck = "is-checked";
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box display-flex foxui-align-items-center">
|
|||
|
<div class="foxui-switch {$isCheck}">
|
|||
|
<input type="checkbox" checked="checked" value="{$val}" class="foxui-switch-input {$field->name}" />
|
|||
|
<span class="foxui-switch-core"></span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "select") { //下拉框
|
|||
|
|
|||
|
$val = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$define = $field->define;
|
|||
|
$define = str_replace("enum(", "", $define);
|
|||
|
$define = str_replace(")", "", $define);
|
|||
|
$define = str_replace("'", "", $define);
|
|||
|
$valArr = explode(",", $define);
|
|||
|
$content = "";
|
|||
|
foreach ($valArr as $key => $valLi) {
|
|||
|
$content .= '<li class="foxui-select-item" data-id="' . $valLi . '">' . $valLi . '</li>';
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-select">
|
|||
|
<div class="foxui-select-handle foxui-select-icon">
|
|||
|
<input class="foxui-select-input foxui-size-small {$field->name}" readonly="readonly" placeholder="请选择值" value="{$val}" data-id="{$val}"/>
|
|||
|
<i class="foxui-icon-close-circle"></i>
|
|||
|
</div>
|
|||
|
<div class="foxui-select-menu">
|
|||
|
<ul class="foxui-select-slide">
|
|||
|
{$content}
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "datetime") { //日期和时间
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-picker foxui-datetime-picker">
|
|||
|
<div class="foxui-picker-handle foxui-input-prefix">
|
|||
|
<i class="foxui-icon-gongzuo-o foxui-prefix-icon"></i>
|
|||
|
<input class="foxui-size-small {$field->name}" readonly="readonly"placeholder="请选择时间" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "int") { //整数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" class="foxui-size-small {$field->name}" placeholder="只允许纯数字" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "float") { //小数类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的数值" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "decimal") { //金额类型
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<input type="text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" class="foxui-size-small {$field->name}" placeholder="允许小数点的金额" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "pic") { //图片
|
|||
|
|
|||
|
$contentImg = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$imgIds = getFieldVal($obj, $field->name);
|
|||
|
if (!empty($imgIds)) {
|
|||
|
$idsArr = explode(",", $imgIds);
|
|||
|
if (sizeof($idsArr) > 0) {
|
|||
|
foreach ($idsArr as $k => $img) {
|
|||
|
$contentImg .= '
|
|||
|
<li class="foxui-images-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img src="' . $img . '" />
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-images foxui-images-fluid">
|
|||
|
<div class="foxui-images-card {$field->name}">
|
|||
|
<ul class="foxui-images-list">
|
|||
|
{$contentImg}
|
|||
|
<div class="foxui-images-handle">
|
|||
|
<div class="foxui-images-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加图片</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "pics") { //图片集合
|
|||
|
|
|||
|
$contentImg = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$imgIds = getFieldVal($obj, $field->name);
|
|||
|
if (!empty($imgIds)) {
|
|||
|
$idsArr = explode(",", $imgIds);
|
|||
|
if (sizeof($idsArr) > 0) {
|
|||
|
foreach ($idsArr as $k => $img) {
|
|||
|
$contentImg .= '
|
|||
|
<li class="foxui-images-item foxui-drag-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img src="' . $img . '" />
|
|||
|
<div class="foxui-drag-handle"></div>
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-images foxui-drag" data-count="-1">
|
|||
|
<div class="foxui-images-card {$field->name}">
|
|||
|
<ul class="foxui-images-list foxui-drag-container">
|
|||
|
{$contentImg}
|
|||
|
<div class="foxui-images-handle">
|
|||
|
<div class="foxui-images-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加图片</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "media") { //媒体
|
|||
|
|
|||
|
$contentMedia = "";
|
|||
|
if ($obj) { //值不为空
|
|||
|
$videostr = getFieldVal($obj, $field->name);
|
|||
|
$videoArr = json_decode($videostr);
|
|||
|
if (sizeof($videoArr) > 0) {
|
|||
|
foreach ($videoArr as $video) {
|
|||
|
$contentMedia .= '
|
|||
|
<li class="foxui-videos-item foxui-animate-fadeInDown">
|
|||
|
<div class="content">
|
|||
|
<img data-id="' . $video->id . '" src="' . $video->pic . '" data-url="' . $video->url . '"/>
|
|||
|
<span class="duration">' . $video->duration . '</span>
|
|||
|
<div class="play">
|
|||
|
<i class="foxui-icon-kaishi-f"></i>
|
|||
|
</div>
|
|||
|
<span class="replace">替换</span>
|
|||
|
<i class="foxui-icon-cuowu-f delete"></i>
|
|||
|
</div>
|
|||
|
<input type="text" class="foxui-videos-title" placeholder="请输入标题" value="' . $video->title . '"/>
|
|||
|
</li>
|
|||
|
';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group foxui-align-items-start">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-videos foxui-drag" data-count="1">
|
|||
|
<div class="foxui-videos-card {$field->name}">
|
|||
|
<ul class="foxui-videos-list foxui-drag-container">
|
|||
|
{$contentMedia}
|
|||
|
<div class="foxui-videos-handle">
|
|||
|
<div class="foxui-videos-handle-inner">
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<span class="text">添加视频</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "color") {
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="input-box">
|
|||
|
<div class="foxui-color">
|
|||
|
<div class="foxui-color-handle is-alpha">
|
|||
|
<span class="foxui-color-show" style="background-color: {$val}"></span>
|
|||
|
<i class="foxui-icon-close"></i>
|
|||
|
<span class="foxui-color-background"></span>
|
|||
|
<input class="foxui-color-input {$field->name}" value="{$val}"/>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
} elseif ($field->dtype == "icon") { //图标
|
|||
|
|
|||
|
$val = $field->dfvalue;
|
|||
|
if ($obj) { //值不为空
|
|||
|
$val = getFieldVal($obj, $field->name);
|
|||
|
}
|
|||
|
$html = <<<php
|
|||
|
<div class="section-main-item">
|
|||
|
<div class="foxui-input-group">
|
|||
|
<div class="input-label">
|
|||
|
<label>{$field->title}:</label>
|
|||
|
</div>
|
|||
|
<div class="inline-box">
|
|||
|
<div class="foxui-iconsel foxui-size-medium">
|
|||
|
<div class="foxui-iconsel-handle">
|
|||
|
<div class="foxui-iconsel-show">
|
|||
|
<i class="{$val}"></i>
|
|||
|
</div>
|
|||
|
<i class="foxui-icon-jiahao-o"></i>
|
|||
|
<input class="foxui-iconsel-input {$field->name}" value="{$val}" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="call-field">
|
|||
|
<span class="foxui-color-secondary">字段名称:</span>
|
|||
|
<span class="foxui-tag foxui-light-info">{$call}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
php;
|
|||
|
return $html;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//获取对象中的属性值
|
|||
|
function getFieldVal($obj, $fieldName)
|
|||
|
{
|
|||
|
if ($obj) {
|
|||
|
return $obj[$fieldName];
|
|||
|
}
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
//栏目属性动态组装
|
|||
|
function columnFieldTag($id = "")
|
|||
|
{
|
|||
|
$column = \app\common\model\Column::find($id);
|
|||
|
$where = ['status' => 1, "is_system" => 0];
|
|||
|
|
|||
|
$columnList = \app\common\model\ColumnField::where($where)->where(function ($query) use ($id) {
|
|||
|
$query->whereOr([['', 'exp', \think\facade\Db::raw("FIND_IN_SET($id, column_ids)")]]);
|
|||
|
})->order(["sort_order" => "desc", "create_time" => "asc"])->select();
|
|||
|
$html = "";
|
|||
|
foreach ($columnList as $field) { //循环栏目模型
|
|||
|
$html .= fieldObjTag($field, $column);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//模型属性动态组装
|
|||
|
function modelFieldTag($model, $id = "")
|
|||
|
{
|
|||
|
$html = "";
|
|||
|
$modelObj = \think\facade\Db::name($model)->find($id); //查询对应模型值
|
|||
|
$where = ["model" => $model, "is_system" => 0, "status" => 1];
|
|||
|
$modelList = \app\common\model\ModelField::where($where)->order(["sort_order" => "desc", "create_time" => "asc"])->select(); //查询模型字段
|
|||
|
foreach ($modelList as $field) { //循环栏目模型
|
|||
|
$html .= fieldObjTag($field, $modelObj);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//会员属性动态组装
|
|||
|
|
|||
|
function memberFieldTag($model = "", $id = "", $member_model_id = 0)
|
|||
|
{
|
|||
|
$html = "";
|
|||
|
$modelObj = null;
|
|||
|
if (!empty($model) && !empty($id)) {
|
|||
|
$modelObj = \think\facade\Db::name($model)->find($id); //查询对应模型值
|
|||
|
//不显示密码
|
|||
|
$modelObj['password'] = "";
|
|||
|
}
|
|||
|
|
|||
|
$where = ["status" => 1, "member_model_id" => $member_model_id];
|
|||
|
$modelList = \app\common\model\MemberModelField::where($where)->order(["sort_order" => "desc", "create_time" => "asc"])->select(); //查询模型字段
|
|||
|
foreach ($modelList as $field) { //循环栏目模型
|
|||
|
$html .= fieldObjTag($field, $modelObj);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//变量属性动态组装
|
|||
|
function variateFieldTag($group, $id = "")
|
|||
|
{
|
|||
|
$html = "";
|
|||
|
$groupObj = \think\facade\Db::name($group)->find($id); //查询对应模型值
|
|||
|
$where = ["status" => 1, 'group' => $group];
|
|||
|
$modelList = \app\common\model\VariateField::where($where)->order(["sort_order" => "desc", "create_time" => "asc"])->select(); //查询模型字段
|
|||
|
foreach ($modelList as $field) { //循环栏目模型
|
|||
|
$html .= fieldTag($field, $groupObj, $group);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//表单字段
|
|||
|
function formFieldTag($tableName, $id = "", $formListId = "")
|
|||
|
{
|
|||
|
$html = "";
|
|||
|
$tableObj = \think\facade\Db::table($tableName)->find($id); //查询对应模型值
|
|||
|
$where = [];
|
|||
|
if (!empty($formListId)) {
|
|||
|
array_push($where, ['form_list_id', '=', $formListId]);
|
|||
|
}
|
|||
|
$formFieldList = \app\common\model\FormField::where($where)->order(["sort_order" => "asc", "create_time" => "asc"])->select(); //查询模型字段
|
|||
|
foreach ($formFieldList as $field) { //循环栏目模型
|
|||
|
$html .= fieldObjTag($field, $tableObj);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//广告位字段
|
|||
|
function advFieldTag($id)
|
|||
|
{
|
|||
|
$html = "";
|
|||
|
$slideObj = \app\common\model\Slide::find($id);
|
|||
|
$where = ["advertising_space_id" => $slideObj["advertising_space_id"]];
|
|||
|
$advFieldList = \app\common\model\AdvertisingSpaceField::where($where)->order(["sort_order" => "desc", "create_time" => "asc"])->select(); //查询模型字段
|
|||
|
foreach ($advFieldList as $field) { //循环栏目模型
|
|||
|
$html .= fieldOtherTag($field, $slideObj);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//首页地址处理
|
|||
|
|
|||
|
function resetIndexUrl($url, $lang = "")
|
|||
|
{
|
|||
|
$home_lang = xn_cfg("base.home_lang"); //默认语言
|
|||
|
if ($home_lang == $lang) {
|
|||
|
$lang = "";
|
|||
|
}
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
$url_html_suffix = config("route.url_html_suffix");
|
|||
|
if (!empty($lang)) {
|
|||
|
if ($url_model == 1) {
|
|||
|
$url = url("{$url}") . "?lang={$lang}";
|
|||
|
} else if ($url_model == 2) {
|
|||
|
$url = "{$url}_{$lang}";
|
|||
|
$url = url("{$url}");
|
|||
|
} else if ($url_model == 3) {
|
|||
|
$url = "{$url}_{$lang}.$url_html_suffix";
|
|||
|
}
|
|||
|
} else {
|
|||
|
if ($url_model == 1 || $url_model == 2) {
|
|||
|
if (empty($url)) {
|
|||
|
$url = "/";
|
|||
|
}
|
|||
|
} else if ($url_model == 3) {
|
|||
|
$url = "{$url}.$url_html_suffix";
|
|||
|
}
|
|||
|
}
|
|||
|
return $url;
|
|||
|
}
|
|||
|
|
|||
|
//针对栏目,重新根据seo设置组装url
|
|||
|
function resetUrl($url, $id, $lang = "")
|
|||
|
{
|
|||
|
// if (empty($url)) {
|
|||
|
// return $url;
|
|||
|
// }
|
|||
|
$home_lang = xn_cfg("base.home_lang"); //默认语言
|
|||
|
if ($home_lang == $lang) {
|
|||
|
$lang = "";
|
|||
|
}
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
$url_html_suffix = config("route.url_html_suffix");
|
|||
|
//栏目
|
|||
|
$column_page = xn_cfg("seo.column_page"); //栏目生成方式
|
|||
|
if ($url_model == 1) {
|
|||
|
if (empty($lang)) {
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("{$url}");
|
|||
|
} else {
|
|||
|
$url = url("{$url}") . "?id={$id}";
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("{$url}") . "?id={$id}&lang={$lang}";
|
|||
|
} else {
|
|||
|
$url = url("{$url}") . "?id={$id}&lang={$lang}";
|
|||
|
}
|
|||
|
}
|
|||
|
} elseif ($url_model == 2) {
|
|||
|
$url = url("/{$lang}{$url}/{$id}");
|
|||
|
} elseif ($url_model == 3) { //静态模式下
|
|||
|
if (is_mobile()) { //手机访问
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("/{$lang}{$url}");
|
|||
|
} else {
|
|||
|
$url = url("/{$lang}{$url}/{$id}");
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
$column_id = $id;
|
|||
|
if (empty($column_id)) {
|
|||
|
$url = "javascript:void(0);";
|
|||
|
} else {
|
|||
|
$basic = getBasic(); //暂时不用
|
|||
|
if (empty($lang)) {
|
|||
|
$html_save_path = $basic['html_save_path'];
|
|||
|
} else {
|
|||
|
$html_save_path = $lang;
|
|||
|
}
|
|||
|
$curColumn = \app\common\model\Column::find($id);
|
|||
|
$columnList = get_column_up($column_id);
|
|||
|
if ($column_page == 1 && $curColumn["pid"] != 0) {
|
|||
|
$htmlfile = "list_" . $curColumn['id']; //子栏目名称
|
|||
|
//子栏目存放路径
|
|||
|
foreach ($columnList as $column) {
|
|||
|
if ($column["pid"] == 0) {
|
|||
|
$url = "/{$html_save_path}/" . $column['dir_path'] . "/" . $htmlfile . "." . $url_html_suffix;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
if ($curColumn["pid"] == 0) {
|
|||
|
$url = "/{$html_save_path}/" . $curColumn['dir_path'] . '/';
|
|||
|
} else {
|
|||
|
$parenPath = "";
|
|||
|
foreach ($columnList as $column) {
|
|||
|
$parenPath .= $column["dir_path"];
|
|||
|
}
|
|||
|
$url = "/{$html_save_path}/" . $parenPath . '/';
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
|
|||
|
//详情数据
|
|||
|
function detailSetUrl($url, $id, $columnId, $model, $lang = "")
|
|||
|
{
|
|||
|
$url_html_suffix = config("route.url_html_suffix");
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
|
|||
|
$home_lang = xn_cfg("base.home_lang"); //默认语言
|
|||
|
if ($home_lang == $lang) {
|
|||
|
$lang = "";
|
|||
|
}
|
|||
|
//栏目
|
|||
|
$document_page = xn_cfg("seo.document_page"); //文档生成方式
|
|||
|
if ($url_model == 1) {
|
|||
|
if (empty($lang)) {
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("{$url}");
|
|||
|
} else {
|
|||
|
$url = url("{$url}") . "?id={$id}";
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("{$url}") . "?id={$id}&lang={$lang}";
|
|||
|
} else {
|
|||
|
$url = url("{$url}") . "?id={$id}&lang={$lang}";
|
|||
|
}
|
|||
|
}
|
|||
|
} elseif ($url_model == 2) {
|
|||
|
$url = url("/{$lang}{$url}/{$id}");
|
|||
|
} elseif ($url_model == 3) { //静态模式下
|
|||
|
if (is_mobile()) { //手机访问
|
|||
|
if (empty($id)) {
|
|||
|
$url = url("/{$lang}{$url}");
|
|||
|
} else {
|
|||
|
$url = url("/{$lang}{$url}/{$id}");
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
$basic = getBasic(); //暂时不能用
|
|||
|
if (empty($lang)) {
|
|||
|
$html_save_path = $basic['html_save_path'];
|
|||
|
} else {
|
|||
|
$html_save_path = $lang;
|
|||
|
}
|
|||
|
|
|||
|
$curData = \think\facade\Db::name($model)->find($id);
|
|||
|
$columnList = get_column_up($columnId);
|
|||
|
$parenPath = "";
|
|||
|
foreach ($columnList as $column) {
|
|||
|
$parenPath .= "/" . $column["dir_path"];
|
|||
|
}
|
|||
|
if ($document_page == 1) {
|
|||
|
$url = "/{$html_save_path}/" . $parenPath . '/' . foxDate("Ymd", $curData['create_time']) . '/' . $curData['id'] . "." . $url_html_suffix;
|
|||
|
} else {
|
|||
|
$url = "/{$html_save_path}/" . $parenPath . '/' . $curData['id'] . "." . $url_html_suffix;
|
|||
|
}
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
|
|||
|
//获取标签的url (针对TAG标签)
|
|||
|
function tagUrl($id)
|
|||
|
{
|
|||
|
$url_html_suffix = config("route.url_html_suffix");
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
if ($url_model == 1) {
|
|||
|
$url = url("list") . "?id={$id}";
|
|||
|
} elseif ($url_model == 2) {
|
|||
|
$url = url("list/{$id}");
|
|||
|
} elseif ($url_model == 3) { //静态模式下
|
|||
|
if (is_mobile()) { //手机访问
|
|||
|
$url = url("list/{$id}");
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
$basic = getBasic();
|
|||
|
$url = "/{$basic["html_save_path"]}/tag/" . $id . "." . $url_html_suffix;
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
|
|||
|
//获取栏目url
|
|||
|
function getColumnUrl($column, $index = 0)
|
|||
|
{
|
|||
|
$url = "";
|
|||
|
if ($column["column_attr"] == 0) {
|
|||
|
$url = resetUrl($column['v_path'], $column["id"], $column['visit_lang']);
|
|||
|
} elseif ($column["column_attr"] == 1) { //外部链接
|
|||
|
$url = $column['out_link_head'] . $column['out_link'];
|
|||
|
} elseif ($column["column_attr"] == 2) { //内链栏目
|
|||
|
$inner_column = $column['inner_column'];
|
|||
|
if (!empty($inner_column)) {
|
|||
|
$columnInner = \app\common\model\Column::find($inner_column);
|
|||
|
if ($columnInner) {
|
|||
|
$vPath = $columnInner["v_path"];
|
|||
|
$url = resetUrl($vPath, $inner_column, $column['visit_lang']);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
|
|||
|
//tag标签地址
|
|||
|
function tagSetUrl($url, $param)
|
|||
|
{
|
|||
|
//生成路由 //1:动态url,2:伪静态化,3:静态页面
|
|||
|
$url_model = xn_cfg("seo.url_model");
|
|||
|
$id = $param['id'];
|
|||
|
// $name = $param['name'];
|
|||
|
if ($url_model == 1) {
|
|||
|
if (sizeof($param) > 0) {
|
|||
|
$paramStr = func_param_pack($param, "&"); //参数串
|
|||
|
$url = url("{$url}") . "?{$paramStr}";
|
|||
|
} else {
|
|||
|
$url = url("{$url}");
|
|||
|
}
|
|||
|
} elseif ($url_model == 2 || $url_model == 3) { //2:伪静态化,3:静态页面
|
|||
|
unset($param['id']);
|
|||
|
if (sizeof($param) > 0) {
|
|||
|
$paramStr = func_param_pack($param, "&"); //参数串
|
|||
|
// $url = url("{$url}/{$id}")."?{$paramStr}";
|
|||
|
$url = url("{$url}") . "?{$paramStr}";
|
|||
|
} else {
|
|||
|
$url = url("{$url}");
|
|||
|
}
|
|||
|
}
|
|||
|
return replaceSymbol($url);
|
|||
|
}
|
|||
|
|
|||
|
//查询栏目的所有字栏目id
|
|||
|
function getChildrensColumnId($columnId, $model, $lang = "")
|
|||
|
{
|
|||
|
//向下查询所有子孙栏目
|
|||
|
$allColumn = get_column_down($columnId, $model, $lang);
|
|||
|
$columnIdArr = [];
|
|||
|
foreach ($allColumn as $column) {
|
|||
|
array_push($columnIdArr, $column["id"]);
|
|||
|
}
|
|||
|
return $columnIdArr;
|
|||
|
}
|
|||
|
|
|||
|
//获取所有父类祖辈的栏目id
|
|||
|
function getParentsColumnId($columnId, $model, $lang = "")
|
|||
|
{
|
|||
|
//向下查询所有子孙栏目
|
|||
|
$allColumn = get_column_up($columnId, $model, $lang);
|
|||
|
$columnIdArr = [];
|
|||
|
foreach ($allColumn as $column) {
|
|||
|
array_push($columnIdArr, $column["id"]);
|
|||
|
}
|
|||
|
return $columnIdArr;
|
|||
|
}
|
|||
|
|
|||
|
//获取页面中分页的分页标签配置
|
|||
|
function getPageList($fileContent)
|
|||
|
{
|
|||
|
$param = [];
|
|||
|
if (!empty($fileContent) && $fileContent != null) {
|
|||
|
$start = "{fox:list";
|
|||
|
$end = "{/fox:list}";
|
|||
|
$fileContent = get_between($fileContent, $start, $end);
|
|||
|
$fileContent = mb_substr($fileContent, 0, stripos($fileContent, "}"));
|
|||
|
$fileContent = preg_replace('/\ +=/', "=", $fileContent); //去掉等号(=)前面的空格
|
|||
|
$fileContent = preg_replace('/\= +/', "=", $fileContent); //去掉等号(=)后面的空格
|
|||
|
$fileArr = explode(" ", $fileContent);
|
|||
|
foreach ($fileArr as $fc) {
|
|||
|
$kwArr = explode("=", $fc);
|
|||
|
if (sizeof($kwArr) == 2) {
|
|||
|
$k = $kwArr[0];
|
|||
|
$v = num_en($kwArr[1]);
|
|||
|
$param[$k] = $v;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return $param;
|
|||
|
}
|
|||
|
|
|||
|
//访问统计
|
|||
|
function access_stat_js($html, $domainNo)
|
|||
|
{
|
|||
|
|
|||
|
$url = "//" . $domainNo . url("/plus/Access/stat");
|
|||
|
$jsStr = <<<EOF
|
|||
|
<script>
|
|||
|
(function () {
|
|||
|
let hm = document.createElement("script");
|
|||
|
hm.src = "{$url}";
|
|||
|
let s = document.getElementsByTagName("script")[0];
|
|||
|
s.parentNode.insertBefore(hm, s);
|
|||
|
})();
|
|||
|
</script>
|
|||
|
EOF;
|
|||
|
$html = str_ireplace('</head>', $jsStr . "\n</head>", $html);
|
|||
|
$html = add_copyright($html);
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//版权
|
|||
|
function add_copyright($html)
|
|||
|
{
|
|||
|
$base = xn_cfg("base");
|
|||
|
$copyright_remove_mark = $base['copyright_remove_mark'] ?? 0;
|
|||
|
$copyright_color = $base['copyright_color'];
|
|||
|
if (isset($base['copyright_mark_desc'])) {
|
|||
|
$copyright_mark_desc = dataD($base['copyright_mark_desc']);
|
|||
|
} else {
|
|||
|
$copyright_mark_desc = 'fd72bSHX4oDNwz44otEPuqo2mtVYMV1SpwCXdeIkhGNpp4FV2IjkjPcWL5x2gBTnmTeGfddN/DbGCYloPlMW9TXA0i4bGnRP9u/O6LrJc6ZKhYNG1uhNEmx7258k15KGuG4JmTQR4aVuE1foEVS8jesSsJjsICeyrZ52Us0mQ+yiR7puMQUDakZjw6Z3Hx8yJIOfbBkILMoZFckX83M8HUwn9ustzDNwTg42Q5/RO6PO9XWEV7Dr3kRhsOOzMDZbLoThkObKowxFE8i8oRPVo9wzQsDcPyog98IstVArSx6NFA7BxfG84KYvzCC4T8UX8pke9XQZo4xWnKaPOz+Ga5CvXsEsWg56Qv+8wjtlk42YUrOeptS752MW2tWns18GLC475eL7ITr0RgOK6q6DSDsaVa25z0sgFFns8pKBEJWM1C9laExssU+6GtmQgTIvhrHtMwQnuP40g85/YRsC6u97rSMIaCMm3LvmVAbE7KcKx1JU/KMdfbx88/u4gHeqvjmm1xunk4Vsou/hhwoCZws';
|
|||
|
$copyright_mark_desc = dataD($copyright_mark_desc);
|
|||
|
}
|
|||
|
if ($copyright_remove_mark == 0 || $copyright_remove_mark != 1) {
|
|||
|
$versionPath = root_path() . "data/update/version/info.php";
|
|||
|
$versionInfo = require($versionPath);
|
|||
|
$version = "未知";
|
|||
|
if (!empty($versionInfo['version'])) {
|
|||
|
$version = "V{$versionInfo['version']}";
|
|||
|
}
|
|||
|
$textColor = $base['font_color'];
|
|||
|
$addHtml = str_replace("_COLOR", $textColor, $copyright_mark_desc);
|
|||
|
$addHtml = str_replace("_COPYRIGHTCOLOR", $copyright_color, $addHtml);
|
|||
|
$addHtml = str_replace("V_V", $version, $addHtml);
|
|||
|
$addHtml = str_replace("_YEAR", date("Y"), $addHtml);
|
|||
|
$html = str_ireplace('</html>', $addHtml . "\n</html>", $html);
|
|||
|
}
|
|||
|
return $html;
|
|||
|
}
|
|||
|
|
|||
|
//判断表是否存在
|
|||
|
function is_exist_table($tableName)
|
|||
|
{
|
|||
|
$table_infos = Db::query('SHOW TABLE STATUS');
|
|||
|
if (sizeof($table_infos) > 0) {
|
|||
|
foreach ($table_infos as $table_info) {
|
|||
|
if ($tableName == $table_info['Name']) {
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
//退出地址
|
|||
|
function logout_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Login/logout");
|
|||
|
}
|
|||
|
|
|||
|
//栏目模型地址
|
|||
|
function getColumModels_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Column/getColumModels");
|
|||
|
}
|
|||
|
|
|||
|
//个人中心
|
|||
|
function adminEdit_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Admin/edit");
|
|||
|
}
|
|||
|
|
|||
|
//清除缓存
|
|||
|
function loginClearCache_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Login/clearCache");
|
|||
|
}
|
|||
|
|
|||
|
//修改密码
|
|||
|
function adminUpdatePassword_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/admin/updatePassword");
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//循环生成静态html
|
|||
|
function seoAllSite_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Seo/allSite");
|
|||
|
}
|
|||
|
|
|||
|
//单独静态生成
|
|||
|
function seoAddDataBuildDetail_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Seo/addDataBuildDetail");
|
|||
|
}
|
|||
|
|
|||
|
//单独静态栏目生成
|
|||
|
function singleAllSite_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Seo/singleAllSite");
|
|||
|
}
|
|||
|
|
|||
|
//删除幻灯片
|
|||
|
function slideDelete_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Slide/delete");
|
|||
|
}
|
|||
|
|
|||
|
//幻灯片编辑
|
|||
|
function slideEdit_url()
|
|||
|
{
|
|||
|
$adminP = config("adminconfig.admin_path");
|
|||
|
return url($adminP . "/Slide/edit");
|
|||
|
}
|
|||
|
|
|||
|
// 获取语言包数据
|
|||
|
function getLang($lang)
|
|||
|
{
|
|||
|
// 设置缓存的键,可以包含文件的路径或其他标识符
|
|||
|
$cacheKey = 'file_content_' . md5($lang);
|
|||
|
// 尝试从缓存中读取内容
|
|||
|
$rContent = \think\facade\Cache::get($cacheKey);
|
|||
|
if ($rContent === null || $rContent === "{}" || $rContent === "") {
|
|||
|
// 缓存未命中,从文件中读取内容
|
|||
|
$filePath = root_path('app/lang') . "pack/{$lang}.ini"; //复制原语音包路
|
|||
|
$filePath = replaceSymbol($filePath);
|
|||
|
$content = file_get_contents($filePath);
|
|||
|
$rContent = "{" . $content . "}";
|
|||
|
// 将内容写入缓存,并设置缓存过期时间
|
|||
|
\think\facade\Cache::set($cacheKey, $rContent, 3600); // 假设缓存有效期为1小时
|
|||
|
}
|
|||
|
if (empty($rContent)) {
|
|||
|
return [];
|
|||
|
}
|
|||
|
return json_decode($rContent, true);
|
|||
|
}
|
|||
|
|
|||
|
//根据语言标识翻译
|
|||
|
function getLangContentByMark($lang, $mark)
|
|||
|
{
|
|||
|
$langs = getLang($lang);
|
|||
|
return $langs[$mark];
|
|||
|
}
|