웹마스터 팁
특정 확장변수값이 포함된 글의 총 개수를 출력하는 함수
2012.08.07 12:14
XE 1.5.3.2 에 배포되는 내용으로 알고 있는데..
혹여나 업데이트 안 하고 필요하신 분이 있을까봐서 적어둡니다
기존소스가 조금 틀려서 120908 에 살짝 고쳐서 다시 기재해둡니다
또한 다국어 기반일때 좀 애매하게 꼬이는데...
(즉, 특정 다국어에는 기재되어있고, 특정 다국어에는 안 되어있는 경우, 타다국어 중 하나에라도 있으면 계산이 되었었는데
현재 보고있는 다국어 기준으로 수가 카운트되도록 소스를 바꿨습니다. XE 이슈 쪽에 등록한건 이 부분은 제외되어있습니다)
-----------------------------------
글 수를 카운트 하는 함수는 별도로 document 모듈 안에 있는 것으로 알고 있습니다
document.model.php 에서 getDocumentCount 함수죠
여기에 기본적인 search 값을 넣어서도 가능하기에 일반적으로는 쓸 수 있는데
특정 확장변수 값이 포함된 글의 개수를 뽑을 방법이 없습니다
그렇다고 확장변수를 통한 글목록 추출로는 default 가 게시판 노출갯수로 제한이
되어있기에, 정확한 수를 뽑을 수가 없죠
따라서, 특정확장변수가 포함된 글의 개수를 알아내는 함수가 있었으면 합니다
위치는 modules/document/document.model.php 에 그래도 추가하면 되고
function getDocumentExtraVarsCount($module_srl, $search_obj = NULL) {
// Additional search options
$args->module_srl = $module_srl;
$args->category_srl = $search_obj->category_srl;
$args->var_idx = $search_obj->s_var_idx;
$args->var_eid = $search_obj->s_var_eid;
$args->var_value = $search_obj->s_var_value;
$args->var_lang_code = Context::getLangType(); // 현재 보고있는 언어에서만 뽑히게
$output = executeQuery('document.getDocumentExtraVarsCount', $args);
// Return total number of
$total_count = count($output->data);
return (int)$total_count;
}
modules/document/queries/getDocumentExtraVarsCount.xml 형태로 쿼리 추가
<query id="getDocumentExtraVarsCount" action="select">
<tables>
<table name="documents" />
<table name="document_extra_vars" alias="extra_vars" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="in" column="documents.module_srl" var="module_srl" filter="number" />
<condition operation="in" column="documents.category_srl" var="category_srl" filter="number" pipe="and" />
<condition operation="equal" column="extra_vars.module_srl" default="documents.module_srl" pipe="and" />
<condition operation="equal" column="extra_vars.document_srl" default="documents.document_srl" pipe="and" />
<condition operation="equal" column="extra_vars.var_idx" var="var_idx" pipe="and" />
<condition operation="equal" column="extra_vars.eid" var="var_eid" pipe="and" />
<condition operation="in" column="documents.status" var="statusList" pipe="and" />
<condition operation="like" column="extra_vars.value" var="var_value" notnull="notnull" pipe="and" />
<condition operation="equal" column="extra_vars.lang_code" var="var_lang_code" pipe="and" />
</conditions>
<groups>
<group column="extra_vars.document_srl" />
</groups>
</query>
실제 이 함수의 사용 예는
{@
$oDocumentModel = &getModel('document');
// $search_extra->s_var_idx = '1'; // idx 로 하거나 eid 로 하거나 원하는걸로 하면 됨
$search_extra->s_var_eid = 'letter';
$search_extra->s_var_value = 'a';
$search_extra->category_srl = $category; // 카테고리 감안해서 검색하도록 추가 (131017)
$module_srl = $module_info->module_srl;
$extra_total = $oDocumentModel->getDocumentExtraVarsCount($module_srl,$search_extra);
}
{$extra_total}
ps. 현재 value 를 like 로 추출하는데 (checkbox 의 경우나 text,textarea 형태등을 감안해)
그런데, selectbox 나 radio 형식으로 쓰고, 해당한 값을 정확히 일치하는 경우만 뽑고프면
쿼리를 <condition operation="equal" column="extra_vars.value" var="var_value" notnull="notnull" pipe="and" /> 로 하시면 될겁니다
댓글 3
-
Haltze
2012.08.08 00:17
-
Haltze
2012.08.08 00:18
생각해보니 이 함수만으로는 한 경기에서 다득점한 갯수까지는 포함이 안되겠네요^^;;
한번 응용해서 해봐야겠습니다! -
하지니
2013.10.17 19:09
$total_count = count($output->data);
이렇게 하면 결과 값이 1 나옵니다
$total_count = $output->data->count;
원래 있던 소스대로 하면 잘 나옵니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
확장변수로 북마크 게시판 만들기 [2] | 레디오빠 | 2010.01.31 |
[초보팁] 최근게시물 위젯에 확장변수 표시하기 [23] | 오뎅궁물 | 2010.01.29 |
게시글 확장변수 순으로 정렬하기 (2010.01.18 13:18 수정) [24] | June Oh | 2010.01.11 |
특정 확장변수를 글 추천자에게만 보이게 하기 [10] | 뮤랑이 | 2010.01.11 |
확장변수값 계산하여 게시판 리스트에 출력하기(총계 게시판)
[1]
![]() | klaist | 2009.11.30 |
게시판 리스트에서 확장변수를 카테고리처럼 보여주기
[11]
![]() | 고진감래 | 2009.11.05 |
게시판 글작성 선택적 메일보내기 - 확장변수 이용
[2]
![]() | noirzo | 2009.10.28 |
모든 원하는 확장변수를 선택해서 최근게시물 위젯에 나타내기 간단팁 [12] | jsuimage | 2009.10.17 |
[확장변수] 게시물을 새창에서 전체화면으로 보기
[2]
![]() | 고진감래 | 2009.10.09 |
확장변수 한줄입력칸 폭 조정하기 [2] | 아고라 | 2009.09.30 |
방명록 게시판에서 확장변수 검사 안되는 문제 임시 방안 | June Oh | 2009.09.28 |
확장변수 이용 답변완료 이미지 띄우기 간단 팁
[7]
![]() | jsuimage | 2009.09.25 |
게시판 확장변수 일괄 등록 하기
[2]
![]() | 2년후 | 2009.09.20 |
확장변수를 위젯에서 출력하기 [5] | bibi | 2009.07.19 |
확장변수에 회원정보를 넣어보자
[10]
![]() | 개돌 | 2009.06.30 |
확장변수 폼 디자인 하기
[14]
![]() | Diver | 2009.06.21 |
확장변수값 이미지로 대체하여 나타내기 (실시간 응대목적)
[12]
![]() | sm3 | 2009.06.10 |
확장변수 출력 방법 초 심플하게 적어봅니다. [15] | 라르게덴 | 2009.03.16 |
Faceoff 버젼에서 확장변수 마음대로 배치하기 ^^ | 파파민 | 2009.03.13 |
확장변수전용 권한설정 게시판스킨 미권한자에게 출력 (''깜박''오류?) 보고
![]() | 0su | 2009.02.25 |
(축구 팀 팬사이트를 만드는데 득점랭킹을 만들고 싶었거든요ㅎㅎ)
아직 해보지는 않았지만 일단 감사드립니다!!