최근게시물 위젯에 확장변수 표시하기
ore 1.3.1.2에서 작업 하였습니다.
게시물 확장변수명이 order_name 이고 XE설치 폴더를 xe라고 했을 경우
<-확장변수명은 추가하려는 이름에 따라 변경할수 있다
1 단계
/xe/widgets/content/ 에 content.class.php의 내용 중에 683번째 줄 부근에
class contentItem extends Object {
내용 안에
01.
function
getExtraVars() {
02.
$oDocumentModel
= &getModel(
'document'
);
03.
return
$oDocumentModel
->getExtraVars(
$this
->get(
'module_srl'
),
$this
->document_srl);
04.
}
05.
function
getExtraEidValue(
$eid
) {
06.
$extra_vars
=
$this
->getExtraVars();
07.
foreach
(
$extra_vars
as
$idx
=>
$key
) {
08.
$extra_eid
[
$key
->eid] =
$key
;
09.
}
10.
return
$extra_eid
[
$eid
]->value;
11.
}
위의 두 function()을 추가해 주시구요. - 위의 두 function()은
/xe/modules/document/document.item.php에서 복사해서 붙였습니다.
2단계
/xe/widgets/content/conf/ 에 있는 info.xml 파일의 내용중
01.
<
var
id
=
"option_view"
>
02.
<
type
>select-multi-order</
type
>
03.
<
name
xml:lang
=
"ko"
>표시항목 및 순서</
name
>
04.
<
name
xml:lang
=
"en"
>Display Target & Order</
name
>
05.
<
name
xml:lang
=
"vi"
>Hi?n th? khu v?c va th? t?</
name
>
06.
<
name
xml:lang
=
"zh-CN"
>?示?及?序</
name
>
07.
<
name
xml:lang
=
"zh-TW"
>顯示項目順序</
name
>
08.
<
name
xml:lang
=
"jp"
>表示項目、および順番</
name
>
09.
<
options
default
=
"false"
init
=
"true"
>
10.
<
value
>title</
value
>
11.
<
name
xml:lang
=
"ko"
>제목</
name
>
12.
<
name
xml:lang
=
"en"
>Title</
name
>
13.
<
name
xml:lang
=
"vi"
>Tieu đ?</
name
>
14.
<
name
xml:lang
=
"zh-CN"
>??</
name
>
15.
<
name
xml:lang
=
"zh-TW"
>標題</
name
>
16.
<
name
xml:lang
=
"jp"
>タイトル</
name
>
17.
</
options
>
18.
<
options
>
19.
<
value
>thumbnail</
value
>
20.
<
name
xml:lang
=
"ko"
>섬네일</
name
>
21.
<
name
xml:lang
=
"en"
>Thumbnail</
name
>
22.
<
name
xml:lang
=
"vi"
>Hinh nh?</
name
>
23.
<
name
xml:lang
=
"zh-CN"
>?略?</
name
>
24.
<
name
xml:lang
=
"zh-TW"
>縮圖</
name
>
25.
<
name
xml:lang
=
"jp"
>サムネ?ル</
name
>
26.
</
options
>
27.
<
options
init
=
"true"
>
28.
<
value
>regdate</
value
>
29.
<
name
xml:lang
=
"ko"
>등록일</
name
>
30.
<
name
xml:lang
=
"en"
>Regdate</
name
>
31.
<
name
xml:lang
=
"vi"
>Ngay g?i</
name
>
32.
<
name
xml:lang
=
"zh-CN"
>?布日期</
name
>
33.
<
name
xml:lang
=
"zh-TW"
>發表日期</
name
>
34.
<
name
xml:lang
=
"jp"
>登?日</
name
>
35.
</
options
>
36.
<
options
init
=
"true"
>
37.
<
value
>username</
value
>
38.
<
name
xml:lang
=
"ko"
>글쓴이</
name
>
39.
<
name
xml:lang
=
"en"
>Author</
name
>
40.
<
name
xml:lang
=
"vi"
>Ng??i g?i</
name
>
41.
<
name
xml:lang
=
"zh-CN"
>?布者</
name
>
42.
<
name
xml:lang
=
"zh-TW"
>作者</
name
>
43.
<
name
xml:lang
=
"jp"
>登?者</
name
>
44.
</
options
>
45.
<
options
>
46.
<
value
>content</
value
>
47.
<
name
xml:lang
=
"ko"
>내용</
name
>
48.
<
name
xml:lang
=
"en"
>Content</
name
>
49.
<
name
xml:lang
=
"vi"
>N?i dung</
name
>
50.
<
name
xml:lang
=
"zh-CN"
>?容</
name
>
51.
<
name
xml:lang
=
"zh-TW"
>內容</
name
>
52.
<
name
xml:lang
=
"jp"
>?容</
name
>
53.
</
options
>
54.
// 추가된 부분 시작
55.
<
options
>
56.
<
value
>ordername</
value
>
57.
<
name
xml:lang
=
"ko"
>주문자</
name
>
58.
<
name
xml:lang
=
"en"
>Order Name</
name
>
59.
<
name
xml:lang
=
"vi"
>Order Name</
name
>
60.
<
name
xml:lang
=
"zh-CN"
>Order Name</
name
>
61.
<
name
xml:lang
=
"zh-TW"
>Order Name</
name
>
62.
<
name
xml:lang
=
"jp"
>Order Name</
name
>
63.
</
options
>
64.
// 추가된 부분 끝
65.
</
var
>
위가 같이
<options>
<value>ordername</value>
.....중략
</options>
를 추가해 주세요.
여기에서 ordername은 인식자이므로 변수명과 같지 않아도 됩니다.
3단계
/xe/widgets/content/skins/스킨명/normal.html
사용하시는 스킨의 normal.html 파일에
목록형과 테이블형 두개의 부분에 있는 곳에
01.
<!--@foreach($widget_info->option_view_arr as $k => $v)-->
02.
<!--@if($v=='title')-->
03.
.........중략
04.
<!-- 추가된 부분 시작 -->
05.
<!--@else if($v=='ordername')-->
06.
<
span
class
=
"author"
>{$item->getExtraEidValue("order_name")}</
span
>
07.
<!-- 추가된 부분 끝 -->
08.
.........
09.
<!--@end-->
같은 파일내의 목록형과 테이블형 두 곳 모두 추가해 주세요.
4단계
최근게시물 위젯이 표시되는 페이지 모듈 수정에서
표시항목 및 순서
에서 좌측에 있는 인식자 ordername 을 오른쪽으로 보내시고 순서를 정하신 후 코드생성 버튼을 누르시면 완성입니다.
위와 같은 방식으로 제대로 나타나지 않는다면
1단계 부분에서 아래와 같이 수정해보면 된다.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
좋은 팁 감사합니다.
저는 처음에 안돼서 1단계 getExtraVars( ) 코드를 아래와 같이 수정하니까 되네요.
1.
function
getExtraVars() {
2.
$oDocumentModel
= &getModel(
'document'
);
3.
return
$oDocumentModel
->getExtraVars(
$this
->get(
'module_srl'
),
$this
->get(
'document_srl'
));
4.
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------