질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS Rhymix

컨텐츠 확장 위젯 사용하여 조회수로 추출했습니다.

아래 빨간원처럼 순번(조회많은 순)을 표시하고 싶은데 어떻게 해결할 수 있을 지 문의드립니다.

 

 

Screenshot1.jpg

  • profile
    토픽게시판 글 중에 베스트글 관련 찾아보시면 도움이 되실 자료가 링크되어 있습니다.
  • profile profile
    감사드립니다. 열심히 찾아볼게요.
  • profile
    위젯 스킨에서 번호를 출력하는 임의의 변수에 1을 주고 원하는 위치에서 노출시킵니다.
    그리고 loop의 마지막에 변수를 ++하면 됩니다.
    그럼 loop가 돌때마다 자동으로 변수는 1씩 커지죠.
  • profile profile
    넘 감사드립니다. 로직설명까지 주시고. 개발 능력 아직 서툴지만 찬찬히 해볼게요.
  • profile profile
    • DoubleU님 감사드립니다. 추가로 문의드리게 되어 죄송합니다.
    • 아래 그림처럼 숫자1은 나오는데  loop의 마지막에 변수를 ++ 하는 게 잘 되지 않습니다.(이리저리 해보았지만 ㅠ ㅠ) 
    •  

    Screenshot2.png

     

    소스는 /skins/default/normal.html에서 아래 빨간색 부분을 추가했습니다. 그 후 어떤식으로 변경해야 될 지 도움 부탁 드립니다.

     

    <!--// 목록형 출력 -->
    <[email protected]($widget_info->markup_type=="list")-->
        <ul class="widgetA">
        {@$_idx=0}
        <[email protected]($widget_info->content_items as $key => $item)-->
            <li<[email protected]($widget_info->show_always_new == 'N' && $_idx >= $widget_info->list_count)--> style="display:none"<[email protected]>>
    <span class="rank num1">
        <? 
        $i=1;
        echo $i;
        ?>
    </span>

                <[email protected]($widget_info->option_view_arr as $k => $v)-->
                    <[email protected]($v=='title')-->
                        <[email protected]($widget_info->show_browser_title=='Y' && $item->getBrowserTitle())-->
                            <a href="<[email protected]($item->contents_link)-->{$item->contents_link}<[email protected]>{getSiteUrl($item->domain, '', 'mid', $item->get('mid'))}<[email protected]>" class="board"><strong>{$item->getBrowserTitle()}</strong></a>
                        <[email protected]>
                        <[email protected]($widget_info->show_content_title=='Y' && $item->getDocumentTitle())-->
                            <a href="{$item->getDocumentURL()}"><strong>{$item->getDocumentTitle()}</strong></a>
                        <[email protected]>
                        <[email protected]($widget_info->show_category=='Y' && $item->get('category_srl') )-->
                            <a href="{getSiteUrl($item->domain,'','mid',$item->get('mid'),'category',$item->get('category_srl'))}"><strong class="category">{$item->getCategory()}</strong></a>
                        <[email protected]>

                        <a href="{$item->getLink()}" class="title">{$item->getTitle($widget_info->subject_cut_size)}
                            </a>

                        <[email protected]($widget_info->show_comment_count=='Y' && $item->getCommentCount())-->
                            <sup class="replyNum" title="Replies"><a href="{$item->getLink()}#comment">{$item->getCommentCount()}</a></sup>
                        <[email protected]>

                        <[email protected]($widget_info->show_trackback_count=='Y' && $item->getTrackbackCount())-->
                            <sup class="trackbackNum" title="Trackbacks"><a href="{$item->getLink()}#trackback">{$item->getTrackbackCount()}</a></sup>
                        <[email protected]>

                        <[email protected]($widget_info->show_icon=='Y')-->
                            <span class="icon">{$item->printExtraImages()}</span>
                        <[email protected]>

                    <[email protected] if($v=='voted_count')-->
                        <[email protected]($item->getVotedCount())-->+{$item->getVotedCount()}<[email protected]>

                    <[email protected] if($v=='readed_count')-->
                        <[email protected]($item->getReadedCount())-->{$item->getReadedCount()}<[email protected]>0<[email protected]>

                    <[email protected] if($v=='nickname')-->
                        <a <[email protected]($item->getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"<[email protected]($item->getAuthorSite())-->href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"<[email protected]>href="#" onclick="return false;" class="author member"<[email protected]> >{$item->getNickName()}</a>

                    <[email protected] if($v=='regdate')-->
                        <span class="date">{$item->getRegdate("Y-m-d")}</span> <span class="hour">{$item->getRegdate("H:i")}</span>

                    <[email protected] if($v=='extravar')-->
                        {$item->getExtraVar()}
                    <[email protected] if($v=='extravar2')-->
                        {$item->getExtraVar2()}
                    <[email protected] if($v=='extravar3')-->
                        {$item->getExtraVar3()}
                    <[email protected] if($v=='extravar4')-->
                        {$item->getExtraVar4()}
                    <[email protected] if($v=='extravar5')-->
                        {$item->getExtraVar5()}

                    <[email protected]>
                <[email protected]>
            </li>
        {@$_idx++}
        <[email protected]>
        </ul>

        <[email protected]($widget_info->page_count > 1 && $widget_info->list_count<$_idx)-->
        <ul class="widgetNavigator">
            <li><button type="button" class="prev" title="{$lang->cmd_prev}" onclick="content_widget_prev(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetA'),{$widget_info->list_count})"><span>{$lang->cmd_prev}</span></button></li>
            <li><button type="button" class="next" title="{$lang->cmd_next}" onclick="content_widget_next(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetA'),{$widget_info->list_count})"><span>{$lang->cmd_next}</span></button></li>
        </ul>
        <[email protected]>

    •  
  • profile profile
    루프가 돌면서 ++가 된것이 다시 1로 지정되네요.
    변수 = 1 한것을 루프 위쪽에서 해야죠.
  • profile profile

    도움 감사드립니다. 수정하니 아래 그림처럼 두번째 글부터 1이 되는데 왜 그런지 문의 드립니다.

     

    Screenshot3.png

     

    소스는 아래 빨간색으로 수정하였습니다.

     

    <!--// 목록형 출력 -->
    <[email protected]($widget_info->markup_type=="list")-->
        <ul class="widgetA">
        {@$_idx=0}
        {@$i=1}
        <[email protected]($widget_info->content_items as $key => $item)-->
            <li<[email protected]($widget_info->show_always_new == 'N' && $_idx >= $widget_info->list_count)--> style="display:none"<[email protected]>>
            <!-- 아래한줄 추가함. 완성안됨 -->
            <span class="rank num1"><? echo $i++; ?></span>
                <[email protected]($widget_info->option_view_arr as $k => $v)-->
                    <[email protected]($v=='title')-->
                        <[email protected]($widget_info->show_browser_title=='Y' && $item->getBrowserTitle())-->
                            <a href="<[email protected]($item->contents_link)-->{$item->contents_link}<[email protected]>{getSiteUrl($item->domain, '', 'mid', $item->get('mid'))}<[email protected]>" class="board"><strong>{$item->getBrowserTitle()}</strong></a>
                        <[email protected]>
                        <[email protected]($widget_info->show_content_title=='Y' && $item->getDocumentTitle())-->
                            <a href="{$item->getDocumentURL()}"><strong>{$item->getDocumentTitle()}</strong></a>
                        <[email protected]>
                        <[email protected]($widget_info->show_category=='Y' && $item->get('category_srl') )-->
                            <a href="{getSiteUrl($item->domain,'','mid',$item->get('mid'),'category',$item->get('category_srl'))}"><strong class="category">{$item->getCategory()}</strong></a>
                        <[email protected]>

                        <a href="{$item->getLink()}" class="title">{$item->getTitle($widget_info->subject_cut_size)}
                            </a>

                        <[email protected]($widget_info->show_comment_count=='Y' && $item->getCommentCount())-->
                            <sup class="replyNum" title="Replies"><a href="{$item->getLink()}#comment">{$item->getCommentCount()}</a></sup>
                        <[email protected]>

                        <![email protected]($widget_info->show_trackback_count=='Y' && $item->getTrackbackCount())-->
                            <sup class="trackbackNum" title="Trackbacks"><a href="{$item->getLink()}#trackback">{$item->getTrackbackCount()}</a></sup>
                        <[email protected]>

                        <[email protected]($widget_info->show_icon=='Y')-->
                            <span class="icon">{$item->printExtraImages()}</span>
                        <[email protected]>

                    <[email protected] if($v=='voted_count')-->
                        <[email protected]($item->getVotedCount())-->+{$item->getVotedCount()}<[email protected]>

                    <[email protected] if($v=='readed_count')-->
                        <[email protected]($item->getReadedCount())-->{$item->getReadedCount()}<[email protected]>0<[email protected]>

                    <[email protected] if($v=='nickname')-->
                        <a <[email protected]($item->getMemberSrl())-->href="#" onclick="return false;" class="author member_{$item->getMemberSrl()}"<[email protected]($item->getAuthorSite())-->href="{$item->getAuthorSite()}" onclick="window.open(this.href); return false;" class="author member"<[email protected]>href="#" onclick="return false;" class="author member"<[email protected]> >{$item->getNickName()}</a>

                    <[email protected] if($v=='regdate')-->
                        <span class="date">{$item->getRegdate("Y-m-d")}</span> <span class="hour">{$item->getRegdate("H:i")}</span>

                    <[email protected] if($v=='extravar')-->
                        {$item->getExtraVar()}
                    <[email protected] if($v=='extravar2')-->
                        {$item->getExtraVar2()}
                    <[email protected] if($v=='extravar3')-->
                        {$item->getExtraVar3()}
                    <[email protected] if($v=='extravar4')-->
                        {$item->getExtraVar4()}
                    <[email protected] if($v=='extravar5')-->
                        {$item->getExtraVar5()}

                    <[email protected]>
                <[email protected]>
            </li>
        {@$_idx++}
        <[email protected]>
        </ul>

        <[email protected]($widget_info->page_count > 1 && $widget_info->list_count<$_idx)-->
        <ul class="widgetNavigator">
            <li><button type="button" class="prev" title="{$lang->cmd_prev}" onclick="content_widget_prev(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetA'),{$widget_info->list_count})"><span>{$lang->cmd_prev}</span></button></li>
            <li><button type="button" class="next" title="{$lang->cmd_next}" onclick="content_widget_next(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetA'),{$widget_info->list_count})"><span>{$lang->cmd_next}</span></button></li>
        </ul>
        <[email protected]>

  • profile profile
    에코는 화면에 출력하라는 것입니다.
    php에서는 출력을 하나만 할대는 <?=$변수명?> 이렇게 대체해도 되죠.

    에코 $i++이 아니고
    에코 $i를 하고
    그 뒤에 따로 $i++을 해야 합니다.

    이런 작업을 장기적으로 생각하신다면 php책을 한권 사서 보세요.
    기초가 있어야 가능하죠.
    <? echo $i; $i++; ?>
    이렇게 되어야 하는 것입니다.
  • profile profile

    DoubleU님 너무 고맙고 죄송합니다. 예전 좀 배우긴 했는데 손놓은 지 오래되어 조언주신데로 기초부터 다시 익히고 지속적으로 적용해봐야 겠어요.

    근데 조언주신데로 수정했는데도(이리저리 해봐도) 동일한 현상입니다.(두번째 글부터 순번 표시됨)
    왜 그럴까요? 질문이 계속되어 송구스럽습니다.

    Screenshot4.png

  • profile profile
    $i가 첫번째 루프에서는 값이 없을 수도 있겠네요.
    위쪽에 {@$i=1}는 지우시고 <? $i++; echo $i; ?> 이렇게 해서 $i를 ++시킨 후 출력하는 것으로 바꿔보세요
  • profile
    넘 감사드립니다. 해결되었습니다.관심과 도움 감사드립니다.