This commit is contained in:
toom1996
2025-07-29 11:28:34 +08:00
parent 994b7366cd
commit a8d4390ff3
5 changed files with 176 additions and 371 deletions

View File

@ -7,6 +7,7 @@ use App\Enums\ArticlePublishedStatusEnum;
use App\FormModel\admin\articles\ModifyModel;
use App\FormModel\admin\news\NewsFormModel;
use App\Helpers\AppHelper;
use App\Helpers\ArticleHelper;
use App\Model\AppArticle;
use App\Model\AppBrand;
use App\Model\AppNews;
@ -105,19 +106,24 @@ class NewsController extends AbstractController
$platform = $this->request->post('platform', 0);
$column = $this->request->post('column', 0);
$column2 = $this->request->post('column2', 0);
// 随机图片
$directory = env('COVER_ROOT'); // 文件夹路径
$images = glob($directory . '/*.{jpg,jpeg,png,gif,bmp}', GLOB_BRACE); // 获取图片文件
$cover = $this->request->post('cover', '');
$imagesArr = [];
if (count($images) > 0) {
foreach ($images as $image) {
$imagesArr[] = basename($image);
}
}
// 自动选封面
if (!$cover) {
// 随机图片
$directory = env('COVER_ROOT'); // 文件夹路径
$images = glob($directory . '/*.{jpg,jpeg,png,gif,bmp}', GLOB_BRACE); // 获取图片文件
if (!$imagesArr) {
return $this->response->json(['code' => 400, 'msg' => 'not content.']);
if (count($images) > 0) {
foreach ($images as $image) {
$imagesArr[] = basename($image);
}
}
if (!$imagesArr) {
return $this->response->json(['code' => 400, 'msg' => 'not content.']);
}
}
if (!$content) {
@ -126,19 +132,24 @@ class NewsController extends AbstractController
$content = json_decode($content, true);
foreach ($content as $item) {
$randIndex = mt_rand(1,count($imagesArr));
$cover = $imagesArr[$randIndex];
if ($imagesArr) {
$randIndex = mt_rand(1,count($imagesArr));
$cover = env('APP_DOMAIN') . '/uploads/cover/' . $imagesArr[$randIndex];
}
$model = new AppNews();
$model->title = is_array($item['title']) ? current($item['title']) : $item['title'];
$model->description = $item['desc'];
$model->keywords = $item['keywords'];
$model->platform = $platform;
$model->cover = env('APP_DOMAIN') . '/uploads/cover/' . $cover;
$model->cover = $cover;
$model->content = strtr($item['content'], [
'<imageSlot>' => <<<EOF
<p style="text-align:center"><img style="aspect-ratio: 4 / 3;max-width: 56%;" class="ue-image" src="$model->cover"></p>
EOF
]);
$model->content = ArticleHelper::saveImagesFromArticle($model->content, srcPrefix: env('APP_DOMAIN') . '/uploads/');
$model->column_tag = $column;
$model->second_column = $column2;
$model->save();