作者 lyh

gx

... ... @@ -2,7 +2,7 @@
namespace App\Http\Controllers\Aside;
use App\Models\Template\AHeadFoot;
use App\Models\Template\ATemplateHtml;
/**
* 模板
... ... @@ -22,22 +22,9 @@ class TemplateController extends BaseController
*/
public function index(){
$data = AHeadFoot::all();
$lists = [];
// 以名字为单位区分
foreach ($data as $datum){
if(empty($lists[$datum['name']])) $lists[$datum['name']] = [];
$lists[$datum['name']]['name'] = $datum['name'];
$lists[$datum['name']]['default'] = $datum['is_default'];
$lists[$datum['name']]['sort'] = $datum['sort'];
$lists[$datum['name']]['status'] = $datum['status'];
$lists[$datum['name']]['created_at'] = $datum['created_at'];
// $lists[$datum['name']]['tags'] = $datum['tags'];
$lists[$datum['name']][$datum['type']==AHeadFoot::TYPE_HEADER?'header':'footer'] = $datum['html'];
}
return $this->success($lists);
return view('a');
}
... ...
... ... @@ -26,7 +26,7 @@ class CustomController extends BaseController
'title' => ['required','max:200'],
'keywords' => ['required','max:200'],
'description' => ['required','max:250'],
'html' => ['required'],
// 'html' => ['required'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
],
... ... @@ -144,5 +144,33 @@ class CustomController extends BaseController
/**
* @param $id
* @return \Illuminate\Http\JsonResponse
* @author:dc
* @time 2023/5/10 14:10
*/
public function html($id)
{
$data = BCustom::_find($this->user['project_id'],$id);
if(!$data){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
}
if($this->isPost()){
$html = $this->param['html']??'';
$data->html = $html;
$data->save();
}
return $this->response('',Code::SUCCESS,$data['html']);
}
}
... ...
... ... @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Bside;
use App\Models\Template\ATemplate;
use App\Models\Template\BSetting;
use App\Models\Template\BTemplateData;
/**
... ... @@ -71,5 +72,49 @@ class TemplateController extends BaseController
}
/**
* 保存模板
* @author:dc
* @time 2023/5/10 10:53
*/
public function save(){
$html = '<header id="globalso-header" class="web_head sticky-top py-1 py-md-0" style="background-color: #318fff;">asdf</header>';
// 替换 header
$html = preg_replace("/<header(.*)id=\"globalso-header\"(.*)>([\s\S]*)<\/header>/iU",'',$html);
$html = preg_replace("/<main(.*)id=\"globalso-main\"(.*)>([\s\S]*)<\/main>/iU",'',$html);
$html = preg_replace("/<footer(.*)id=\"globalso-footer\"(.*)>([\s\S]*)<\/footer>/iU",'',$html);
}
/**
* 自定义块
* @author:dc
* @time 2023/5/10 14:55
*/
public function customChunk(){
$html = $this->param['html']??[];
if(!is_array($html)){
return $this->response('参数异常','B_CUSTOM_CHUNK_PARAMS');
}
$data = BTemplateData::_insert();
}
}
... ...
... ... @@ -30,10 +30,10 @@ class LoginAuthMiddleware
return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户未登录']);
}
// 设置数据信息
// $project = ProjectServer::useProject($info['project_id']);
// if($project){
// return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']);
// }
$project = ProjectServer::useProject($info['project_id']);
if($project){
return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']);
}
//操作权限设置
$projectRoleModel = new ProjectRoleModel();
$role_info = $projectRoleModel->read(['id'=>$info['role_id']]);
... ...
... ... @@ -59,7 +59,7 @@ class BCustom extends Base
$model->description = $data['description'];
$model->url = $data['url'];
$model->status = $data['status'];
$model->html = $data['html'];
$model->html = $data['html']??'';
$model->save();
... ...
... ... @@ -81,5 +81,19 @@ class ATemplate extends \App\Models\Base{
}
/**
* 查询
* @param $id
* @return mixed
* @author:dc
* @time 2023/5/10 10:15
*/
public static function _find($id)
{
return static::where('id',$id)->first();
}
}
... ...
... ... @@ -24,6 +24,16 @@ class ATemplateHtml extends \App\Models\Base{
use SoftDeletes;
/**
* 模板中的数据
* @param $template_id
* @return mixed
* @author:dc
* @time 2023/5/10 10:30
*/
public static function _all($template_id){
return static::where(['template_id'=>$template_id])->get();
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
/**
* 当前用户的模板
... ... @@ -71,6 +72,30 @@ class BSetting extends \App\Models\Base{
$data->save();
// 是否有模板
// if(!BTemplate::_isExist($project_id,$template_id)){
// // 没有模板
// $aData = ATemplate::_find($template_id);
// // 保存到自己的数据中
// BTemplate::_insert($project_id,$aData);
//
// $aDataHtml = ATemplateHtml::_all($template_id);
// DB::beginTransaction();
// foreach ($aDataHtml as $item){
// try {
// // 插入子数据
// BTemplateHtml::_insert($project_id,$item);
// }catch (\Throwable $e){
// DB::rollBack();
//
// return $data->id;
// break;
// }
//
// }
// DB::commit();
// }
return $data->id;
}
... ...
... ... @@ -11,48 +11,46 @@ namespace App\Models\Template;
*/
class BTemplate extends \App\Models\Base{
protected $table = 'gl_web_template_html';
protected $table = 'gl_web_template';
protected $hidden = ['project_id'];
/**
* @param $project_id
* @return mixed
* 是否存在模板
* @param int $template_id
* @author:dc
* @time 2023/5/4 16:13
* @time 2023/5/10 10:00
*/
public static function _get($project_id){
return static::where(['project_id'=>$project_id])->get(['html','type'])->pluck('html','type')->toArray();
}
public static function _all($project_id){
return static::where(['project_id'=>$project_id])->get();
public static function _isExist(int $project_id, int $template_id)
{
return static::where(['project_id'=>$project_id,'template_id'=>$template_id])->limit(1)->count();
}
/**
* 保存
* 插入
* @param $project_id
* @param $type
* @param $html
* @param $data
* @return mixed
* @author:dc
* @time 2023/5/4 17:50
* @time 2023/5/10 10:23
*/
public static function _save($project_id,$type,$html){
$data = static::where(['project_id'=>$project_id,'type'=>$type])->first();
if(!$data){
$data = new static();
$data->project_id = $project_id;
$data->type = $type;
}
$data->html = $html;
$data->save();
return $data->id;
}
public static function _insert($project_id,$data)
{
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['id'];
$model->name = $data['name'];
$model->thumb = $data['thumb'];
$model->html = $data['html'];
$model->save();
return $model->id;
}
}
... ...
<?php
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* @author:dc
* @time 2023/5/10 14:31
* Class BTemplateData
* @package App\Models\Template
*/
class BTemplateData extends \App\Models\Base{
protected $table = 'gl_web_template_data';
protected $hidden = ['project_id'];
/**
* 插入
* @param $project_id
* @param $data
* @return mixed
* @author:dc
* @time 2023/5/10 10:23
*/
public static function _insert($project_id,$data)
{
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['template_id'];
$model->name = $data['name'];
$model->type = $data['type'];
$model->is_edit = $data['is_edit'];
$model->css = $data['css'];
$model->script = $data['script'];
$model->html = $data['html'];
$model->data_ext = $data['data_ext'];
$model->save();
return $model->id;
}
}
... ...
<?php
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
*
* 模板
* @author:dc
* @time 2023/5/9 13:56
* Class ATemplate
* @package App\Models\Template
*/
class BTemplateHtml extends \App\Models\Base{
protected $table = 'gl_web_template_html';
protected $hidden = ['deleted_at','project_id'];
use SoftDeletes;
/**
* 插入
* @param $project_id
* @param $data
* @return mixed
* @author:dc
* @time 2023/5/10 10:23
*/
public static function _insert($project_id,$data)
{
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['template_id'];
$model->name = $data['name'];
$model->type = $data['type'];
$model->is_edit = $data['is_edit'];
$model->css = $data['css'];
$model->script = $data['script'];
$model->html = $data['html'];
$model->data_ext = $data['data_ext'];
$model->save();
return $model->id;
}
}
... ...
... ... @@ -224,7 +224,6 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/send_media', [\App\Http\Controllers\Bside\AyrShare\AyrReleaseController::class, 'send_media'])->name('ayr_release_send_media');
});
});
// 自定义页面
Route::prefix('template')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\TemplateController::class, 'index'])->name('template_header_footer');
... ... @@ -233,7 +232,14 @@ Route::middleware(['bloginauth'])->group(function () {
Route::get('/system', [\App\Http\Controllers\Bside\TemplateController::class, 'system_all_html'])->name('template_header_footer_system');
Route::get('/custom', [\App\Http\Controllers\Bside\TemplateController::class, 'custom'])->name('template_custom');
});
// 自定义页面,专题页
Route::prefix('custom')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\CustomController::class, 'index'])->name('bside_custom');
Route::post('/create', [\App\Http\Controllers\Bside\CustomController::class, 'create'])->name('bside_custom_create');
Route::post('/update', [\App\Http\Controllers\Bside\CustomController::class, 'update'])->name('bside_custom_update');
Route::delete('/delete', [\App\Http\Controllers\Bside\CustomController::class, 'delete'])->name('bside_custom_delete');
Route::any('/html/{id}', [\App\Http\Controllers\Bside\CustomController::class, 'html'])->where('id','\d+')->name('bside_custom_delete');
});
// 导航栏编辑
Route::prefix('nav')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\NavController::class, 'index'])->name('bside_nav');
... ... @@ -242,9 +248,6 @@ Route::middleware(['bloginauth'])->group(function () {
Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete');
});
});
//无需登录验证的路由组
... ...