Files
ctms-yii/dacms-home/controllers/MetadataController.php
T
fm453 037f274ec5 优化ctms-api语法、修复已知BUG;
主要修复ctms-api、dacms对PHP新版本的支持问题
2025-07-13 19:37:42 +08:00

485 lines
16 KiB
PHP
Executable File

<?php
namespace frontend\controllers;
use Yii;
use yii\helpers\Url;
use dataModel;
//必须添加这一句,以便引入dataModel外部类库
require dirname(__FILE__) . '/_public/public.php';
class MetadataController extends \yii\web\Controller
{
public $enableCsrfValidation = FALSE;//取消对POST数据的csrf令牌验证
public function actionIndex()
{
global $_GPC;
global $_HI;
global $_FM;
$_HI['action'] = 'index';
require dirname(__FILE__) . '/SettingController/index.php';
}
public function actionGet()
{
global $_GPC;
global $_HI;
global $_FM;
global $START_TIME;
$_HI['action'] = 'get';
//数据取出方法
$dataGet = $_FM['get']; //GET进来的参数
$dataPost = $_FM['post']; //POST进来的参数
$data = array();
$data['addons'] = array();
$data['sqls'] = array();
require dirname(__FILE__) . '/_public/plat.php';
$dbmodel = new dataModel;
$data = $dbmodel->data_filter($dataPost);
$connection = yii::$app->db;
$tablePre = 's';
$table = 'metadata';
$s_sn = 0;
$f_sn = 0;
$o_sn = 0;
$s_sn_title = Yii::t('frontend', 'Default Metadata s_sn_title');
$f_sn_title = Yii::t('frontend', 'Default Metadata f_sn_title');
$o_sn_title = Yii::t('frontend', 'Default Metadata o_sn_title');
$return = array();
$errorCode = 0;
switch ($ac) {
case 'model'; //模型数据,返回self列表\param列表
require dirname(__FILE__) . '/_public/list_self.php';
$list = $result;
if ($errorCode == 0) {
foreach ($list as $k => $v) {
$s_sn = $v['sn'];
$record_self = $v;
require dirname(__FILE__) . '/_public/get_param.php';
$errorCode = 0;
$record_param = $result;
$record = $record_self;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['title', 'status', 'deleted'];
foreach ($reset as $kk) {
if (isset($record['params'][$kk])) {
$record[$kk] = $record['params'][$kk];
}
}
$list[$k] = $record;
}
}
$record = $list;
break;
case 'instance'; //实例数据,根据条件返回form表中的数据\param列表
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$f_sn = isset($data['addons']['f_sn']) ? intval($data['addons']['f_sn']) : 0;
require dirname(__FILE__) . '/_public/list_form.php';
$list = $result;
if ($errorCode == 0) {
foreach ($list as $k => &$v) {
$record_form = $v;
//取默认参数
$f_sn = 0;
require dirname(__FILE__) . '/_public/get_param.php';
$record_param_default = $result;
//取当前表单的指定参数
$f_sn = $record_form['sn'];
require dirname(__FILE__) . '/_public/get_param.php';
$record_param_private = $result;
$record_param = array_merge($record_param_default, $record_param_private);
//读取默认参数并在写入params后重置
if (isset($record_param_default['default'])) {
foreach ($record_param_default['default'] as $kk => $vv) {
if (isset($record_param[$kk]) && is_array($record_param[$kk]) && is_array($vv)) {
$record_param[$kk] = array_merge($vv, $record_param[$kk]);
} else if (!isset($record_param[$kk])) {
$record_param[$kk] = $vv;
}
}
unset($record_param['default']);
}
$record = $record_form;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['status', 'deleted'];
foreach ($reset as $kk) {
if (isset($record['params'][$kk])) {
$record[$kk] = $record['params'][$kk];
}
}
$v = $record;
}
$errorCode = 0;
}
$record = $list;
break;
case 'content'; //内容数据,根据条件返回order表中的数据\addon列表
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$f_sn = isset($data['addons']['f_sn']) ? intval($data['addons']['f_sn']) : 0;
$o_sn = isset($data['addons']['o_sn']) ? intval($data['addons']['o_sn']) : 0;
require dirname(__FILE__) . '/_public/list_order.php';
$list = $result;
if ($errorCode == 0) {
foreach ($list as $k => &$v) {
$record_form = $v;
//取默认参数
$o_sn = 0;
require dirname(__FILE__) . '/_public/get_addon.php';
$record_param_default = $result;
//取当前表单的指定参数
$o_sn = $record_form['sn'];
require dirname(__FILE__) . '/_public/get_addon.php';
$record_param_private = $result;
$record_param = array_merge($record_param_default, $record_param_private);
//读取默认参数并在写入params后重置
if (isset($record_param_default['default'])) {
foreach ($record_param_default['default'] as $kk => $vv) {
if (isset($record_param[$kk]) && is_array($record_param[$kk]) && is_array($vv)) {
$record_param[$kk] = array_merge($vv, $record_param[$kk]);
} else if (!isset($record_param[$kk])) {
$record_param[$kk] = $vv;
}
}
unset($record_param['default']);
}
$record = $record_form;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['status', 'deleted'];
foreach ($reset as $kk) {
if (isset($record['params'][$kk])) {
$record[$kk] = $record['params'][$kk];
}
}
$v = $record;
}
$errorCode = 0;
}
$record = $list;
break;
default:
break;
}
$return['errorcode'] = $errorCode;
$return['msg'] = Yii::t('errorcode', $errorCode);
$return['data'] = isset($record) ? $record : '';
$return['timeused'] = getMillisecond() - $START_TIME;
$return['total'] = isset($count) ? $count : 1;//总记录数
$return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
fmFunc_stat_times_out($username = $_FM['user']['name'], 1); //增加一次接口出站次数累计
fmFunc_stat_bytes_out($username = $_FM['user']['name'], $return['bytes']); //增加一次接口出站数据量累计
return json_encode($return);
}
public function actionDetail()
{
global $_GPC;
global $_HI;
global $_FM;
global $START_TIME;
$_HI['action'] = 'detail';
//取单条数据详情
$dataGet = $_FM['get']; //GET进来的参数
$dataPost = $_FM['post']; //POST进来的参数
$data = array();
$data['addons'] = array();
require dirname(__FILE__) . '/_public/plat.php';
$dbmodel = new dataModel;
$data = $dbmodel->data_filter($dataPost);
$connection = yii::$app->db;
$tablePre = 's';
$table = 'metadata';
$s_sn = 0;
$f_sn = 0;
$o_sn = 0;
$s_sn_title = Yii::t('frontend', 'Default Metadata s_sn_title');
$f_sn_title = Yii::t('frontend', 'Default Metadata f_sn_title');
$o_sn_title = Yii::t('frontend', 'Default Metadata o_sn_title');
$return = array();
$errorCode = 0;
switch ($ac) {
case 'model'; //模型,返回self表与param表数据
$sn = isset($data['addons']['sn']) ? intval($data['addons']['sn']) : 0;
$errorCode = 0;
if ($sn) {
require dirname(__FILE__) . '/_public/get_self.php';
$record_self = $result;
if ($errorCode == 0) {
$s_sn = $sn;
require dirname(__FILE__) . '/_public/get_param.php';
$errorCode = 0;
$record_param = $result;
$record = $record_self;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['title', 'status', 'deleted'];
foreach ($reset as $k) {
if (isset($record['params'][$k])) {
$record[$k] = $record['params'][$k]; //重设标题
}
}
}
} else {
$errorCode = 45300304;
$record = $data['addons'];
}
break;
case 'instance'; //实例,返回form表\param表
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$sn = isset($data['addons']['sn']) ? intval($data['addons']['sn']) : 0;
$errorCode = 0;
if ($sn) {
require dirname(__FILE__) . '/_public/get_form.php';
$record_self = $result;
if ($errorCode == 0) {
//取默认参数
require dirname(__FILE__) . '/_public/get_param.php';
$record_param_default = $result;
//取当前表单的指定参数
$f_sn = $sn;
require dirname(__FILE__) . '/_public/get_param.php';
$record_param_private = $result;
$record_param = array_merge($record_param_default, $record_param_private);
//读取默认参数并在写入params后重置
if (isset($record_param_default['default'])) {
foreach ($record_param_default['default'] as $kk => $vv) {
if (isset($record_param[$kk]) && is_array($record_param[$kk]) && is_array($vv)) {
$record_param[$kk] = array_merge($vv, $record_param[$kk]);
} else if (!isset($record_param[$kk])) {
$record_param[$kk] = $vv;
}
unset($record_param['default'][$kk]); //只对在模型中定义的默认参数进行重置
}
//unset($record_param['default']); //重置全部默认参数
}
$record = $record_self;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['status', 'deleted'];
foreach ($reset as $k) {
if (isset($record['params'][$k])) {
$record[$k] = $record['params'][$k]; //重设标题
}
}
$errorCode = 0;
}
} else {
$errorCode = 45300304;
$record = $data['addons'];
}
break;
case 'content'; //内容,返回order表\addon表数据
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$f_sn = isset($data['addons']['f_sn']) ? intval($data['addons']['f_sn']) : 0;
$sn = isset($data['addons']['sn']) ? intval($data['addons']['sn']) : 0;
$errorCode = 0;
if ($sn) {
require dirname(__FILE__) . '/_public/get_order.php';
$record_self = $result;
if ($errorCode == 0) {
//取默认参数
require dirname(__FILE__) . '/_public/get_addon.php';
$record_param_default = $result;
//取当前表单的指定参数
$o_sn = $sn;
require dirname(__FILE__) . '/_public/get_addon.php';
$record_param_private = $result;
$record_param = array_merge($record_param_default, $record_param_private);
//读取默认参数并在写入params后重置
if (isset($record_param_default['default'])) {
foreach ($record_param_default['default'] as $kk => $vv) {
if (isset($record_param[$kk]) && is_array($record_param[$kk]) && is_array($vv)) {
$record_param[$kk] = array_merge($vv, $record_param[$kk]);
} else if (!isset($record_param[$kk])) {
$record_param[$kk] = $vv;
}
}
unset($record_param['default']);
}
$record = $record_self;
$record['params'] = $record_param;
//需要重设的字段
$reset = ['status', 'deleted'];
foreach ($reset as $k) {
if (isset($record['params'][$k])) {
$record[$k] = $record['params'][$k]; //重设标题
}
}
$errorCode = 0;
}
} else {
$errorCode = 45300306;
$record = $data['addons'];
}
break;
default:
$errorCode = 4530039999;
break;
}
$return['errorcode'] = $errorCode;
$return['msg'] = Yii::t('errorcode', $errorCode);
$return['data'] = isset($record) ? $record : '';
$return['timeused'] = getMillisecond() - $START_TIME;
$return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
fmFunc_stat_times_out($username = $_FM['user']['name'], 1); //增加一次接口出站次数累计
fmFunc_stat_bytes_out($username = $_FM['user']['name'], $return['bytes']); //增加一次接口出站数据量累计
return json_encode($return);
}
public function actionSave()
{
global $_GPC;
global $_HI;
global $_FM;
global $START_TIME;
$_HI['action'] = 'save';
//数据保存方法
$dataGet = $_FM['get']; //GET进来的参数
$dataPost = $_FM['post']; //POST进来的参数
$data = array();
$data['addons'] = array();
require dirname(__FILE__) . '/_public/plat.php';
$dbmodel = new dataModel;
$data = $dbmodel->data_filter($dataPost); //过滤后的可用值
$inbytes = strlen(json_encode($data));//长度字节统计
fmFunc_stat_times_in($username = $_FM['user']['name'], 1); //增加一次接口入站次数累计
fmFunc_stat_bytes_in($username = $_FM['user']['name'], $inbytes); //增加一次接口入站数据量累计
$connection = yii::$app->db;
$tablePre = 's';
$table = 'metadata';
$s_sn = 0;
$f_sn = 0;
$o_sn = 0;
$s_sn_title = Yii::t('frontend', 'Default Page s_sn_title');
$f_sn_title = Yii::t('frontend', 'Default Page f_sn_title');
$o_sn_title = Yii::t('frontend', 'Default Page o_sn_title');
$return = array();
$errorCode = 0;
$return['errorcode'] = $errorCode;
$return['msg'] = '已保存';
switch ($ac) {
case 'model'; //模型数据,保存到self与param表
if (isset($data['addons']['sn']) && intval($data['addons']['sn']) > 0) {
//传入了非0SN,即是对指定数据进行修改
$s_sn = intval($data['addons']['sn']);
require dirname(__FILE__) . '/_public/update_self.php';
} else if (isset($data['addons']['sn']) && intval($data['addons']['sn']) == 0) {
//传入了0SN,即是新建一个数据
require dirname(__FILE__) . '/_public/new_self.php';
} else {
//未传入SN时,从服务器取出一个,未取到时自动新建
require dirname(__FILE__) . '/_public/s_sn.php';
}
//写param表
require dirname(__FILE__) . '/_public/save_param.php';
//返回模型SN
$record = $s_sn;
break;
case 'instance'; //实例数据,保存到form与param表
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$f_sn = isset($data['addons']['sn']) ? intval($data['addons']['sn']) : 0;
if (isset($data['addons']['sn']) && intval($data['addons']['sn']) > 0) {
//传入了非0SN,即是对指定数据进行修改
require dirname(__FILE__) . '/_public/update_form.php';
} else if (isset($data['addons']['sn']) && intval($data['addons']['sn']) == 0) {
//传入了0SN,即是新建一个数据
require dirname(__FILE__) . '/_public/new_form.php';
} else {
//未传入SN时,从服务器取出一个,未取到时自动新建
require dirname(__FILE__) . '/_public/f_sn.php';
}
//写param表
require dirname(__FILE__) . '/_public/save_param.php';
//返回模型SN
$record = $f_sn;
break;
case 'content'; //内容数据,保存到order与addon表
$s_sn = isset($data['addons']['s_sn']) ? intval($data['addons']['s_sn']) : 0;
$f_sn = isset($data['addons']['f_sn']) ? intval($data['addons']['f_sn']) : 0;
$o_sn = isset($data['addons']['sn']) ? intval($data['addons']['sn']) : 0;
if (isset($data['addons']['sn']) && intval($data['addons']['sn']) > 0) {
//传入了非0SN,即是对指定数据进行修改
require dirname(__FILE__) . '/_public/update_order.php';
} else if (isset($data['addons']['sn']) && intval($data['addons']['sn']) == 0) {
//传入了0SN,即是新建一个数据
require dirname(__FILE__) . '/_public/new_order.php';
} else {
//未传入SN时,从服务器取出一个,未取到时自动新建
require dirname(__FILE__) . '/_public/o_sn.php';
}
//写addon表
require dirname(__FILE__) . '/_public/save_addon.php';
//返回模型SN
$record = $o_sn;
break;
default:
break;
}
if ($errorCode > 0) {
$return['msg'] = Yii::t('errorcode', $errorCode);
}
$return['data'] = isset($record) ? $record : '';
$return['timeused'] = getMillisecond() - $START_TIME;
$return['bytes'] = strlen(json_encode($return['data']));//长度字节统计
fmFunc_stat_times_out($username = $_FM['user']['name'], 1); //增加一次接口出站次数累计
fmFunc_stat_bytes_out($username = $_FM['user']['name'], $return['bytes']); //增加一次接口出站数据量累计
return json_encode($return);
}
}