添加友链修改页面及API #11
40
app/Http/Controllers/DataBase.php
Normal file
40
app/Http/Controllers/DataBase.php
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright © 2016 - 2023 筱锋xiao_lfeng. All Rights Reserved.
|
||||||
|
* 开发开源遵循 MIT 许可,若需商用请联系开发者
|
||||||
|
* https://www.x-lf.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class DataBase extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
DB::statement("TRUNCATE TABLE `xf_index`.`blog_link`");
|
||||||
|
$result = DB::table('xf_blog_friends')
|
||||||
|
->orderBy('id')
|
||||||
|
->get()
|
||||||
|
->toArray();
|
||||||
|
foreach ($result as $value) {
|
||||||
|
$value->blog_rss_judge ? $value->blog_rss_judge = 1 : $value->blog_rss_judge = 0;
|
||||||
|
DB::table('blog_link')
|
||||||
|
->insert([
|
||||||
|
'blogName' => $value->blog_name,
|
||||||
|
'blogUrl' => $value->blog_url,
|
||||||
|
'blogDescription' => $value->blog_introduce,
|
||||||
|
'blogOwnEmail' => $value->blog_owner_email,
|
||||||
|
'blogIcon' => $value->blog_icon,
|
||||||
|
'blogRssJudge' => $value->blog_rss_judge,
|
||||||
|
'blogRSS' => $value->blog_rss,
|
||||||
|
'blogServerHost' => $value->blog_serverhost,
|
||||||
|
'blogLocation' => $value->blog_location,
|
||||||
|
'blogSetColor' => $value->blog_sel_color,
|
||||||
|
'created_at' => date('Y-m-d H:i:s'),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -40,10 +40,12 @@ public function __construct()
|
||||||
*/
|
*/
|
||||||
public function apiCustomAdd(HttpRequest $request): JsonResponse
|
public function apiCustomAdd(HttpRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
/** @var array $returnData Json的 return 返回值 */
|
/**
|
||||||
/** @var Validator $dataCheck 数据判断 */
|
* @var array $returnData Json的 return 返回值
|
||||||
/** @var array $errorInfo 错误信息 */
|
* @var Validator $dataCheck 数据判断
|
||||||
/** @var array $errorSingle 输出单个错误信息 */
|
* @var array $errorInfo 错误信息
|
||||||
|
* @var array $errorSingle 输出单个错误信息
|
||||||
|
*/
|
||||||
// 检查数据
|
// 检查数据
|
||||||
$dataCheck = Validator::make($request->all(), [
|
$dataCheck = Validator::make($request->all(), [
|
||||||
'userEmail' => 'required|email',
|
'userEmail' => 'required|email',
|
||||||
|
@ -110,6 +112,7 @@ public function apiCustomAdd(HttpRequest $request): JsonResponse
|
||||||
'blogUserLocation' => $request->userLocation,
|
'blogUserLocation' => $request->userLocation,
|
||||||
'blogSetColor' => $request->userSelColor,
|
'blogSetColor' => $request->userSelColor,
|
||||||
'blogRemark' => $request->userRemark,
|
'blogRemark' => $request->userRemark,
|
||||||
|
'blogServerHost' => $request->userServerHost,
|
||||||
]);
|
]);
|
||||||
if ($insertData) {
|
if ($insertData) {
|
||||||
// 邮件发送系统
|
// 邮件发送系统
|
||||||
|
@ -435,8 +438,10 @@ private function apiCustomBlogCheckSendEmail(): void
|
||||||
*/
|
*/
|
||||||
public function apiCustomBlogVerify(HttpRequest $request): JsonResponse
|
public function apiCustomBlogVerify(HttpRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
/** @var array $returnData Json的 return 返回值 */
|
/**
|
||||||
/** @var mixed $cookie 保存Cookie数据 */
|
* @var array $returnData Json的 return 返回值
|
||||||
|
* @var mixed $cookie 保存Cookie数据
|
||||||
|
*/
|
||||||
//数据验证
|
//数据验证
|
||||||
$dataCheck = Validator::make($request->all(), [
|
$dataCheck = Validator::make($request->all(), [
|
||||||
'id' => 'required|int',
|
'id' => 'required|int',
|
||||||
|
@ -445,7 +450,6 @@ public function apiCustomBlogVerify(HttpRequest $request): JsonResponse
|
||||||
]);
|
]);
|
||||||
// 验证数据是否合法
|
// 验证数据是否合法
|
||||||
if (!$dataCheck->fails()) {
|
if (!$dataCheck->fails()) {
|
||||||
$cookie = cookie('friend_edit', '', -1, '/');
|
|
||||||
// 检查内容是否存在
|
// 检查内容是否存在
|
||||||
$resultBlog = DB::table('blog_link')
|
$resultBlog = DB::table('blog_link')
|
||||||
->select('id', 'blogOwnEmail')
|
->select('id', 'blogOwnEmail')
|
||||||
|
@ -479,6 +483,8 @@ public function apiCustomBlogVerify(HttpRequest $request): JsonResponse
|
||||||
'id' => $resultBlog->id
|
'id' => $resultBlog->id
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
return Response::json($returnData, $returnData['code'])
|
||||||
|
->cookie($cookie);
|
||||||
} else {
|
} else {
|
||||||
// 验证码验证失败
|
// 验证码验证失败
|
||||||
$returnData = [
|
$returnData = [
|
||||||
|
@ -539,8 +545,197 @@ public function apiCustomBlogVerify(HttpRequest $request): JsonResponse
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
return Response::json($returnData, $returnData['code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改友链API
|
||||||
|
*
|
||||||
|
* @param HttpRequest $request 获取HTTP中 Request 数据
|
||||||
|
* @return JsonResponse 返回JSON数据
|
||||||
|
*/
|
||||||
|
public function apiCustomEdit(HttpRequest $request, string $friendId): JsonResponse
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array $returnData Json的 return 返回值
|
||||||
|
* @var Validator $dataCheck 数据判断
|
||||||
|
* @var array $errorInfo 错误信息
|
||||||
|
* @var array $errorSingle 输出单个错误信息
|
||||||
|
*/
|
||||||
|
// 验证Cookie是否有效
|
||||||
|
if ($request->hasCookie('friend_edit')) {
|
||||||
|
// 检查Cookie解析是否为此博客
|
||||||
|
if (password_verify($friendId, $request->cookie('friend_edit'))) {
|
||||||
|
// 获取数据库
|
||||||
|
$resultBlog = DB::table('blog_link')
|
||||||
|
->find($friendId);
|
||||||
|
if (!empty($resultBlog->id)) {
|
||||||
|
// 检查数据
|
||||||
|
$dataCheck = Validator::make($request->all(), [
|
||||||
|
'userEmail' => 'required|email',
|
||||||
|
'userServerHost' => 'required|string',
|
||||||
|
'userBlog' => 'required|string',
|
||||||
|
'userUrl' => 'required|regex:#[a-zA-z]+://[^\s]*#',
|
||||||
|
'userDescription' => 'required|string',
|
||||||
|
'userIcon' => 'required|regex:#[a-zA-z]+://[^\s]*#',
|
||||||
|
'checkRssJudge' => 'boolean',
|
||||||
|
'userRss' => 'string|regex:#[a-zA-z]+://[^\s]*#',
|
||||||
|
'userSelColor' => 'required|int',
|
||||||
|
'userRemark' => 'string',
|
||||||
|
]);// 检查发现错误
|
||||||
|
if ($dataCheck->fails()) {
|
||||||
|
$errorType = array_keys($dataCheck->failed());
|
||||||
|
$i = 0;
|
||||||
|
foreach ($dataCheck->failed() as $valueData) {
|
||||||
|
$errorInfo[$errorType[$i]] = array_keys($valueData);
|
||||||
|
if ($i == 0) {
|
||||||
|
$errorSingle = [
|
||||||
|
'info' => $errorType[$i],
|
||||||
|
'need' => $errorInfo[$errorType[$i]],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'DataFormatError',
|
||||||
|
'code' => 403,
|
||||||
|
'data' => [
|
||||||
|
'message' => '输入内容有错误',
|
||||||
|
'errorSingle' => $errorSingle,
|
||||||
|
'error' => $errorInfo,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// 检查数据
|
||||||
|
if (empty($request->checkRssJudge)) {
|
||||||
|
$request->checkRssJudge = 0;
|
||||||
|
}
|
||||||
|
// 数据载入数组
|
||||||
|
$this->data['oldBlog'] = (object)[
|
||||||
|
'blogOwnEmail' => $resultBlog->blogOwnEmail,
|
||||||
|
'blogUrl' => $resultBlog->blogUrl,
|
||||||
|
'blogName' => $resultBlog->blogName,
|
||||||
|
'blogDescription' => $resultBlog->blogDescription,
|
||||||
|
'blogIcon' => $resultBlog->blogIcon,
|
||||||
|
'blogRssJudge' => $resultBlog->blogRssJudge,
|
||||||
|
'blogRSS' => $resultBlog->blogRSS,
|
||||||
|
'blogSetColor' => $resultBlog->blogSetColor,
|
||||||
|
'blogRemark' => $resultBlog->blogRemark,
|
||||||
|
'blogServerHost' => $resultBlog->blogServerHost,
|
||||||
|
];
|
||||||
|
$this->data['blog'] = (object)[
|
||||||
|
'blogOwnEmail' => $request->userEmail,
|
||||||
|
'blogUrl' => $request->userUrl,
|
||||||
|
'blogName' => $request->userBlog,
|
||||||
|
'blogDescription' => $request->userDescription,
|
||||||
|
'blogIcon' => $request->userIcon,
|
||||||
|
'blogRssJudge' => $request->checkRssJudge,
|
||||||
|
'blogRSS' => $request->userRss,
|
||||||
|
'blogSetColor' => $request->userSelColor,
|
||||||
|
'blogRemark' => $request->userRemark,
|
||||||
|
'blogServerHost' => $request->userServerHost,
|
||||||
|
];
|
||||||
|
|
||||||
|
// 修改数据
|
||||||
|
$updateData = DB::table('blog_link')
|
||||||
|
->where('id', $resultBlog->id)
|
||||||
|
->update([
|
||||||
|
'blogOwnEmail' => $request->userEmail,
|
||||||
|
'blogUrl' => $request->userUrl,
|
||||||
|
'blogName' => $request->userBlog,
|
||||||
|
'blogDescription' => $request->userDescription,
|
||||||
|
'blogIcon' => $request->userIcon,
|
||||||
|
'blogRssJudge' => $request->checkRssJudge,
|
||||||
|
'blogRSS' => $request->userRss,
|
||||||
|
'blogSetColor' => $request->userSelColor,
|
||||||
|
'blogRemark' => $request->userRemark,
|
||||||
|
'blogServerHost' => $request->userServerHost,
|
||||||
|
'updated_at' => date('Y-m-d H:i:s'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($updateData) {
|
||||||
|
// 邮件发送系统
|
||||||
|
// 新用户
|
||||||
|
if ($this->data['oldBlog']->blogOwnEmail != $this->data['blog']->blogOwnEmail) {
|
||||||
|
$this->data['sendEmail'] = [
|
||||||
|
'userEmail' => $this->data['blog']->blogOwnEmail,
|
||||||
|
'userBlog' => $this->data['blog']->blogName,
|
||||||
|
'userUrl' => $this->data['blog']->blogUrl,
|
||||||
|
];
|
||||||
|
Mail::send('mail.link-custom-edit', $this->data, function (Message $mail) {
|
||||||
|
$mail->from(env('MAIL_USERNAME'), env('APP_NAME'));
|
||||||
|
$mail->to($this->data['sendEmail']['userEmail']);
|
||||||
|
$mail->subject(env('APP_NAME') . '-友链自主修改通知');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
$this->data['sendEmail'] = [
|
||||||
|
'userEmail' => $this->data['oldBlog']->blogOwnEmail,
|
||||||
|
'userBlog' => $this->data['oldBlog']->blogName,
|
||||||
|
'userUrl' => $this->data['oldBlog']->blogUrl,
|
||||||
|
];
|
||||||
|
// 用户
|
||||||
|
Mail::send('mail.link-custom-edit', $this->data, function (Message $mail) {
|
||||||
|
$mail->from(env('MAIL_USERNAME'), env('APP_NAME'));
|
||||||
|
$mail->to($this->data['sendEmail']['userEmail']);
|
||||||
|
$mail->subject(env('APP_NAME') . '-友链自主修改通知');
|
||||||
|
});
|
||||||
|
// 站长
|
||||||
|
Mail::send('mail.link-custom-edit-admin', $this->data, function (Message $mail) {
|
||||||
|
$mail->from(env('MAIL_USERNAME'), env('APP_NAME'));
|
||||||
|
$mail->to($this->data['sqlEmail']);
|
||||||
|
$mail->subject(env('APP_NAME') . '-友链自主修改通知');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 消息成功通知
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'Success',
|
||||||
|
'code' => 200,
|
||||||
|
'data' => [
|
||||||
|
'message' => '您已成功修改',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$cookie = cookie('friend_edit', '', -1, '/');
|
||||||
return Response::json($returnData, $returnData['code'])
|
return Response::json($returnData, $returnData['code'])
|
||||||
->cookie($cookie);
|
->cookie($cookie);
|
||||||
|
} else {
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'UpdateFail',
|
||||||
|
'code' => 403,
|
||||||
|
'data' => [
|
||||||
|
'message' => '更新失败请联系管理员',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'NoBlog',
|
||||||
|
'code' => 403,
|
||||||
|
'data' => [
|
||||||
|
'message' => '没有对应博客',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'Mismatch',
|
||||||
|
'code' => 403,
|
||||||
|
'data' => [
|
||||||
|
'message' => '不匹配',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$returnData = [
|
||||||
|
'output' => 'InvalidValidation',
|
||||||
|
'code' => 403,
|
||||||
|
'data' => [
|
||||||
|
'message' => '无效验证',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return Response::json($returnData, $returnData['code']);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function viewEditFriend(HttpRequest $request, $friendId): Application|Factory|View|RedirectResponse
|
protected function viewEditFriend(HttpRequest $request, $friendId): Application|Factory|View|RedirectResponse
|
||||||
|
@ -586,14 +781,14 @@ protected function viewEditFriend(HttpRequest $request, $friendId): Application|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function viewLink(HttpRequest $request): Factory|View|Application
|
protected function viewLink(): Factory|View|Application
|
||||||
{
|
{
|
||||||
$this->data['webSubTitle'] = '友链';
|
$this->data['webSubTitle'] = '友链';
|
||||||
$this->GetFriendsLink($this->data);
|
$this->getFriendsLink($this->data);
|
||||||
return view('function.link', $this->data);
|
return view('function.link', $this->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function GetFriendsLink(array &$data): void
|
private function getFriendsLink(array &$data): void
|
||||||
{
|
{
|
||||||
$data['blogLink'] = DB::table('blog_link')->whereNotIn('blog_link.blogLocation', [0])->get()->toArray();
|
$data['blogLink'] = DB::table('blog_link')->whereNotIn('blog_link.blogLocation', [0])->get()->toArray();
|
||||||
$data['blogSort'] = DB::table('blog_sort')->orderBy('blog_sort.sort')->get()->toArray();
|
$data['blogSort'] = DB::table('blog_sort')->orderBy('blog_sort.sort')->get()->toArray();
|
||||||
|
@ -629,6 +824,7 @@ protected function viewSearchFriend($friendId): Factory|View|Application|Redirec
|
||||||
->select('id', 'blogOwnEmail', 'blogName')
|
->select('id', 'blogOwnEmail', 'blogName')
|
||||||
->find($friendId);
|
->find($friendId);
|
||||||
if (!empty($resultBlog->id)) {
|
if (!empty($resultBlog->id)) {
|
||||||
|
if (!empty($resultBlog->blogOwnEmail)) {
|
||||||
// 处理加密邮箱
|
// 处理加密邮箱
|
||||||
$strlenEmail = strlen($resultBlog->blogOwnEmail);
|
$strlenEmail = strlen($resultBlog->blogOwnEmail);
|
||||||
($strlenEmail > 4) ? $j = 1 : $j = 0;
|
($strlenEmail > 4) ? $j = 1 : $j = 0;
|
||||||
|
@ -646,6 +842,11 @@ protected function viewSearchFriend($friendId): Factory|View|Application|Redirec
|
||||||
$resultBlog->blogOwnEmail = implode($dataEmail);
|
$resultBlog->blogOwnEmail = implode($dataEmail);
|
||||||
$this->data['blog'] = $resultBlog;
|
$this->data['blog'] = $resultBlog;
|
||||||
return view('function.edit-check', $this->data);
|
return view('function.edit-check', $this->data);
|
||||||
|
} else {
|
||||||
|
$resultBlog->blogOwnEmail = null;
|
||||||
|
$this->data['blog'] = $resultBlog;
|
||||||
|
return view('function.edit-unemail', $this->data);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return Response::redirectTo(route('function.edit-search'));
|
return Response::redirectTo(route('function.edit-search'));
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ public function __construct()
|
||||||
'webFooter' => DB::table('info')->find(8)->data,
|
'webFooter' => DB::table('info')->find(8)->data,
|
||||||
'webKeyword' => empty($tempStorage = DB::table('info')->find(6)->data) ? '筱锋,凌中的锋雨,xiao_lfeng' : $tempStorage,
|
'webKeyword' => empty($tempStorage = DB::table('info')->find(6)->data) ? '筱锋,凌中的锋雨,xiao_lfeng' : $tempStorage,
|
||||||
'sqlAuthor' => empty($tempStorage = DB::table('info')->find(12)->data) ? '筱锋xiao_lfeng' : $tempStorage,
|
'sqlAuthor' => empty($tempStorage = DB::table('info')->find(12)->data) ? '筱锋xiao_lfeng' : $tempStorage,
|
||||||
|
'sqlEmail' => empty($tempStorage = DB::table('info')->find(17)->data) ? 'gm@x-lf.cn' : $tempStorage,
|
||||||
'sqlCopyRightYear' => DB::table('info')->find(13)->data,
|
'sqlCopyRightYear' => DB::table('info')->find(13)->data,
|
||||||
'sqlIcp' => DB::table('info')->find(10)->data,
|
'sqlIcp' => DB::table('info')->find(10)->data,
|
||||||
'sqlGongan' => DB::table('info')->find(11)->data,
|
'sqlGongan' => DB::table('info')->find(11)->data,
|
||||||
|
|
|
@ -35,6 +35,9 @@ public function up()
|
||||||
DB::table('info')->insert(['value' => 'author', 'created_at' => date('Y-m-d H:i:s')]);
|
DB::table('info')->insert(['value' => 'author', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
DB::table('info')->insert(['value' => 'copyRightYear', 'created_at' => date('Y-m-d H:i:s')]);
|
DB::table('info')->insert(['value' => 'copyRightYear', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
DB::table('info')->insert(['value' => 'blog', 'created_at' => date('Y-m-d H:i:s')]);
|
DB::table('info')->insert(['value' => 'blog', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
|
DB::table('info')->insert(['value' => 'applicationRule', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
|
DB::table('info')->insert(['value' => 'applicationInfo', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
|
DB::table('info')->insert(['value' => 'email', 'created_at' => date('Y-m-d H:i:s')]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,58 +21,14 @@ class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translat
|
||||||
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mx-auto my-10 max-w-4xl py-8 sm:py-16 lg:py-16">
|
<div class="mx-auto my-10 max-w-4xl py-8 sm:py-16 lg:py-16">
|
||||||
<div class="flex">
|
<div class="py-6">
|
||||||
<label for="location_search" class="mb-2 text-sm font-medium text-gray-900 sr-only dark:text-white">Your
|
<a href="{{ route('function.edit-search') }}" class="focus:outline-none text-white bg-blue-700
|
||||||
Email</label>
|
hover:bg-blue-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-blue-600
|
||||||
<button id="dropdown-button-2" data-dropdown-toggle="dropdown-search-city"
|
dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
||||||
class="flex-shrink-0 z-10 inline-flex items-center py-2.5 px-4 text-sm font-medium text-center text-gray-500 bg-gray-100 border border-gray-300 rounded-l-lg hover:bg-gray-200 focus:ring-4 focus:outline-none focus:ring-gray-100 dark:bg-gray-700 dark:hover:bg-gray-600 dark:focus:ring-gray-700 dark:text-white dark:border-gray-600"
|
<i class="bi bi-arrow-return-left"></i>
|
||||||
type="button">
|
<span class="ps-1">返回友链搜索</span>
|
||||||
<span id="search-data">
|
</a>
|
||||||
<i class="bi bi-arrow-up-circle pe-1"></i>综合搜索
|
|
||||||
</span>
|
|
||||||
<svg aria-hidden="true" class="w-4 h-4 ml-1" fill="currentColor" viewBox="0 0 20 20"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path fill-rule="evenodd"
|
|
||||||
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
|
|
||||||
clip-rule="evenodd"></path>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
<div id="dropdown-search-city"
|
|
||||||
class="z-10 hidden bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700">
|
|
||||||
<ul class="py-2 text-sm text-gray-700 dark:text-gray-200" aria-labelledby="dropdown-button-2">
|
|
||||||
<li>
|
|
||||||
<button type="button" onclick="Check.Click(1)"
|
|
||||||
class="inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
||||||
role="menuitem">
|
|
||||||
<div class="inline-flex items-center">
|
|
||||||
<i class="bi bi-1-circle pe-1"></i>博客名字
|
|
||||||
</div>
|
</div>
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<button type="button" onclick="Check.Click(2)"
|
|
||||||
class="inline-flex w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-600 dark:hover:text-white"
|
|
||||||
role="menuitem">
|
|
||||||
<div class="inline-flex items-center">
|
|
||||||
<i class="bi bi-2-circle pe-1"></i>博客地址
|
|
||||||
</div>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="relative w-full">
|
|
||||||
<input type="search" id="location_search" name="location_search"
|
|
||||||
class="block p-2.5 w-full z-20 text-sm text-gray-900 bg-gray-50 rounded-r-lg border-l-gray-50 border-l-2 border border-gray-300 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-l-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:border-blue-500"
|
|
||||||
placeholder="输入内容进行友链筛查" required>
|
|
||||||
<button onclick="Search.ajax()"
|
|
||||||
class="absolute top-0 right-0 p-2.5 text-sm font-medium text-white bg-blue-700 rounded-r-lg border border-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
|
||||||
<i class="bi bi-search"></i>
|
|
||||||
<span class="sr-only">搜索</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="mx-auto my-10 max-w-4xl pb-8 sm:pb-16 lg:pb-16">
|
|
||||||
<form id="FormData" action="#" onsubmit="return false" method="POST">
|
<form id="FormData" action="#" onsubmit="return false" method="POST">
|
||||||
<div
|
<div
|
||||||
class="col-span-10 lg:col-span-7 items-center justify-center rounded bg-gray-50 dark:bg-gray-800 shadow">
|
class="col-span-10 lg:col-span-7 items-center justify-center rounded bg-gray-50 dark:bg-gray-800 shadow">
|
||||||
|
@ -161,18 +117,6 @@ class="z-[9999] fixed top-5 left-5 hidden items-center w-full max-w-xs p-4 space
|
||||||
<script src="{{ asset('js/jquery.js') }}"></script>
|
<script src="{{ asset('js/jquery.js') }}"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
class Check {
|
class Check {
|
||||||
static searchType = 'all';
|
|
||||||
|
|
||||||
static Click(type) {
|
|
||||||
if (type === 1) {
|
|
||||||
$('#search-data').html('<i class="bi bi-1-circle pe-1"></i>博客名字');
|
|
||||||
this.searchType = 'blogName';
|
|
||||||
} else if (type === 2) {
|
|
||||||
$('#search-data').html('<i class="bi bi-2-circle pe-1"></i>博客地址');
|
|
||||||
this.searchType = 'blogUrl';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static ajaxSendCode() {
|
static ajaxSendCode() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
async: true,
|
async: true,
|
||||||
|
@ -250,6 +194,9 @@ class Check {
|
||||||
success: function (returnData) {
|
success: function (returnData) {
|
||||||
if (returnData.output === "Success") {
|
if (returnData.output === "Success") {
|
||||||
Toast.toggle(returnData.data.message, '<i class="bi bi-check-circle text-green-500"></i>');
|
Toast.toggle(returnData.data.message, '<i class="bi bi-check-circle text-green-500"></i>');
|
||||||
|
$('#sendCheckCode').prop('disabled', true);
|
||||||
|
$('#sendCheckCode').removeClass('bg-green-700').addClass('bg-green-800');
|
||||||
|
$('#sendCheckCode').html('<i class="bi bi-check-circle"></i><span class="ps-1">验证通过</span>');
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
location.href = '{{ route('function.edit-friend','') }}/' + returnData.data.id
|
location.href = '{{ route('function.edit-friend','') }}/' + returnData.data.id
|
||||||
|
@ -261,7 +208,12 @@ class Check {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: function (returnData) {
|
error: function (returnData) {
|
||||||
Toast.toggle(returnData.responseJSON.data.message, '<i class="bi bi-x-circle text-red-500"></i>')
|
Toast.set('其他错误', '<i class="bi bi-x-circle text-red-500"></i>');
|
||||||
|
if (returnData.responseJSON.output !== 'SendingTimeTooFast') {
|
||||||
|
Toast.toggle(returnData.responseJSON.data.message, '<i class="bi bi-x-circle text-red-500"></i>');
|
||||||
|
$('#sendCheckCode').prop('disabled', false);
|
||||||
|
$('#sendCheckCode').html('<i class="bi bi-send"></i><span class="ps-1">验证</span>');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,14 @@ class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translat
|
||||||
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mx-auto my-10 max-w-4xl py-8 sm:py-16 lg:py-16">
|
<div class="mx-auto my-10 max-w-4xl py-8 sm:py-16 lg:py-16">
|
||||||
|
<div class="py-6">
|
||||||
|
<a href="{{ route('function.edit-search') }}" class="focus:outline-none text-white bg-blue-700
|
||||||
|
hover:bg-blue-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-blue-600
|
||||||
|
dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
||||||
|
<i class="bi bi-arrow-return-left"></i>
|
||||||
|
<span class="ps-1">返回友链搜索</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div class="w-full p-4 bg-white border border-gray-200 rounded-lg shadow-lg sm:p-8 dark:bg-gray-800 dark:border-gray-700">
|
<div class="w-full p-4 bg-white border border-gray-200 rounded-lg shadow-lg sm:p-8 dark:bg-gray-800 dark:border-gray-700">
|
||||||
<h1 class="text-center mb-4 text-3xl font-bold leading-none tracking-tight text-gray-900 md:text-3xl lg:text-4xl dark:text-white mt-5">
|
<h1 class="text-center mb-4 text-3xl font-bold leading-none tracking-tight text-gray-900 md:text-3xl lg:text-4xl dark:text-white mt-5">
|
||||||
自助友链修改系统</h1>
|
自助友链修改系统</h1>
|
||||||
|
@ -156,7 +164,7 @@ class="absolute z-10 invisible inline-block px-3 py-2 text-sm font-medium text-w
|
||||||
</div>
|
</div>
|
||||||
<input type="text" name="userRss" id="userRss" value="{{ $blog->blogRSS }}" placeholder="https://blog.x-lf.com/atom.xml"
|
<input type="text" name="userRss" id="userRss" value="{{ $blog->blogRSS }}" placeholder="https://blog.x-lf.com/atom.xml"
|
||||||
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
||||||
disabled>
|
@if($blog->blogRssJudge == 0)disabled @endif>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -353,7 +361,7 @@ function ajax() {
|
||||||
async: true,
|
async: true,
|
||||||
method: "POST",
|
method: "POST",
|
||||||
data: $('#FormData').serialize(),
|
data: $('#FormData').serialize(),
|
||||||
url: '{{ route('api.link.custom.add') }}',
|
url: '{{ route('api.link.custom.edit', $blog->id) }}',
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
success: function (returnData) {
|
success: function (returnData) {
|
||||||
if (returnData.output === "Success") {
|
if (returnData.output === "Success") {
|
||||||
|
|
96
resources/views/function/edit-unemail.blade.php
Normal file
96
resources/views/function/edit-unemail.blade.php
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
|
||||||
|
<link rel="stylesheet" href="{{ asset('css/flowbite.css') }}">
|
||||||
|
@include('modules.head')
|
||||||
|
{!! $webHeader !!}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="bg-white">
|
||||||
|
@include('modules.navbar')
|
||||||
|
<div class="relative isolate px-6 lg:px-8">
|
||||||
|
<div class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div
|
||||||
|
class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
|
||||||
|
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
||||||
|
</div>
|
||||||
|
<div class="mx-auto my-10 max-w-4xl py-8 sm:py-16 lg:py-16">
|
||||||
|
<div class="py-6">
|
||||||
|
<a href="{{ route('function.edit-search') }}" class="focus:outline-none text-white bg-blue-700
|
||||||
|
hover:bg-blue-800 focus:ring-4 focus:ring-green-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-blue-600
|
||||||
|
dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
||||||
|
<i class="bi bi-arrow-return-left"></i>
|
||||||
|
<span class="ps-1">返回友链搜索</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="col-span-10 lg:col-span-7 items-center justify-center rounded bg-gray-50 dark:bg-gray-800 shadow">
|
||||||
|
<div class="px-10 py-5">
|
||||||
|
<h1 class="text-center mb-4 text-3xl font-bold leading-none tracking-tight text-gray-900 md:text-3xl lg:text-4xl dark:text-white mt-5">
|
||||||
|
身份无法验证</h1>
|
||||||
|
<p class="mb-6 text-lg font-normal text-gray-500 sm:px-16 xl:px-48 dark:text-gray-400 text-center">
|
||||||
|
您好 <b>{{ $blog->blogName }}</b> 的站长</p>
|
||||||
|
<p class="mb-6 text-lg font-normal text-gray-500 sm:px-16 xl:px-48 dark:text-gray-400 text-center">
|
||||||
|
由于您未在本站设置有效邮箱,无法进行自助修改,请联系站长{{ $sqlAuthor }}(
|
||||||
|
<a class="text-blue-500 dark:text-blue-700" href="mailto:{{ $sqlEmail }}">{{ $sqlEmail }}</a>
|
||||||
|
)进行修改
|
||||||
|
</p>
|
||||||
|
<div class="py-6 text-center">
|
||||||
|
<a href="mailto:{{ $sqlEmail }}" class="focus:outline-none text-white bg-green-700 hover:bg-green-800
|
||||||
|
focus:ring-4 focus:ring-green-300
|
||||||
|
font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-green-600 dark:hover:bg-green-700 dark:focus:ring-green-800">
|
||||||
|
<i class="bi bi-send"></i>
|
||||||
|
<span class="ps-1">联系站长</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-20"></div>
|
||||||
|
<div
|
||||||
|
class="absolute inset-x-0 top-[calc(100%-13rem)] -z-10 transform-gpu overflow-hidden blur-3xl sm:top-[calc(100%-30rem)]"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div
|
||||||
|
class="relative left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%+36rem)] sm:w-[72.1875rem]"
|
||||||
|
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div>
|
||||||
|
</div>
|
||||||
|
@include('modules.footer')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Toast -->
|
||||||
|
<div id="toast"
|
||||||
|
class="z-[9999] fixed top-5 left-5 hidden items-center w-full max-w-xs p-4 space-x-4 text-gray-500 bg-white divide-x divide-gray-200 rounded-lg shadow dark:text-gray-400 dark:divide-gray-700 space-x dark:bg-gray-800"
|
||||||
|
role="alert">
|
||||||
|
<div class="pl-4 text-sm font-normal">
|
||||||
|
<span id="toast-icon" class="pe-1"><i class="bi bi-info-circle text-blue-500"></i></span>
|
||||||
|
<span id="toast-info">Message sent successfully.</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<script src="{{ asset('js/app.js') }}"></script>
|
||||||
|
<script src="{{ asset('js/jquery.js') }}"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// 处理Toast
|
||||||
|
class Toast {
|
||||||
|
static toggle(data, icon) {
|
||||||
|
this.set(data, icon);
|
||||||
|
$('#toast').fadeIn(300);
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#toast').fadeOut(300);
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
static set(data, icon) {
|
||||||
|
$('#toast-icon').html(icon);
|
||||||
|
$('#toast-info').text(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
{!! $webFooter !!}
|
||||||
|
</html>
|
84
resources/views/mail/link-custom-edit-admin.blade.php
Normal file
84
resources/views/mail/link-custom-edit-admin.blade.php
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
<title>Mail</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
</head>
|
||||||
|
<table align="center" border="0" cellpadding="0" cellspacing="0" width="600"
|
||||||
|
style="border-collapse: collapse;border: 1px solid #cccccc;box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175)">
|
||||||
|
<tr>
|
||||||
|
<td align="center" bgcolor="#70bbd9" style="padding: 30px 0 30px 0; font-size: 30px;"><b>{{ env('APP_NAME') }}</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding: 30px 30px 30px 30px;">
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 10px 0px 30px 0px;color: #08212b; font-family: Arial, sans-serif; font-size: 10px;">
|
||||||
|
时间: <b>{{ date('Y-m-d H:i:s') }}</b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 0px 10px 0px;color: #000000; font-family: Arial, sans-serif; font-size: 24px;">
|
||||||
|
Dear. <a style="text-decoration: none;color: #198754;" href="mailto:{{ $sqlEmail }}">{{ $sqlEmail }}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 5px 5px 0px;color: #000000; font-family: Arial, sans-serif; font-size: 16px;">
|
||||||
|
您好站长:{{ $sqlAuthor }}<br/>
|
||||||
|
本站友链(<a style="text-decoration: none;color: #198754;" href="{{ $oldBlog->blogUrl }}">{{ $oldBlog->blogName }}</a>)已自行修改<br/>
|
||||||
|
请检查修改问题确保无误!
|
||||||
|
<hr/>
|
||||||
|
这是您以前的信息:<br/>
|
||||||
|
<ul>
|
||||||
|
<li>博主邮箱:{{ $blog->blogOwnEmail }}</li>
|
||||||
|
<li>贵站名字:{{ $blog->blogName }}</li>
|
||||||
|
<li>贵站地址:{{ $blog->blogUrl }}</li>
|
||||||
|
<li>图片地址:{{ $blog->blogIcon }}</li>
|
||||||
|
<li>贵站介绍:{{ $blog->blogDescription }}</li>
|
||||||
|
@if(!empty($blog->blogRemark))
|
||||||
|
<li>备注内容:{{ $blog->blogRemark }}</li>
|
||||||
|
@endif
|
||||||
|
@if($blog->blogRssJudge == 1)
|
||||||
|
<li>RSS地址:{{ $blog->blogRSS }}</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
这是您的修改信息:<br/>
|
||||||
|
<ul>
|
||||||
|
<li>博主邮箱:{{ $oldBlog->blogOwnEmail }}</li>
|
||||||
|
<li>贵站名字:{{ $oldBlog->blogName }}</li>
|
||||||
|
<li>贵站地址:{{ $oldBlog->blogUrl }}</li>
|
||||||
|
<li>图片地址:{{ $oldBlog->blogIcon }}</li>
|
||||||
|
<li>贵站介绍:{{ $oldBlog->blogDescription }}</li>
|
||||||
|
@if(!empty($oldBlog->blogRemark))
|
||||||
|
<li>备注内容:{{ $oldBlog->blogRemark }}</li>
|
||||||
|
@endif
|
||||||
|
@if($oldBlog->blogRssJudge == 1)
|
||||||
|
<li>RSS地址:{{ $oldBlog->blogRSS }}</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
此邮件为凭证,若发生意外修改请使用此邮件提交于站长!谢谢您对本站的支持!<br/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#f0f0f0" style="padding: 30px 20px 30px 20px;">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td style="font-family: Arial, sans-serif; font-size: 14px;">
|
||||||
|
<font style="color: grey;">© 2022 - {{ date('Y') }}. {{ env('APP_NAME') }} All Rights Reserved.</font><br/>
|
||||||
|
<font style="color: grey;">本邮件为自动发出,请勿直接回复</font>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 30px 0 20px 0;"></td>
|
||||||
|
</tr>
|
||||||
|
</html>
|
86
resources/views/mail/link-custom-edit.blade.php
Normal file
86
resources/views/mail/link-custom-edit.blade.php
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||||
|
<title>Mail</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
|
</head>
|
||||||
|
<table align="center" border="0" cellpadding="0" cellspacing="0" width="600"
|
||||||
|
style="border-collapse: collapse;border: 1px solid #cccccc;box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175)">
|
||||||
|
<tr>
|
||||||
|
<td align="center" bgcolor="#70bbd9" style="padding: 30px 0 30px 0; font-size: 30px;"><b>{{ env('APP_NAME') }}</b></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding: 30px 30px 30px 30px;">
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 10px 0px 30px 0px;color: #08212b; font-family: Arial, sans-serif; font-size: 10px;">
|
||||||
|
时间: <b>{{ date('Y-m-d H:i:s') }}</b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 0px 10px 0px;color: #000000; font-family: Arial, sans-serif; font-size: 24px;">
|
||||||
|
Dear. <a style="text-decoration: none;color: #198754;" href="mailto:{{ $sendEmail['userEmail'] }}">{{ $sendEmail['userEmail'] }}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 5px 5px 0px;color: #000000; font-family: Arial, sans-serif; font-size: 16px;">
|
||||||
|
您好 <a style="text-decoration: none;color: #198754;" href="{{ $sendEmail['userUrl'] }}"><b> {{ $sendEmail['userBlog'] }}</b></a> 的站长:<b>
|
||||||
|
{{ $sendEmail['userEmail'] }}</b><br/>
|
||||||
|
您在本博客(<a style="text-decoration: none;color: #198754;" href="{{ env('APP_BLOG') }}">{{ env('APP_NAME') }}</a>)自主修改友链<br/>
|
||||||
|
邮件为通知您您已成功修改友链,修改立即生效,我们告知您已做出了修改,若您未执行修改请立刻联系站长
|
||||||
|
{{ $sqlAuthor }}({{ $sqlEmail }})
|
||||||
|
<hr/>
|
||||||
|
这是您现在的信息:<br/>
|
||||||
|
<ul>
|
||||||
|
<li>博主邮箱:{{ $blog->blogOwnEmail }}</li>
|
||||||
|
<li>贵站名字:{{ $blog->blogName }}</li>
|
||||||
|
<li>贵站地址:{{ $blog->blogUrl }}</li>
|
||||||
|
<li>图片地址:{{ $blog->blogIcon }}</li>
|
||||||
|
<li>贵站介绍:{{ $blog->blogDescription }}</li>
|
||||||
|
@if(!empty($blog->blogRemark))
|
||||||
|
<li>备注内容:{{ $blog->blogRemark }}</li>
|
||||||
|
@endif
|
||||||
|
@if($blog->blogRssJudge == 1)
|
||||||
|
<li>RSS地址:{{ $blog->blogRSS }}</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
这是您以前的修改信息:<br/>
|
||||||
|
<ul>
|
||||||
|
<li>博主邮箱:{{ $oldBlog->blogOwnEmail }}</li>
|
||||||
|
<li>贵站名字:{{ $oldBlog->blogName }}</li>
|
||||||
|
<li>贵站地址:{{ $oldBlog->blogUrl }}</li>
|
||||||
|
<li>图片地址:{{ $oldBlog->blogIcon }}</li>
|
||||||
|
<li>贵站介绍:{{ $oldBlog->blogDescription }}</li>
|
||||||
|
@if(!empty($oldBlog->blogRemark))
|
||||||
|
<li>备注内容:{{ $oldBlog->blogRemark }}</li>
|
||||||
|
@endif
|
||||||
|
@if($oldBlog->blogRssJudge == 1)
|
||||||
|
<li>RSS地址:{{ $oldBlog->blogRSS }}</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
此邮件为凭证,若发生意外修改请使用此邮件提交于站长!谢谢您对本站的支持!<br/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td bgcolor="#f0f0f0" style="padding: 30px 20px 30px 20px;">
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td style="font-family: Arial, sans-serif; font-size: 14px;">
|
||||||
|
<font style="color: grey;">© 2022 - {{ date('Y') }}. {{ env('APP_NAME') }} All Rights Reserved.</font><br/>
|
||||||
|
<font style="color: grey;">本邮件为自动发出,请勿直接回复</font>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 30px 0 20px 0;"></td>
|
||||||
|
</tr>
|
||||||
|
</html>
|
|
@ -44,6 +44,7 @@
|
||||||
});
|
});
|
||||||
Route::prefix('custom')->group(function () {
|
Route::prefix('custom')->group(function () {
|
||||||
Route::post('add', [Link::class, 'apiCustomAdd'])->name('api.link.custom.add');
|
Route::post('add', [Link::class, 'apiCustomAdd'])->name('api.link.custom.add');
|
||||||
|
Route::post('edit/{friendId}', [Link::class, 'apiCustomEdit'])->name('api.link.custom.edit');
|
||||||
Route::get('search', [Link::class, 'apiCustomSearch'])->name('api.link.custom.search');
|
Route::get('search', [Link::class, 'apiCustomSearch'])->name('api.link.custom.search');
|
||||||
Route::post('blogCheck',[Link::class,'apiCustomBlogCheck'])->name('api.link.custom.blogCheck');
|
Route::post('blogCheck',[Link::class,'apiCustomBlogCheck'])->name('api.link.custom.blogCheck');
|
||||||
Route::post('blogVerify',[Link::class,'apiCustomBlogVerify'])->name('api.link.custom.blogVerify');
|
Route::post('blogVerify',[Link::class,'apiCustomBlogVerify'])->name('api.link.custom.blogVerify');
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
Route::get('/', [Index::class,'ViewIndex'])->name('home');
|
Route::get('/', [Index::class,'ViewIndex'])->name('home');
|
||||||
Route::get('about', [Index::class, 'ViewAboutMe'])->name('about');
|
Route::get('about', [Index::class, 'ViewAboutMe'])->name('about');
|
||||||
|
Route::get('backup', [\App\Http\Controllers\DataBase::class, '__construct']);
|
||||||
|
|
||||||
Route::prefix('function')->group(function () {
|
Route::prefix('function')->group(function () {
|
||||||
Route::get('link',[UserLink::class, 'viewLink'])->name('function.link');
|
Route::get('link',[UserLink::class, 'viewLink'])->name('function.link');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user