확장변수를 위젯으로 뽑아줄 때, 각 확장변수도 선택자로 선택할 수 있을까요?
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
로컬에서 테스트 중이라 url은 없는데,
갑자기 궁금해서 질문 남깁니다.
아주 오래된 컨텐츠 확장 위젯을 쓰고 있습니다.
https://xe1.xpressengine.com/index.php?mid=download&package_id=21127741
확장 변수까지 표시해 줄 수 있어서 이 위젯을 사용하고 있는데,
예를 들어 확장변수에 date라는 항목을 만들고,
게시판에서 입력된 값을 받아서 메인에 위젯으로 뿌려줄때,
저 date 값도 선택자가 존재할까요?
css로 디자인을 입혀주고 싶은데, 저 값의 선택자를 못 찾겠네요 ㅠㅠ

마음의빈자리
Lv. 6
마음에는 꼭 빈자리를 남겨두어야 합니다.
댓글 7
이 자료가 확장변수 불러오는 구조가 좀 난해하더군요;;
(제가 만든 자료도 남이 보면 이럴 듯해요ㅋㅋ)
암튼,
* 위젯 설정에서
- '표시 항목 및 순서'에 '확장변수1'을 포함시키고
- '확장변수 1 이름'에 위에서 말씀하신 date라는 확장변수 eid를 입력했다고 가정해보겠습니다.
* 스킨에서 (예컨대, 기본 스킨의 normal.html),
- $widget_info->content_items를 반복문으로 돌리는 부분 내에서 (즉, $item이라는 문서 객체 변수가 활성화된 시점)
- {$item->extra_var}라고 찍어보면 해당 문서의 date 변수값이 찍혀나오는 것을 확인할 수 있습니다.
$item->extra_var라는 변수명에서 보듯 확장변수값을 출력하는 방식이 변수명(date)을 사용하지 않기 때문에, 스킨 안에서 date라는 변수명을 가지고 css에서 스타일을 주기 위해 직접적으로 변수를 식별한다는 게 사실상 불가능한 거죠.
방법이 있다면,
위의 가정처럼 위젯 설정에서 '확장변수1'에 date 변수를 매뉴얼하게 연결시켰으니,
스킨에서 $item->extra_var이 나오는 자리에 그냥 어거지로 css 선택자를 넣어줘야 할 겁니다.
가령,
<!--@else if($v=='extravar')-->
<td class="extravar_date">{$item->getExtraVar()}</td>
이런 식으로요.
그런데 이렇게 하면 이 위젯의 다른 사용처들에도 영향을 줄 수가 있을 테니 그다지 추천할 만한 방법은 아닐 것 같아요.
애초에 확장변수를 연결할 때 변수명과 변수값을 같이 담아서 위젯을 만들기라도 했으면 좋았을 텐데,
5개의 확장변수에 순번을 매기고 거기에 변수값만 전달하는 형태라 결코 쉬운 접근만은 아니게 된 것 같습니다.
답변 보고 파일을 살펴보니, 제가 원하던 것을 찾을 수 있었습니다.
저는 확장변수들이 인라인 형태로 한 줄로 쭉 붙는 것이 싫어서 질문을 드린 것이었는데,
블럭 형태로 바꿔주니 해결되었습니다.
넘넘 감사 드립니다. ( - - ) ( _ _ )
질문을 하니, 많은 것을 배우네요. ^^
아하, 질문의 의도가 다른 데 있었군요.
어쨌든 저도 이 참에 이 유명한 자료를 뜯어볼 수 있어서 좋은 기회였어요 :)
문제를 해결하기 위해 질문하는 것도 스킬이 있어야 하는 것 같습니다.
이제 뒤돌아 보니,
제가 질문을 작성해 둔게 참,.. ㅠㅠ 부끄럽네요.
파일을 열어서 분석할 생각을 못하고,
애꿎은 선택자만 찾는다고 ㅎㅎㅎ
답변을 위해,
일부러 파일까지 훑어 주시고~ ㅜㅜ
답변 보고 파일 열어서 확인하면서, 반성 많이 했습니다. ^^
감사합니다! 즐거운 한주되세요!
너무 마음 쓰지 않으셔도 됩니당~