diff --git a/app/admin/controller/Post.php b/app/admin/controller/Post.php index 26c0d3a..af7bc81 100644 --- a/app/admin/controller/Post.php +++ b/app/admin/controller/Post.php @@ -380,6 +380,8 @@ class Post extends Common View::assign('layoutContentHtml', $layoutContentHtml); View::assign('layoutConfig', $layoutConfig); View::assign('lastOutputId', $postOutput ? $postOutput->id : 0); + View::assign('siteName', \app\common\tools\Site::name() ?? ''); + View::assign('siteLogo', \app\common\tools\Site::logo() ?? ''); return View::fetch(); } diff --git a/public/static/js/phone-image.js b/public/static/js/phone-image.js index e017690..7f07701 100644 --- a/public/static/js/phone-image.js +++ b/public/static/js/phone-image.js @@ -112,6 +112,8 @@ var PhoneImageEngine = (function () { content_html: '', poster: '', author_name: '', + site_name: '', + site_logo: '', create_time: '', category_name: '' }; @@ -148,11 +150,14 @@ var PhoneImageEngine = (function () { postData.author_name = options.authorName || ''; postData.create_time = options.createTime || ''; postData.category_name = options.categoryName || ''; + postData.site_name = options.siteName || ''; + postData.site_logo = options.siteLogo || ''; if (userConfig) { $.extend(config, userConfig); } applyFontScale(); + preloadBrandLogo(); } /** @@ -196,6 +201,8 @@ var PhoneImageEngine = (function () { var sizeConfig = config.sizes[config.size] || config.sizes.xiaohongshu; var pageHeight = sizeConfig.height; var contentAreaHeight = pageHeight - (config.contentPadding * 2); + var brandHeaderOffset = (postData.site_name || postData.site_logo) ? BRAND_HEADER_HEIGHT : 0; + contentAreaHeight -= brandHeaderOffset; // 从预览区读取已预处理的内容 syncPreview(); @@ -827,6 +834,50 @@ var PhoneImageEngine = (function () { return true; } + // ===== 品牌头部 ===== + var BRAND_HEADER_HEIGHT = 36; + var brandLogoBase64 = null; + + function generateBrandHeader() { + if (!postData.site_name && !postData.site_logo) return ''; + + var html = '