묻고답하기
최근게시물에 확장변수 나타내기 적용했는데 않되네요 틀린곳좀 알려 주세요
2011.11.03 13:44
확장변수를 메인페이지에서 나타내고자 연구하다가
오뎅궁물님의 초보팁을 알게 되었습니다.
코어는 1.4.5.10
게시판에서 확장변수명을 order_name로 주고 기본으로 깔리는 content위젯으로
1~4단계를 실시했는데 아무표시도 나지 않는 것입니다.
코드생성을 해보면
<img class="zbxe_widget_output" widget="content2" skin="default" content_type="document" module_srls="910" list_type="normal" tab_type="none" markup_type="table" page_count="1" option_view="title,regdate,nickname,ordername" show_browser_title="Y" show_comment_count="Y" show_trackback_count="Y" show_category="Y" show_icon="Y" order_target="list_order" order_type="desc" thumbnail_type="crop" />
안에 출력이 되지 않습니다.
코어 변경으로 인해서 인지 아니면 다른 것 때문이진 도대체 파악할 수 가 없습니다.
고수님들의 도움 부탁드립니다. 벌써 몇일째 자료를 찾고 있으나 애만 먹고 있습니다.
혹 스킨의 normal.html을 잘못 수정해서 그런 것은 아닌지 '오뎅궁물'님이 올려 주신것이 중략이 되어 있어 이곳에 위치 시켰는데
잘 못 넣었냐요 ^--^
<option_view_arr">!--@foreach($widget_info->option_view_arr as $k => $v)-->
<!--@if($v=='title')-->
<show_browser_title=='Y'">!--@if($widget_info->show_browser_title=='Y' && $item->getBrowserTitle())-->
<a href="<contents_link)-->{$item->contents_link}{getSiteUrl($item->domain">!--@if($item->contents_link)-->{$item->contents_link}<!--@else-->{getSiteUrl($item->domain, '', 'mid', $item->get('mid'))}<!--@end-->" class="board"><strong>{$item->getBrowserTitle()}</strong></a>
<!--@end-->
<show_category=='Y'">!--@if($widget_info->show_category=='Y' && $item->get('category_srl') )-->
<a href="{getSiteUrl($item->domain,'','mid',$item->get('mid'),'category',$item->get('category_srl'))}"><strong class="category">{$item->getCategory()}</strong></a>
<!--@end-->
<a href="{$item->getLink()}" class="title">{$item->getTitle($widget_info->subject_cut_size)}</a>
<show_comment_count=='Y'">!--@if($widget_info->show_comment_count=='Y' && $item->getCommentCount())-->
<em class="replyNum" title="Replies"><a href="{$item->getLink()}#comment">{$item->getCommentCount()}</a></em>
<!--@end-->
<show_trackback_count=='Y'">!--@if($widget_info->show_trackback_count=='Y' && $item->getTrackbackCount())-->
<em class="trackbackNum" title="Trackbacks"><a href="{$item->getLink()}#trackback">{$item->getTrackbackCount()}</a></em>
<!--@end-->
<show_icon=='Y'">!--@if($widget_info->show_icon=='Y')-->
<span class="icon">{$item->printExtraImages()}</span>
<!--@end-->
<!-- 추가된 부분 시작 -->
<!--@else if($v=='ordername')-->
<
span
class
=
"author"
>{$item->getExtraEidValue("order_name")}</
span
>
<!-- 추가된 부분 끝 -->
<!--@else if($v=='nickname')-->
<a <getMemberSrl())-->href">!--@if($item->getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"<getAuthorSite())-->href="{$item->getAuthorSite'>!--@elseif($item->getAuthorSite())-->href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"<href">!--@else-->href="#" onclick="return false;" class="author member"<!--@end--> >{$item->getNickName()}</a>
아래는 오뎅궁물님의 팁 내용입니다. 그리고 혹시나 해서 코멘트 부분의 수정사항도 반영해 보았지만 같은 결과 였습니다.
--------- 오뎅궁물님의 내용--------------------
1 단계
/xe/widgets/content/ 에 content.class.php의 내용 중에 683번째 줄 부근에
class contentItem extends Object {
내용 안에
$oDocumentModel
= &getModel(
'document'
);
return
$oDocumentModel
->getExtraVars(
$this
->get(
'module_srl'
),
$this
->document_srl);
}
function
getExtraEidValue(
$eid
) {
$extra_vars
=
$this
->getExtraVars();
foreach
(
$extra_vars
as
$idx
=>
$key
) {
$extra_eid
[
$key
->eid] =
$key
;
}
return
$extra_eid
[
$eid
]->value;
}
위의 두 function()을 추가해 주시구요. - 위의 두 function()은
/xe/modules/document/document.item.php에서 복사해서 붙였습니다.
2단계
/xe/widgets/content/conf/ 에 있는 info.xml 파일의 내용중
<
var
id
=
"option_view"
>
<
type
>select-multi-order</
type
>
<
name
xml:lang
=
"ko"
>표시항목 및 순서</
name
>
<
name
xml:lang
=
"en"
>Display Target & Order</
name
>
<
name
xml:lang
=
"vi"
>Hi?n th? khu v?c va th? t?</
name
>
<
name
xml:lang
=
"zh-CN"
>?示?及?序</
name
>
<
name
xml:lang
=
"zh-TW"
>顯示項目順序</
name
>
<
name
xml:lang
=
"jp"
>表示項目、および順番</
name
>
<
options
default
=
"false"
init
=
"true"
>
<
value
>title</
value
>
<
name
xml:lang
=
"ko"
>제목</
name
>
<
name
xml:lang
=
"en"
>Title</
name
>
<
name
xml:lang
=
"vi"
>Tieu đ?</
name
>
<
name
xml:lang
=
"zh-CN"
>??</
name
>
<
name
xml:lang
=
"zh-TW"
>標題</
name
>
<
name
xml:lang
=
"jp"
>タイトル</
name
>
</
options
>
<
options
>
<
value
>thumbnail</
value
>
<
name
xml:lang
=
"ko"
>섬네일</
name
>
<
name
xml:lang
=
"en"
>Thumbnail</
name
>
<
name
xml:lang
=
"vi"
>Hinh nh?</
name
>
<
name
xml:lang
=
"zh-CN"
>?略?</
name
>
<
name
xml:lang
=
"zh-TW"
>縮圖</
name
>
<
name
xml:lang
=
"jp"
>サムネ?ル</
name
>
</
options
>
<
options
init
=
"true"
>
<
value
>regdate</
value
>
<
name
xml:lang
=
"ko"
>등록일</
name
>
<
name
xml:lang
=
"en"
>Regdate</
name
>
<
name
xml:lang
=
"vi"
>Ngay g?i</
name
>
<
name
xml:lang
=
"zh-CN"
>?布日期</
name
>
<
name
xml:lang
=
"zh-TW"
>發表日期</
name
>
<
name
xml:lang
=
"jp"
>登?日</
name
>
</
options
>
<
options
init
=
"true"
>
<
value
>username</
value
>
<
name
xml:lang
=
"ko"
>글쓴이</
name
>
<
name
xml:lang
=
"en"
>Author</
name
>
<
name
xml:lang
=
"vi"
>Ng??i g?i</
name
>
<
name
xml:lang
=
"zh-CN"
>?布者</
name
>
<
name
xml:lang
=
"zh-TW"
>作者</
name
>
<
name
xml:lang
=
"jp"
>登?者</
name
>
</
options
>
<
options
>
<
value
>content</
value
>
<
name
xml:lang
=
"ko"
>내용</
name
>
<
name
xml:lang
=
"en"
>Content</
name
>
<
name
xml:lang
=
"vi"
>N?i dung</
name
>
<
name
xml:lang
=
"zh-CN"
>?容</
name
>
<
name
xml:lang
=
"zh-TW"
>內容</
name
>
<
name
xml:lang
=
"jp"
>?容</
name
>
</
options
>
// 추가된 부분 시작
<
options
>
<
value
>ordername</
value
>
<
name
xml:lang
=
"ko"
>주문자</
name
>
<
name
xml:lang
=
"en"
>Order Name</
name
>
<
name
xml:lang
=
"vi"
>Order Name</
name
>
<
name
xml:lang
=
"zh-CN"
>Order Name</
name
>
<
name
xml:lang
=
"zh-TW"
>Order Name</
name
>
<
name
xml:lang
=
"jp"
>Order Name</
name
>
</
options
>
// 추가된 부분 끝
</
var
>
위가 같이
<options>
<value>ordername</value>
.....중략
</options>
를 추가해 주세요.
여기에서 ordername은 인식자이므로 변수명과 같지 않아도 됩니다.
3단계
/xe/widgets/content/skins/스킨명/normal.html
사용하시는 스킨의 normal.html 파일에
목록형과 테이블형 두개의 부분에 있는 곳에
.........중략
<!-- 추가된 부분 시작 -->
<
span
class
=
"author"
>{$item->getExtraEidValue("order_name")}</
span
>
<!-- 추가된 부분 끝 -->
.........
<!--@end-->
같은 파일내의 목록형과 테이블형 두 곳 모두 추가해 주세요.
4단계
최근게시물 위젯이 표시되는 페이지 모듈 수정에서
표시항목 및 순서
에서 좌측에 있는 인식자 ordername 을 오른쪽으로 보내시고 순서를 정하신 후 코드생성 버튼을 누르시면 완성입니다
- [2017/06/17] 묻고답하기 contentextended 사용자정의 출력 시, select type 은 array 이로 나옵니다.
- [2016/07/22] 묻고답하기 덧글단 회원에게만 확장변수 공개 질문 입니다. *2
- [2016/03/25] 묻고답하기 확장변수로 새로운 카테고리(분류)를 만들고 싶습니다
- [2016/02/24] 묻고답하기 글 쓸때 새창 ->구글맵 지도좌표선택->좌표를 확장변수에 입력 문의
- [2015/11/06] 묻고답하기 Board DX 본문 입력을 없애는 방법 알 수 있을까요?
위젯에 확장변수를 출력하는 것이 목적인가요?
그렇다면
xe - widgets - content - content.class.php 열고
클래스 속에
function getExtraVars()
{
$oDocumentModel = &getModel('document');
return $oDocumentModel->getExtraVars($this->get('module_srl'), $this->get('document_srl'));
}
function getExtraEidValue($eid)
{
$extra_vars = $this->getExtraVars();
foreach($extra_vars as $idx => $key)
{
$extra_eid[$key->eid] = $key;
}
return $extra_eid[$eid]->value;
}
이걸 추가
그리고 출력은 원하는 위치에서 {$item->getExtraEidValue("확장변수명")}