질문과 답변

2025.08.28 16:06

위젯에서 url로 넘어온 변수를 참조하려면 어떻게 해야하는지요?

수고많으십니다.
이번에 리빌더를 접하고 이래저래 테스트 해보고 있는 중입니다.

다름이 아니라
제목처럼 url로 넘어온 값을 받아보려하는데 값을 받아오지 못하네요.

www.abcd.com/bbs/board.php?bo_table=notice 이렇게 넘어온 값을
$_GET['bo_table'] 이걸로 받아보려하는데 안됩니다.

어떻게하면 bo_table 값을 위젯에서 사용할 수 있을까요?

  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기

    댓글목록

    profile_image
    HUMHAE미니홈 1:1 대화하기  13일 전

    저도 지금 그부분으로 막혀서 임의로 url 쿼리스트링으로 해결을 했는데 문제는 짧은주소일때 또 안먹히더라구요...
    해결방법을 찾게되면 공유해드릴게요

    2025-08-28 17:15

    profile_image
    no_profile 삼다수미니홈 1:1 대화하기  13일 전

    일전에 팁으로 올려 주신거랑은 상관 없을까요?

    https://rebuilder.co.kr/tip/103

    긴 주소 게시판 $bo_table 추출
        if (!empty($parsed_url['query'])) {
            parse_str($parsed_url['query'], $query_params);
            if (!empty($query_params['bo_table'])) {
                $bo_table = $query_params['bo_table'];
            }
        }
    짧은주소 에서 $bo_table 추출
        if (!empty($parsed_url['path'])) {
            $path = explode('/', trim($parsed_url['path'], '/'));
            $bo_table = end($path);
        }

    이 부분을 아래와 같이 수정해 주니 잘 나옵니다.

        global $g5, $config; // 이 부분 $confi 추가하세요
        $parsed_url = parse_url($link);
     
        $bo_table = "";
        if($config['cf_bbs_rewrite'] == 0) {
            if (!empty($parsed_url['query'])) {
                parse_str($parsed_url['query'], $query_params);
                if (!empty($query_params['bo_table'])) {
                    $bo_table = $query_params['bo_table'];
                }
            }
        } else if($config['cf_bbs_rewrite'] == 1) {
            if (!empty($parsed_url['path'])) {
                $path = explode('/', trim($parsed_url['path'], '/'));
                $bo_table = end($path);
            }
        }

    2025-08-28 18:40

    profile_image
    no_profile 두기둥가미니홈 1:1 대화하기  12일 전

    답변 감사합니다. 근데 저는 잘 안되네요.
    현재 페이지 url을 찍어보니 ajax로 요청된 페이지여서 ajax파일의 경로가 찍혀서 안되나봅니다. ㅠㅠ

    2025-08-28 21:49

    profile_image
    no_profile 두기둥가미니홈 1:1 대화하기  12일 전

    저는 짧은 주소가 아니지만, 해결방법이 나오면 꼭 좀 알려주십시요~
    감사합니다.

    2025-08-28 21:46

    profile_image
    HUMHAE미니홈 1:1 대화하기  13일 전

    원래는 $_GET 변수를 잘 받아와야하는게 정상인 것 같은데
    혹시 빌더 자체에 문제는 없는건지 위주로 보고 있어요!

    어디서 unset되도록 관여하는곳은 없는지요 ㅜㅜ

    2025-08-28 18:43

    profile_image
    리빌더미니홈 1:1 대화하기  13일 전

    안녕하세요.

    widget.php 에서 파라미터를 바로 출력하면 출력되지 않습니다.
    빌더의 위젯파일은 ajax요청으로 구성이되기 때문에 index.php 또는 extend 에서 GET 을 받아서
    ajax로 요청되는 중간에 한번더 값을 전달해주어야 가능합니다.

    당장생각나는 가장 쉬운방법은

    ----------

    /theme/rb.basic/rb.layout/사용중인 메인레이아웃/index.php 파일에서
    GET으로 받은 값을 아래와같이 세션에 저장하고

    session_start();
    $_SESSION['aaa'] = $_GET['bo_table'] ?? '';

    widget.php 파일에서 출력해주는 방법 입니다.

    session_start();
    echo $_SESSION['aaa'] ?? '';

    ----------

    좀 더 쉬운방법이 있을지 고민을 한번 해보겠습니다.
    감사합니다.

    2025-08-28 18:56

    profile_image
    no_profile 두기둥가미니홈 1:1 대화하기  12일 전

    주인장님 알려주신대로 하니 잘 받아오네요. ㅎㅎ
    아직 별다른 문제는 없어보이는데.. 이것보다 쉬운 방법이 있으면 꼭 알려주십시요. 감사합니다 ^^
    그리고 서브페이지의 서브메뉴 위젯개발에 박차를 가해주시길 바랍니다. 파이팅~

    2025-08-28 21:54

    profile_image
    리빌더미니홈 1:1 대화하기  12일 전

    네 감사합니다
    서브메뉴는 2.2.3 업데이트 하면서 배포해드리겠습니다.
    편안한 하루 되세요.

    2025-08-28 22:09

    profile_image
    HUMHAE미니홈 1:1 대화하기  12일 전

    코어 파일을 수정해야 하지만 좀 더 편리하게 할 수 있는 방법을 적용한 코드 풀리퀘스트 날려보겠습니다.
    검토해주시면 감사드립니다...

    그누보드 기본적으로 제공되는 RewriteRule를 대응하고, 브라우저에서 넘겨지는 쿼리스트링이 자동으로 인식되어 AJAX요청시 위젯으로 전달되고, 위젯에서 그대로 $_GET으로 불러와 사용할 수 있습니다.

    https://github.com/Dokernoin/rebuilder/pull/2

    2025-08-28 22:25

    profile_image
    리빌더미니홈 1:1 대화하기  12일 전

    항상 감사합니다. 코드 확인하였습니다.
    출처 포함하여 2.2.3 에 반영토록 하겠습니다.
    편안한 밤 되세요.

    2025-08-28 22:38

    profile_image
    no_profile 두기둥가미니홈 1:1 대화하기  12일 전

    와우 잘되네요. 대단하십니다~^^
    감사합니다. 좋은밤 되세요~

    2025-08-28 23:14