'위젯'에 해당되는 글 1건

  1. 2010.12.23 최근게시물 위젯에 확장변수 표시하기

최근게시물 위젯에 확장변수 표시하기 프로그래밍/XE(XpressEngine) 2010. 12. 23. 23:03
제목:

최근게시물 위젯에 확장변수 표시하기

아래글은 http://www.xpressengine.com/tip/18655076 을 참고하여 일부 수정한 것입니다.

XE 현재 설치 버전
1.4.4.1

-----------------------------------------------------------------------------------------

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 &amp; 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.}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------



Posted by 뮤직라이프

,