공개 이슈 https://github.com/gnuboard/g7/issues/22 — 본문에 삽입한 이미지가 카드/갤러리 목록 썸네일과 공유 미리보기(og:image)에 반영되지 않던 공백을 코어+3모듈+2템플릿에서 해소. - 코어 7.0.9: HtmlImageExtractor(내부 이미지 한정, origin 정규화 SSoT 재사용) + seo.og_image_default 사이트 기본 공유 이미지 설정 + SeoMetaResolver 폴백 체인 - board 1.1.0 / ecommerce 1.2.0 / page 1.1.0: content_thumbnail_url 캐시 컬럼, saving 추출(html 모드 한정·첨부 우선·비밀글 게이트 유지), filter_content_thumbnail 훅, 기존 데이터 백필 업그레이드 스텝 - ecommerce 카테고리 og:image 생산자 신설, page og:description 死키 정정 - sirsoft-basic 1.1.2 og 바인딩 정정, admin_basic 1.0.7 SEO 탭 업로더(+ja 팩 2종) - 검수 중 발견한 text 모드 오캐시 결함은 실패 테스트 선행 후 수정
54 lines
3.0 KiB
YAML
54 lines
3.0 KiB
YAML
feature: 상품 설명 첫 이미지 목록/공유 썸네일 폴백
|
|
|
|
description: |
|
|
공개 이슈 #22 동종 — 상품 이미지 없이 상세설명(에디터)에만 이미지를 넣은 상품이
|
|
목록·검색·og:image 6개 표면에서 이미지 없이 나가던 문제. 저장 시 설명(다국어 JSON)
|
|
의 첫 내부 이미지 URL 을 ecommerce_products.content_thumbnail_url 에 캐시하고,
|
|
Product::getThumbnailUrl() 이 상품 이미지 부재 시 이를 폴백으로 사용한다.
|
|
내부 URL 판정은 TrustedScriptHosts::normalizeForOriginCheck 공유 정규화를 따른다.
|
|
|
|
axes:
|
|
image_source: [product_image_only, content_internal_only, both, content_external_only, none]
|
|
locale_content: [default_locale, other_locale_only]
|
|
|
|
exclusions:
|
|
- { image_source: product_image_only, locale_content: other_locale_only, reason: "로케일 축은 설명 내용에만 작용 — 상품 이미지 우선순위와 직교라 default_locale 대표 조합으로 검증" }
|
|
- { image_source: both, locale_content: other_locale_only, reason: "동일 — 로케일 축은 추출 입력에만 작용, 우선순위 판정과 직교" }
|
|
- { image_source: content_external_only, locale_content: other_locale_only, reason: "동일 — 외부 제외 판정은 로케일 무관 (전 로케일 순회 후 null)" }
|
|
- { image_source: none, locale_content: other_locale_only, reason: "이미지 없음은 로케일 구분이 성립하지 않는다 (전 로케일 빈 결과)" }
|
|
|
|
sub_flows:
|
|
- id: backfill
|
|
description: 1.2.0 업그레이드 스텝이 기존 상품을 chunkById 백필 (다국어 JSON 파싱 동결 사본)
|
|
effects:
|
|
- backfill_fills_legacy_products
|
|
- backfill_idempotent_second_run
|
|
- text_mode_description_never_caches
|
|
- id: recompute
|
|
description: description/description_mode 변경 시에만 saving 이벤트가 재계산
|
|
effects:
|
|
- recompute_on_description_change
|
|
- no_recompute_on_unrelated_update
|
|
- filter_hook_can_override_or_block
|
|
- id: category_og_producer
|
|
description: 死표현식이던 category.data.thumbnail_url 의 생산자 신설 (P3-B — 로드된 images 첫 건)
|
|
effects:
|
|
- category_detail_emits_thumbnail_url
|
|
- category_og_image_emitted_from_thumbnail_url
|
|
- category_og_image_omitted_without_thumbnail
|
|
|
|
effects:
|
|
- product_image_takes_precedence
|
|
- content_image_fills_product_thumbnail
|
|
- other_locale_image_used_when_default_has_none
|
|
- external_only_description_yields_null
|
|
- hidden_product_stays_hidden
|
|
- detail_og_and_search_share_same_fallback
|
|
|
|
test_files:
|
|
- modules/_bundled/sirsoft-ecommerce/tests/Unit/Models/ProductContentThumbnailTest.php
|
|
- modules/_bundled/sirsoft-ecommerce/tests/Feature/ProductListContentThumbnailTest.php
|
|
- modules/_bundled/sirsoft-ecommerce/tests/Feature/Upgrade/ProductContentThumbnailBackfillTest.php
|
|
- modules/_bundled/sirsoft-ecommerce/tests/Feature/PublicCategoryThumbnailTest.php
|
|
- modules/_bundled/sirsoft-ecommerce/tests/Unit/EcommerceModuleSeoTest.php
|