본문으로 이동

틀:MainSectionGrid

Langrisser Wiki
Doil (토론 | 기여)님의 2026년 7월 14일 (화) 09:23 판 (Cargo 쿼리 연동으로 전환 (정적 16슬롯 방식 대체))
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

이 템플릿은 대문 섹션 안에 (선택적) 탭 UI와 Cargo 쿼리 결과를 아이콘 그리드로 렌더링하는 데 사용합니다. 쿼리 결과의 각 행은 cargo_template로 지정한 슬롯 템플릿에 필드명=값 파라미터로 전달되어 그리드 슬롯 하나를 만듭니다.

사용법

{{MainSectionGrid
|탭=<ul><li class="active" data-rarity="all">새로운!</li><li data-rarity="LLR">LLR</li></ul>  (선택, 생략 시 탭 없음)
|cargo_table=Heroes
|cargo_fields=T.name_cn=name_cn,T.icon=icon,T.rarity=rarity
|cargo_where=T.icon IS NOT NULL AND T.icon != ''
|cargo_group_by=T.name_cn
|cargo_order_by=T.name_cn
|cargo_limit=300
|cargo_template=HeroGridSlot
}}

중요(구현 메모): 내부적으로 tables={{{cargo_table}}}=T 형태로 항상 테이블 별칭 T를 붙인다(별칭 없이 단일 테이블을 그대로 쿼리하면 Cargo가 _pageID 백링크 컬럼 참조에서 SQL 오류를 내는 버그가 실측 확인됨 — group by를 쓰는 쿼리는 이 버그를 우회하지만, group by가 없는 쿼리(장비/기술)는 반드시 별칭이 있어야 한다. 별칭을 항상 붙이는 쪽으로 통일). 따라서 cargo_fields/cargo_where/cargo_group_by/ cargo_order_by 작성 시 반드시 T. 접두사를 쓰고, cargo_fields는 필드명=필드명 형태(자기 자신에 별칭)로 써야 한다 — 그래야 named args=yes 옵션에서 슬롯 템플릿에 원래 필드명 그대로(예: name_cn)가 전달된다. 그렇지 않으면(별칭 없이 쓰면) Cargo가 밑줄을 공백으로 바꾼 표시용 라벨(예: name cn)을 파라미터 키로 써버려서 슬롯 템플릿의 {{{name_cn}}} 같은 파라미터가 채워지지 않는다.

where/group by가 빈 문자열이면 Cargo는 에러 없이 해당 절을 그냥 생략한다(실측 확인됨).