Rhymix(XpressEngine) Tips

본 토픽은 현재 준비중입니다. 홈페이지제작-CMS-XpressEngine에 참여하시면 완성 되었을 때 알려드립니다.

레이아웃 - 위젯 - 위젯 사용 없이 최근게시물 코드 삽입하기 (고급활용편)

<section id="content1">
   {@
   $mid = board_MsdG13;
   $oModuleModel = getModel('module');
   $module_srl = $oModuleModel->getModuleSrlByMid($mid);
   
   $args = new stdClass();
   $args->module_srl = $module_srl;
   if($mobile)    $args->list_count = 5; else $args->list_count = 10;
   
   $list = executeQuery('document.getDocumentList',$args)->data;
   
   
   }
   
   <ul>
      <li loop="$list => $key, $val">
         
         <a href="{$val->document_srl}" title="{$val->title}">
            {$val->title}
            {@
            $totime = strtotime($val->regdate);
            $nowtime = strtotime($date);
            
            $new = ($nowtime - $totime)/60/60;
            if ($new < 24) echo "<span class='ico-new'>N</span>";
            }
            <span class="cmt" cond="$val->comment_count > 0">{$val->comment_count}</span>
         </a>
      </li>
   </ul>
</section>

저번 시간에 이어 추가한 부분은 시간을 체크해서 24시간 이내일 경우 N 아이콘을 표시하는 소스입니다.

loop 안에 작성해야 합니다.

{@
$totime = strtotime($val->regdate);
$nowtime = strtotime($date);

$new = ($nowtime - $totime)/60/60;
if ($new < 24) echo "<span class='ico-new'>N</span>";
}

'현재시간 - 작성한시간' 한 뒤에, 60으로 나누면 분이 되고, 또 60으로 나누면 시간이 됩니다.

다시 24로 나누면 분이 되지만, 우리는 시간만 체크하면 되니깐 60을 두번 나눠줬습니다. 

$new가 24보다 작을 경우 N을 출력합니다.

 

참, 이걸 사용하려면 소스 상단에 아래 코드를 추가로 넣어야 합니다.

{@
$date = date("YmdHid");
}

$date 변수를 따로 적어줬네요^^; 


2탄!; 

자료 보강해서 추가합니다.

{@
$mid = board;
$oModuleModel = getModel('module');
$module_srl = $oModuleModel->getModuleSrlByMid($mid);
$args = new stdClass();
$args->module_srl = $module_srl;
$args->document_srl = $obj->document_srl;
$args->list_count = 10;
$args->thumbnail_width = 80;
$args->thumbnail_height = 80;
$args->thumbnail_type = crop;
$thumbnail_path = sprintf('files/thumbnails/%s',getNumberingPath($args->document_srl, 3));
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
$thumbnail_url = Context::getRequestUri().$thumbnail_file;

$list = executeQuery('document.getDocumentList',$args);
debugprint($this->document_srl);
if($mobile)    $args->list_count = 3; else $args->list_count = 10;
$list = executeQuery('document.getDocumentList',$args)->data;



//$category_list = getModel('document')->getCategoryList($module_info->module_srl);
//$category_list = getModel('document')->getCategoryList($module_srl);
$category_list = getModel('document')->getCategoryList('68'); // 원하는 해당 모듈번호
}
<div class="title"><a href="#">자유게시판</a></div>
<ul class="webzine">
   <li loop="$list => $key, $val">
      {@
      $oDocument = new documentItem();$oDocument->setAttribute($val);
      $thumbnail_url = $oDocument->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
      }
      <a href="{$val->document_srl}">
         <div class="thumb">
            <img src="{$thumbnail_url}" alt="">
         </div>
         <div class="info">
            
            <div class="title-box"><span class="cat">{$category_list[$val->category_srl]->title}</span><span class="tit">{$val->title}</span> <span class="cnt">[{$val->comment_count}]</span></div>
            <div class="name">{getTimeGap($val->regdate, "Y.m.d H:i")} / {$val->nick_name} (<span class="vote"><img src="assets/img/ico-vote.svg" alt="추천수"> {$val->voted_count}</span> / <span class="view"><img src="assets/img/ico-read.svg" alt="조회수"> {$val->readed_count}</span>)</div>
         </div>
      </a>
   </li>
</ul>

#추가(2020-04-04)

위 코드에서 여러개의 게시판 mid에서 게시물을 불러오고 싶을 때는,

$mid = array('qna','share');

mid에서 array 를 사용하면 됩니다.

 #2021-12-15 추가

<div class="wdg-wrap">
    {@
    $cmid = board;
    $mid = array('contents','notice','shop','wordpress_market','gnu_market');
    $oModuleModel = getModel('module');
    $module_srl = $oModuleModel->getModuleSrlByMid($mid);
    $args = new stdClass();
    $args->module_srl = $module_srl;
    $args->document_srl = $obj->document_srl;
    $args->list_count = 3;
    $args->thumbnail_width = 376;
    $args->thumbnail_height = 250;
    $args->thumbnail_type = crop;
    $thumbnail_path = sprintf('files/thumbnails/%s',getNumberingPath($args->document_srl, 3));
    $thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
    $thumbnail_url = Context::getRequestUri().$thumbnail_file;
    $list = executeQuery('document.getDocumentList',$args);
    if($mobile)    $args->list_count = 3; else $args->list_count = 3;
    $list = executeQuery('document.getDocumentList',$args)->data;
    //$category_list = getModel('document')->getCategoryList($module_info->module_srl);
    //$category_list = getModel('document')->getCategoryList($module_srl);
    //$category_list = getModel('document')->getCategoryList('2400'); // 원하는 해당 모듈번호


    }
    <block loop="$list => $key, $val">
        {@
        $oDocument = new documentItem();$oDocument->setAttribute($val);
        $thumbnail_url = $oDocument->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
        $category_list = getModel('document')->getCategoryList($val->module_srl); // 원하는 해당 모듈번호
        }
        <div class="wdg-box">
            <a href="{$val->document_srl}">
                <div class="text-box">
                    <div class="cat">{$category_list[$val->category_srl]->title}</div>
                    <div class="title">{$val->title}</div>
                    <div class="tag-box">
                        {$val->tags}
                        <span>#이온디</span>
                        <span>#리뉴얼</span>
                    </div>
                </div>
                <div class="img-box">
                    <img src="{$thumbnail_url}" alt="">
                </div>
            </a>
        </div>
    </block>
</div>

 카테고리가 나오지 않아 수정했습니다. loop문 아래로 내려줘야합니다;ㅁ;

 

댓글

댓글 본문
버전 관리
이온디
현재 버전
선택 버전
graphittie 자세히 보기