질문/조언질답게시판

위젯 쿼리문 이용해서 레이아웃에서 최신글 뽑아오는 것까진 했는데 썸네일도 그런 식으로 가져오고 싶은데

역량 부족이네요. ㅠ_ㅠ;

 

                {@
                $mid = look_layout;
                $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 = 180;
                $args->thumbnail_height = 180;
                $args->thumbnail_type = crop;
    //            $thumbnail = $oComment->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
    //            $content_item->setThumbnail($thumbnail);
                $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);
                }
                <ul>
                    <li loop="$list->data => $key, $val"><a href="{$val->document_srl}" title="{$val->title}"><span class="thumb"><img src="{$thumbnail_url}" alt="" /></span><span class="subject">{$val->title}</span></a></li>
                </ul>

 

어떻게 수정하면 썸네일도 제대로 된 주소를 가져올까요....;;

지금 문제는 뭐냐면 해당 document_srl 을 못 가져오는 것 같은데요.. 이걸 어떻게 해결할 수 있을까요;;

  • profile
    $oComment->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);

    이걸로 됩니다. 하지만 $oComment 오브젝트를 안넘겨줘서 그런것 같습니다.
  • profile profile
    해당 코드를 넣으면 아예 페이지가 그 코드 부분에서 깨져서 나오지 않네요.
    $oComment 만 넣고 debugprint($oComment); 해보면 null 값만 나오고요.;;;
  • profile profile
    네.. 위젯에서 $oComment 넘겨줘야 합니다. 넘겨주지않으니까 당연히 null이 나오지요.

    어떤위젯입니까?
  • profile profile
    위젯은 아니구요,
    https://xetown.com/use_tip/329
    이렇게 위젯을 거치지 않고 바로 레이아웃에서 최신글 뽑아오기를 해보는데, 썸네일도 저런 방법으로 가져와보고 싶어서요;;
  • profile profile
    아, 참 레이아웃이지..

    <li loop="$list->data => $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}" title="{$val->title}"><span class="thumb"><img src="{$thumbnail_url}" alt="" /></span><span class="subject">{$val->title}</span></a>
    </li>

    이렇게하면 됩니다.

    레이아웃 자체적일때는 비효율적입니다. 그냥 위젯으로 하심이..
  • profile profile

    감사합니다. 레이아웃 자체적으로 할 때는 왜 비효율적인지 알 수 있을까요? ^^;

    제가 다른 글에서 어떤 분이 이렇게 하는 차이가 뭐냐고 물으셔서 이렇게 대답했는데 제가 잘못 알고 있는 부분이 있나요?;

    '어차피 이 방법도 위젯 코드의 쿼리문을 이용해서 디비에 접속해서 가져오는 거라 백엔드 단에서의 속도 차이는 없다고 들었습니다만 다만 위젯 코드의 HTML, CSS 등을 가져오는 정도의 속도 차이는 미세하게 존재하지 않을까 싶네요. 
    위젯들도 캐시를 이용해서 한 번 가져온 것을 뿌려오는 정도로 사용한다면 사실 그것도 거의 차이는 없을 거에요.'
    ps. 크롬 알림 뜨니깐 완전 편리하네요? ^^;;;;;;;;;;;;

  • profile profile
    코드가 상당히 지저분해집니다. 그러면 보수유지가 어려워지겠죠?^^
  • profile profile
    아 단순히 코드가 늘어나서 그런 거군요 ㅎㅎ
    위에 제가 쓴 말 중에 잘못된 부분은 없는 거죠?;;
  • profile profile

    네.. 속도엔 차이가 없을 것 같습니다.

    그러나 규모가 있는 프로젝트에서 코드가 늘어난다면 그 몇배로 보수유지가 힘들어집니다. 객체지향 프로그래밍이 각광받는 이유도 이때문이구요.

    예를 들어 쓰레기같은 방에서 내가 필요한 물건을 당장 찾기란 쉽지않습니다. 그러나 방안을 깔끔하게 정리해둔다면 당장이라도 필요한 물건은 쉽게 찾을 수 있을 것입니다. 바로 이같은 이치입니다.

  • profile profile
    {@
    $mid = look_layout;
    $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 = 180;
    $args->thumbnail_height = 180;
    $args->thumbnail_type = crop;
    // $thumbnail = $oComment->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
    // $content_item->setThumbnail($thumbnail);
    $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);
    // $oComment->getThumbnail($args->thumbnail_width,$args->thumbnail_height,$args->thumbnail_type);
    debugprint($this->document_srl);
    }
    <ul>
    <li loop="$list->data => $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}" title="{$val->title}"><span class="thumb"><img src="{$thumbnail_url}" alt="" /></span><span class="subject">{$val->title}</span></a>
    </li>
    </ul>


    최종적으로 이렇게 하니깐 뜨네요. ㅎㅎ
    그런데 알려주신 li 태그 안쪽에 구문을 ul 위쪽에 붙이니깐 안되던데 혹시 이유가 뭘까요..
  • profile profile
    루프안(li 태그)에 들어가야 변수를 받아서 동작합니다
  • profile profile
    역시 어렵군요. ㅎ;; 알려주셔서 감사합니다.