Files
ctms-yii/dacms-api/controllers/MetadataController.php
T
2025-07-13 19:37:38 +08:00

483 lines
17 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]);
}elseif(!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]);
}elseif(!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]);
}elseif(!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]);
}elseif(!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';
}elseif(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';
}elseif(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';
}elseif(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);
}
}