같은 서버에 사이트 2개가 설치되어 있습니다.

 

타임라인 모듈은 같은 버전으로 같은 자료가 설치되어 있습니다.

 

사이트 1

원래게시판으로 이동 -> 아니오 설정

 

원래 게시판으로 이동하지 않고 현재 타임라인용 게시판의 MID 로 게시글일 열립니다.

 

사이트2

원래게시판으로 이동 -> 아니오 설정

 

위 설정과 관계없이 무조건 원래 게시판 MID 주소로 이동되어 버립니다.

 

104205    301    h2    document / Redirect    Other    259 B    30 ms    
104205    200    h2    document    /best/104205    32.9 kB    205 ms

 

 

짧은주소 리디렉트 애드온과는 상관없는 것을 확인했습니다.

 

같은 서버 nginx 에 설치되어 XE리라이트 규칙은 같은 파일을 인클루드하여 둘다 동일합니다.

게시판 스킨에는 특이사항을 발견하지는 못했습니다.

 

사이트2에서 타임라인용 게시판 MID 유지하면서 모아진 글을 읽는 기능이 되지 않는데 이런 이유는 뭘까요?

  • profile

    라이믹스 버전도 같은가요?

  • profile profile
    네. 라이믹스 버전도 같습니다.

    그런데 제가 타임라인 모듈에서 게시글 가져오는 쿼리 조건에서 AND를 OR로 바꾼 부분이 있는데요.
    추천수 부분을 OR로 바꿔서 특정조회수 이상 또는 추천수 이상의 경우 목록에 표시되도록 했습니다.

    그런데 지금 테스트를 해보니
    일부 게시글이 정상적으로 이동되지 않고 현재 게시판의 주소로 읽혀지는데 이 게시글들은 조회수 ADN 추천수 조건을 만족하는 것 같습니다. 더 살펴봐야 겠네요.
  • profile

    이게 타임라인 게시글 목록으로 가져오기 위한 방법이 쿼리로 되어있고
    또 글을 열람하는 페이지에서 이 글이 타임라인 게시글인지 확인하는 코드가 model.php 부분에 따로 있네요.


    function isFilterPassed($module_srl, $document_srl)
    {
    $timeline_info = $this->getTimelineInfo($module_srl);
    // 타임라인 게시판이 아닌 경우
    if (!$timeline_info)
    {
    return FALSE;
    }

    $oDocumentModel = getModel('document');
    $oDocument = $oDocumentModel->getDocument($document_srl);
    // 게시글이 없는 경우
    if (!$oDocument->isExists())
    {
    return FALSE;
    }

    $tl_filter = array('readed_count', 'voted_count', 'blamed_count', 'comment_count', 'popular_count');
    foreach ($tl_filter as $filter)
    {
    $key = $timeline_info->{'cond_' . $filter};
    $val = $timeline_info->{$filter};
    if ($filter == 'popular_count')
    {
    $if_val = $oDocument->get('voted_count');
    $if_val += $oDocument->get('blamed_count');
    }
    else
    {
    $if_val = $oDocument->get($filter);
    if ($filter == 'blamed_count')
    {
    $if_val *= -1;
    }
    }
    if ($val && (($key == 'excess' && $val >= $if_val) || ($key == 'below' && $val <= $if_val) || ($key == 'more' && $val > $if_val) || ($key == 'less' && $val < $if_val)))
    {
    // 게시글 필터링을 통과하지 못한 경우
    return FALSE;
    }
    }



    위와 같이 되어 있어서
    제가 쿼리에서 or 로 바꾼 추천,인기 입력 값이 조건에 맞는지 확인하는 위 코드에서는 and로 동작하는 것 같네요.


    방법이 없다면
    $tl_filter = array('readed_count', 'voted_count', 'blamed_count', 'comment_count', 'popular_count');

    필터 자체를 하지 않도록 위 코드를 주석하던지 해야겠습니다.

     

    그리고 조건을 OR로 동작하게 한 사이트에서는 이 의문을 해결하고 난 후에는 원래게시판으로 이동 -> 예 로 사용할 생각이어서 그냥 코드는 그대로 두고 설정을 원래게시판으로 이동하는 설정을 적용해야 할 것 같습니다.

  • ?
    SEO PRO 모듈을 사용하시나요?
    활성화 - 오류 표시 "에"로 설정할 때 그런 문제가 발생한 적이 있습니다.
  • ? profile

    아니요. 원인은 위 댓글에 다 나와있습니다.

    제가 조건을 조회수,추천수 를 둘중 하나만 만족해도 출력되게 쿼리를 고쳐서 타임라인 모듈에는 이러한 조건에 따라 출력이 되도록 고쳤는데요.

     

    실제 게시글에 접속할때 또 한번 검증하는 부분 코드에서는 여전히 처음 설계대로 AND 조건에 부합하도록 처리되어 있기 때문에 발생하는 당연한 문제였습니다. 

     

    이 코드까지 고치기는 어려울 것 같네요. 윗 댓글 보시면 됩니다.

  • profile
    추천수,조회수 등을 OR 로 바꿨더니 기간지정 부분이 적용이 안되는 문제가 발생해서 그냥 원래대로 다시 AND로 복귀
  • profile
    웹지기님 혹시 이문제 해결되었나요?
    저도 얼마전부터 이런문제가 발생하는데, 어떤 시점 기준으로 이전에 취합된 내용은 타임라인 mid로 접속되고 이후 취합된 내용은 원게시판 mid로 접속이 되네요. 강제로 입력해줘도 안되네요.

    저는 따로 모듈을 수정한 부분이 없는데, 혹시 해결되신건지 궁금합니다.
  • profile profile

    위 댓글에 보시면 제가 수정을 잘못해서 발생한 문제입니다.

  • profile profile
    그렇군요.. 저는 아무것도 수정한 것이 없는데 이런 문제가 생겨서 뭔가 다른게 있나 했네요.
    답변 감사합니다. 오늘도 행복한 하루되세요~
  • profile profile
    뭔가 원인이 있겠죠. 안그러던게 그렇다면....
  • profile profile
    그러게요... 심지어는 주소를 직접 입력해도 원게시물 주소로 변경이되네요... php버전 7.3으로 바꾸고 라이믹스 2로 바꾸면서 였던거 같은데... 원인을 확인해 볼수 있는 방법도 모르겠고 답답해요 ㅎ
  • profile profile

    라이믹스 최신버전에서는 제가 테스트를 못해봐서 잘 모르겠네요. 지금은 타임라인플러스 모듈로 교체한 상태라 라이믹스2에서 문제가 새롭게 발생되는지는 검토해 보실 필요도 있겠습니다. 참고로 저는 라이믹스 짧은 주소 설정은 XE호환 되는 것만 인가 그거로 선택해서 사용합니다.

  • profile profile
    아... 라이믹스 최신버전이 아니시군요. 저도 플러스모듈을 구입을 고려중에 있습니다. 헌데 동일한 문제가 발생하지 않을까 싶네요.

    헌데 이전에 취합된 게시물은 제대로 작동하고, 새롭게 취합된 자료만 안된다는 것과 직접 주소를 입력해도 안되는 것이 이상하네요.
  • profile profile
    라이믹스 최신버전에서는 타임라인 모듈이 아닌 플러스 모듈을 사용중이란 의미구요. 라이믹스 최신버전 사용은 맞습니다.

    이전 취합 새로 취합 이란 표현이 해석이 안되네요.
  • profile profile
    아 그런 뜻이었군요.
    취합의 표현을 쓴건 타임라인 모듈로 2021년 3월 이전에 모여진 게시물은 타임라인 mid로 제대로 보여지고 이후 작성된 글들은 원게시판 mid로 연결된다는 의미였습니다