getURlHTML($url,$uri); //菜单 $siteMenu = SiteMenu::showAllSelectOptions(); foreach ($siteMenu as $key => $value) { if ($value['url'] == '/' && $mid == 0) { $mid =$value['id']; break; } } // $publish = admin_trans_label('publish'); $visualEdit = admin_trans_label('visual_edit'); return view('distributor.pages-custom.visual-editor',[ 'html'=>$html, 'siteMenu'=>json_encode($siteMenu), 'mid'=>$mid, 'publish' => $publish, 'visualEdit' => $visualEdit, ]); } /* * 保存预览修改 */ public function previewSave() { $html = isset($_POST['html'])? $_POST['html'] : ''; if (empty($html) == false) { DistAppearanceTemplate::previewSave($html); } return response()->json(['status' => 1]); } /* * 发布 */ public function publish() { $info = DistAdminDistributor::getInfo(); $distId = $info->id; $appearanceId = $info->appearance_id; //发布 DistAppearancePublishList::publish($appearanceId, $distId); //清除缓存 DistAdminDistributor::clearCache(); return ['status'=>1,'message'=>admin_trans('admin.update_succeeded')]; } /* * 上传图片 */ public function upload() { $disk = $this->disk('oss'); // 判断是否是删除文件请求 if ($this->isDeleteRequest()) { // 删除文件并响应 //return $this->deleteFileAndResponse($disk); return $this->responseDeleted(); } // 获取上传的文件 $file = $this->file(); // 获取上传的字段名称 // $column = $this->uploader()->upload_column; $column = uniqueCode("img"); $dir = config("distributor.upload.gjs_directory.image").'/'.date('Ymd'); $newName = $column.'.'.$file->getClientOriginalExtension(); $result = $disk->putFileAs($dir, $file, $newName); $result = CommonHelper::ossUrl($result); $response = [ 'data'=>[[ 'src' => $result, 'type'=>'image', ]] ]; return json_encode($response); } private function getURlHTML($url,$uri) { $siteUrl = $url . $uri; // 检查URL中是否已经包含? if (strpos($siteUrl, '?') !== false) { // 如果包含?则添加&mtb-preview=1 $siteUrl .= "&mtb-preview=1"; } else { // 如果不包含?则添加?mtb-preview=1 $siteUrl .= "?mtb-preview=1"; } $ch = curl_init($siteUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回原生的(Raw)输出 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查(在生产环境中,应将其设置为true并指定CA证书路径) curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 跳过证书主机名验证 $html = curl_exec($ch); if (curl_errno($ch)) { echo 'cURL error: ' . curl_error($ch);exit; } curl_close($ch); $pattern = '/<(link|script|img)[^>]*\s+(href|src)=["\'](\/[^"\']+)["\'][^>]*>/i'; $replacement = function($matches) use ($url) { // $matches[3] 是匹配到的以 / 开头的路径 return str_replace($matches[3], $url . $matches[3], $matches[0]); }; $html = preg_replace_callback($pattern, $replacement, $html); //把form去掉 $pattern = '/]*>(.*?)<\/form>/is'; $html = preg_replace($pattern, '$1', $html); return $html; } }