포럼
XE 개발 질문 받아요
2013.12.06 20:51
현역 XE 개발자(?)가 개발에 대한 질문에 답변 해드려요.
너무 어려운 질문은 무리고
댓글로 답변 가능할 정도로의 질문만 해주세요.
저도 모르는게 많은 XE이기 때문에 모르는 것도 있을 수 있고요.
XE 개발하시는 분들께 많이 도움 됐으면 좋겠습니다.
댓글 98
-
멀티비타민
2013.12.24 09:55
-
Lansi
2013.12.24 10:03
그럼 댓글 쪽에 Context::setRequestMethod('JSON') 으로 바꿔보세요.
-
멀티비타민
2013.12.24 10:09
댓글쪽이란게 뭔지 잘모르겠네요 .
-
Lansi
2013.12.24 10:37
Context::setResponseMethod('JSON'); -> Context::setRequestMethod('JSON'); -
멀티비타민
2013.12.24 10:46
바꾸면 에러 뜨네요
{"message_type":"","error":0,"message":"success"}
이게 그냥 댓글창에 뜹니다.
-
Lansi
2013.12.24 10:48
원래 코드로 바꾸세요.
충돌 나는 건 잘 모르겠네요...
-
새벽들녁
2013.12.23 21:09
XE 개발쪽과는 직접 관련된 질문이 아니라 죄송합니다. 묻고답하기에 올린지 한참 지났는데도 답을 구하지 못해 Lansi님께 문의드립니다.
게시판 모듈안에 만든 각각의 페이지(게시물)에 대해 사이트 메뉴 편집에서 바로가기 메뉴를 URL 링크로 만들면, 해당 메뉴의 Hover 상태는 구별되어 표시되지만 선택한 후에는 현재 선택된 메뉴라는 것을 식별해줘야 하는데 식별이 안되는 문제로 며칠 째 씨름하고 있습니다.
문서나 위젯 게시판에 대한 바로가기 메뉴는 선택하면 선택 메뉴임을 나타내 주는데, 게시판에 속한 페이지, 즉 document_slr 에 대한 URL 링크로 연결한 바로가기 메뉴 선택시에도 선택된 메뉴로 식별할 수 있는 방법이 있는지 궁금합니다. 레이아웃은 쿡래빗님의 레이아웃에서 스케치북 게시판을 사용하였습니다.
-
Lansi
2013.12.24 09:29
게시판 모듈안에 만든 각각의 페이지(게시물)에 대해 사이트 메뉴 편집에서 바로가기 메뉴를 URL 링크로 만들면이 무슨 말씀이신지 모르겠네요.
-
낮은자
2013.12.24 13:35
xe market에 상품마다의 조회수를 추가해 주었으면 합니다. 공식사이트에는 자료를 쉽게 올릴수 있도록 부탁드립니다
-
Lansi
2013.12.24 14:00
전 모듈 개발자이지, XE 개발자가 아닙니다.
-
새벽들녁
2013.12.24 14:50
아... 예 질문올리고도 걱정했는데 답글 달아주셔서 정말 고맙습니다. 문의드린 내용은 XE 관리자화면의 사이트 메뉴 편집에서 메뉴 추가시 바로가기를 선택하면 URL 링크와 메뉴 이름으로 추가할 수 있는데, 게시판의 특정 게시물은 메뉴 이름으로는 직접 클릭하여 선택할 수 없기 때문에 URL 링크로 설정한 경우를 말합니다. 해당 바로가기 메뉴가 다른 메뉴처럼 정상적으로 표시되지만 이를 클릭했을 때 해당 특정 게시물 페이지는 나오지만 메뉴 표시는 원상태로 돌아가서 식별되지 않는 문제의 해결 방법을 문의드린 것입니다. 참고로 제가 묻고답하기 질문 올린 내용은 http://www.xpressengine.com/qna/22519817 입니다. 감사합니다.
-
Lansi
2013.12.24 20:26
바로가기는 그게 안 되나 보군요...
cond="$val->selected" 로 되있다면 $val->selected || ($val->메뉴 링크 == 현재 링크) 처럼 고치면 되겠네요.
소스가 없어서 자세히는 답변 드릴수가 없습니다.
-
새벽들녁
2013.12.24 22:37
아... 드디어 길을 찾은듯 합니다. 사용중인 쿡래빗님의 레이아웃의 서브 메뉴 소스코드 부분은 다음과 같은데요. 제가 아직 XE 문법 학습이 잘안되어 있어서 메뉴링크와 현재 링크를 어떻게 코딩해야 하는지 아직 헷갈리긴 하지만 저도 해보고 성공하면 수정 코드 남기겠습니다.
<ul loop="$main_menu->list=>$key1,$val1" cond="$val1['selected'] && $val1['list']"> <li loop="$val1['list']=>$key2,$val2" class="active"|cond="$val2['selected']"> <span class="view2" cond="$val2['list'] && $layout_info->sub_menu_type != 'normal'"></span><!-- 서브메뉴 타입 (아코디언,마우스오버)--> <a href="{$val2['href']}" target="_blank"|cond="$val2['open_window']=='Y'">{$val2['link']}</a> <ul cond="$val2['list']"> <li loop="$val2['list']=>$key3,$val3" class="active_2"|cond="$val3['selected']"> <span class="view" cond="$val2['list']"></span><!-- 3차 메뉴 있을시 표식--> <a href="{$val3['href']}" target="_blank"|cond="$val3['open_window']=='Y'"> {$val3['link']}</a> </li> </ul> </li> </ul>
-
새벽들녁
2013.12.25 00:19
음.... class="active"|cond="$val2['selected']||$val2['link']==$val2['selected']로 주면 모든 서브 메뉴가 선택 상태로 표시되고, class="active"|cond="$val2['selected']||$val2['link']==$val2['href'] 로 주면 전과 동일하게 Hover 상태를 벗어나면 선택 안된 메뉴와 동일하게 표시되는군요. ㅠ.ㅠ Lansi님께서 표현한 현재 링크는 클릭된 바로 가기 메뉴를 의미하는 것 같은데 어떻게 지정해야 될런지요. -
Lansi
2013.12.26 10:31
class="active_2"|cond="$val3['selected']" 를
class="active_2"|cond="$val3['selected'] || ($val3['href'] == $current_url)" 로 하면 되겠네요.
테스트는 안 해봤습니다.
-
새벽들녁
2013.12.26 20:08
답변 고맙습니다.... 그런데 여전히 클릭 후에 메뉴는 선택 상태를 유지하지 못하고 선택 전 상태로 되돌아와 버리네요. 아무래도 selected를 처리하는 코어 구문을 수정해야 하지 않을까 생각되네요. 꼭 해결해야 하는데 안타깝습니다... ㅠ.ㅠ
-
Lansi
2013.12.26 22:12
그건 스크립트를 수정해야 할 거 같습니다.
-
새벽들녁
2013.12.27 09:51
스크립트라하면 레이아웃에서 사용하는 스크립트를 말씀하시는 건가요? 제가 살펴본바로는 모든 레이아웃에서 동일한 문제가 발생하더군요. 그래서 selected를 처리하는 함수나 스크립트에서 코드를 수정해야 하지 않을까 생각해 본겁니다. Lansi님 selected를 처리하는 함수나 스크립트 소스를 보려면 어느 파일을 확인해야 하는지 알 수 있을까요?
-
쿡래빗
2014.01.02 17:42
module_info 와 module_cofig의 차이점은 무엇인가요?
-
푸시아
2014.01.02 17:51
궁금한게 많으신 쿡래빗님 ㅎㅎ
-
Lansi
2014.01.03 20:33
Context::set() 할 때 변수명만 다른게 한겁니다
그냥 취향차이
저는 module_info를 추천 -
라돌체
2014.01.07 13:56
첨부된 이미지 본문에 불러오기 질문드립니다.방법은 많이 알아봤는데.. 안되네요 ㅠㅠ<img src="첨부 이미지1의 주소"><img src="첨부 이미지2의 주소">이런식으로 뽑아올 수 있을까요..? -
Lansi
2014.01.07 17:43
$oFileModel = &getModel('file');
$files = $oFileModel->getFiles(타겟 srl);
루프 돌려서 sid 값으로 불러오면 될 거 같습니다.
-
라돌체
2014.01.07 18:34
제가 초보지식이라.. 잘 이해를 못했습니다..
첫번째 파일, 두번째 파일
이런식으로 따로 따로 가져오려고 하는데 가능할까요..? -
Lansi
2014.01.07 21:56
foreach로 새 배열에 차곡차곡 정렬해서
불러오면 되겠네요
$files = array();
foreach($files_output->data as $val)
$files[] = $val
$files[0] // 첫번째 파일
$files[1] // 두번째 파일
-
라돌체
2014.01.08 13:49
XE 문법을 전혀 이해 못하고 있는 상태입니다 ㅠㅠ
view_document.html 파일에 이런식으로 입력하면 되나요?
<!--@foreach($files_output->data as $val)-->
{$files[] = $val}
{$files[0]}
<!--@end-->
-
Lansi
2014.01.08 22:52
<!--@foreach($files_output->data as $val)-->{$files[] = $val}<!--@end-->{$files[0]->sid}foreach 안에 $files[0]를 넣으면 안되죠.그리고 출력을 원하지 않을 때는 {@ 연산 } 이렇게 @을 붙입니다.무슨 값이 들어있는지 확인하시고 싶으시면{@print_r($files[0])}을 사용하세요. -
애니즌
2014.01.09 10:03
아직도 받으시나요..?
다름이 아니라
애드온에서요
$document->add('title', '변경할제목');
이런식으로 기존 게시판 글 제목을 바꾸고 있는데요
문제는 태그가 안됩니다..ㅡ.ㅜ 즉 '<span>어쩌구</span>' 이런식으로 제목을 감싸줘야 하는데...
직접 저렇게 입력을 하면
$document->add('title', '<span>어쩌구</span>');
결과물은
<span>어쩌구</span>
이렇게 나오게 되더라구요...
방법이 없을까요..?
-
Lansi
2014.01.09 12:47
따로 document 모듈에서 제목 태그를 변환하는 코드는 없네요.
게시글 변경을 updateDocument로 하셨나요?
-
애니즌
2014.01.09 13:04
음... 일단 실제 글(db)을 바꾸거나 하는 것은 아니구요..
출력해서 보여줄 때만
바꾸는 건데용...
일단 애드온 파일이
if($called_position != 'after_module_proc' || Context::get('module') == 'admin') return;
if($this->act != "dispBoardContent" && $this->act != "procBoardInsertDocument" && $this->act != "dispBoardDelete") return;
$document_list = Context::get('document_list');// 리스트에서만 작동
if($document_list) {
foreach($document_list as $key=>$document){$eid_caution = $document->getExtraEidValue('caution');
if($eid_caution == 'YES'){
//기존 글제목을 가져와서 span 태그로 감싸주기
$text = '<span class="cloud">'.$document->get('title').'</span> ';
// 실제 타이틀을 변경하는 시점$document->add('title', $text);
}
}
}이런식으로 되어 있습니다.
-
Lansi
2014.01.09 23:24
이런 건 제이쿼리로 하시는 게 더 빠릅니다.
-
애니즌
2014.01.10 13:10
네 제이쿼리로는 이미 구현했는데..
혹시 애드온 문법으로 가능한가 해서요 ㅎㅎ
-
Lansi
2014.01.12 01:18
답변이 늦어서 죄송합니다.
태그가 깨져나오는게 문제인가요? 정확히 설명해주시면 감사하겠습니다.
-
애니즌
2014.01.12 19:57
네 <span>~ 이런식으로 변경하도록 해도
결과물은 <span> 이런식으로 언태그 되더라구요..
-
Lansi
2014.01.12 21:20
그러니까 span 이렇게 되야 하는데
<span style="color: red">span</span> 이렇게 나온다는거죠?
스킨은 살펴보셨나요?
getTitle()을 사용하면 htmlspecialchars()을 사용합니다.
getTitleText()로 제목을 불러오면 제대로 나올겁니다.
-
애니즌
2014.01.12 23:38
아 ~ 게시판 스킨에서 그렇기 때문에 그런 것이였군요..?! ㄷㄷ
이해했습니다.
전 애드온으로 add.title 로 바꾸면 후처리되는 방식인줄 알았는데..
어쩄든 게시판 스킨에서 타이틀을 뿌리기전에 적용되는 것 이였군요...
감사합니다 덕분에 속시원히 해결됐습니다.
-
Lansi
2014.01.13 22:41
잘 해결되어서 다행입니다~
-
애니즌
2014.01.19 02:14
ㅎㅎ +_+ 숙원을 풀었습니당~
-
글쎄나는
2014.01.10 15:37
게시판의 이미지파일 원본을 위젯으로 뽑아오는 건 불가능할까요. 그것만 되면 좋겠습니다. ㅠ
-
Lansi
2014.01.12 00:12
위젯은 getThumbnail()을 사용해서 썸네일을 가져옵니다.
첨부파일을 따로 불러와서 해야겠죠.
-
Stellar
2014.01.11 20:38
트리거는 무엇이고, 어떻게 쓰는건지 궁금합니다
-
Lansi
2014.01.12 00:11
댓글 보시면 먼저 질문하신 분이 있습니다.
-
쿡래빗
2014.01.17 23:48
룰셋에서 기본내장된 규칙은 어떤게 있나요??
현재 number 하고 url 규칙만 알고있는데요
메뉴얼에도 없고 알아볼길이 없네요..
규칙명하고 간략한 설명해주시면 감사합니다..
-
Lansi
2014.01.18 00:06
/classes/validator/Validator.class.php 에 정의되있네요.
email, userid, url, alpha, alpha_number, number
이렇게 되있습니다.
자세한 건 여기를 참조하세요. https://code.google.com/p/xe-core/wiki/ValidateFormInput
-
쿡래빗
2014.01.18 00:07
와웅 이런곳에 있었군요 감사합니다.. 위키에 다 있다니,..
-
Lansi
2014.01.18 00:12
XE 개발자 메뉴얼의 마지막 희망...
-
DynamicLaser
2014.01.19 02:14
이런걸 질문드려도 되나 모르겠는데 ^^; XE의 코멘트 구조가 어떻게 이루어져있는지 좀 알수있을까요?
대댓글 구현하자마자 서버에 무리가 장난아니라서요 ㄷㄷㄷ 야매로 작업한것도 있구요. 그래서 XE의 소스를 참고하면서 개발해보고 싶은데 제 능력이 부족해서 그런지 DB쿼리라도 보고싶은데 볼수가 없네요.
-
Lansi
2014.01.19 15:22
대댓글은 이미 구현된 상태아닌가요?
댓글에는 재귀함수가 들어간 거 빼곤 딱히 부하가 걸릴 게 없네요.
댓글수가 몇천개 되지 않는 이상...
캐시 사용을 추천합니다.
왜 저는 오히려 if(Context::getResponseMethod() != 'HTML')이게 붙어있는데 댓글을 작성하면
아이콘이 안나올까요??
저 부분을 삭제하면 나옵니다.. -,-;;?